-
Notifications
You must be signed in to change notification settings - Fork 6k
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
CEA608 - Dropped commands #3860
Labels
Comments
This was referenced Jan 9, 2019
zsmatyas
added a commit
to zsmatyas/ExoPlayer
that referenced
this issue
Jan 10, 2019
Reported in google#3860 For failing examples see the github link above. [Problem] We drop matching control codes even if they are not received on consecutive frames. The specification says "(4) If the first transmission of a control code pair passes parity, it is acted upon within one video frame. If the NEXT frame contains a perfect repeat of the same pair, the redundant code is ignored." Keyword is the NEXT. The frames must arrive immediately after each other. See https://www.law.cornell.edu/cfr/text/47/79.101 [Solution] Set an additional flag when any data is processed. Control code duplication checks should be limited only for the first control byte pairs processed after any control code. [Test] Sarnoff tests have equivalent CEA708 and CEA608 Streams.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Starting at this line the code checks if a CEA608 control code was repeated:
ExoPlayer/library/core/src/main/java/com/google/android/exoplayer2/text/cea/Cea608Decoder.java
Line 339 in 2b20780
The problem is that it does not take into account the timing of the received control codes. There are contents that use the same control code multiple times consecutively, like the Sarnoff test streams required for FCC certification. Their content contains the following commands:
Note: According to the standard END_OF_CAPTION flips the visible and hidden caption buffers, so it should make the 2 lines repeatedly visible then hidden again: effectively blinking in this case.
The current implementation drops every second command of this content.
According to https://www.law.cornell.edu/cfr/text/47/79.101
So the check should only drop control codes if they are in consecutive video frames immediately after each other.
The text was updated successfully, but these errors were encountered: