Skip to content

Conversation

@dbrignoli
Copy link
Contributor

While trying to parse captured data from a DAB test service component I found the CRC computed by the existing implementation didn't match the test data I had. I'd like to contribute the changes back so I am opening this PR for discussion.

Previously the offset was used for the minimum header size
check but ignored by the rest of the function.
Use transport ID, user access field size and extension bits
in header to determine header size.
Use CRC presence flag to determine is CRC is present.
Do not assume the datagroup transports a MOT segment. This means
the datagroup data field size has to be determined using
the datagroup's header information only.
Copy link
Member

@magicbadger magicbadger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting! For some reason I changed the predefined CRC function from crc-16-genibus (which I believe is equivalent) to x25. Not sure why, but I suspect my lack of understanding of Annex E.

@magicbadger
Copy link
Member

Thanks for your attention on this (especially the CRC).

@magicbadger magicbadger merged commit 5d8182f into ebu:master Feb 23, 2017
@nickpiggott
Copy link

This commit seems to break functionality. Recommend a revert to the original and testing.

Fails to execute with errors at lines 345 and 357 (reference to self.transport_id, should be self._transport_id).

EPG encoded using this version of msc fails to decode. EPG encoded using the prior version does encode properly.

nickpiggott referenced this pull request in nickpiggott/python-dabmsc Jul 7, 2020
This reverts commit 5d8182f, reversing
changes made to 0d74d8f.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants