CEA 708 Decoder Improvements to meet Spec compliance and Sarnoff test… #4595
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… pass.
To support DLY and DLC commands, we need to have a service input buffer. Also the current design of CEA708 Decoder is not according to the spec. As per the spec CCP and service blocks are asynchronous. So we can't wait to start parsing service blocks until after generating a complete CCP. The parsing of various layers much be chained and be executed in parallel.
As per the spec, a CCP packet can contain more than one Service Blocks with same service number. Current implementation does not handle this.
Extended Service number should not be added to the service number read from the standard service block header.Instead, it should be read from the extended service block header.
Clear Window tests failed. Clearing window removes the window from display, it should just clear the text..
Sometimes the CC text is all jumbled up for H.264 content.There is a timing issue in rendering CC. Due to H264 B frames decoding and presentation order mismatch, sometimes, older timestamps CC frames are being decoded that resulted into jumbled CC text.We reject input frames that are older than the last decoded frames and delay processing input frames till we have received at least half of the input frames that can be held in the input queue.