Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for primary service mode MP2 #306

Merged
merged 1 commit into from
Jul 5, 2023
Merged

Add support for primary service mode MP2 #306

merged 1 commit into from
Jul 5, 2023

Conversation

argilo
Copy link
Collaborator

@argilo argilo commented Jul 4, 2023

Fixes #305.

This pull request does the following:

  1. Adds support for primary service mode MP2. This mode is very similar to mode MP3, except that the P3 logical channel is only half as wide. Because of this difference, it also uses slightly different interleaver parameters. To accomodate this mode, I've added length arguments to some of the functions that process the P3 logical channel.
  2. Adds support for fixed data in logical channels other than P1. To accommodate this, we need one CCC data structure per logical channel, and various functions have to pass around the current logical channel number.
  3. Adds support for L2 PDUs containing only fixed data (and no audio).

All three enhancements were needed to properly receive WAMU, which uses mode MP2 and puts its station logos in data-only L2 PDUs in the P3 logical channel.

@argilo
Copy link
Collaborator Author

argilo commented Jul 5, 2023

The update code appears to work well with all my recordings, and valgrind did not identify any memory corruption bugs. Merging.

@argilo argilo merged commit 85e7e5b into master Jul 5, 2023
@argilo argilo deleted the add-mp2 branch July 5, 2023 01:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add support for primary service mode MP2
1 participant