-
Notifications
You must be signed in to change notification settings - Fork 5
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
Audio samples are rendered and in increasing presentation time order #205
Comments
This is how I debug this issue, hope that it will help.
|
In the 2024-11-26 results shared by @louaybassbouss , there are
Additionally there are 20 failures where the entire failure message is "FAIL: Audio segments failed at the following timestamps: 0ms 20ms Found 2 segments are missing. Start segment number tolerance is 0. ", i.e. allowing 2 missing segments would make these a pass. Changing the start_segment_num_tolerance in config.ini to 3 (or is it 60) would convert 35 failures into passes and simplify a further 124-+6-11-35 = 84 failures which also fail for other reasons as well. There are 15 rows of observations "[OF] When examined as a continuous sequence of timestamped audio samples of the audio stream, the 20ms test audio samples shall be a complete rendering of the source audio track and are rendered in increasing presentation time order." and which have in general been run on 4 TVs (NOT RUN on TVs 5 and 6) so approximately 180 failures. |
Regarding "discrepancy of 123ms" it is not at all surprising to find implementations that don't play all samples. There are certain SOCs where we know that they are cutting off samples off the end, and missing ~120 ms sounds plausible as a consequence. (Speaking technically, the issue here is that the decoder is often followed by other processing stages like limiters, resamples or mixers, all of which have buffers. Unless the implementation explicitly flushes these buffers, the data in the buffers will be discarded). |
When these tests are used in an HbbTV context, the tolerances are explicitly required to be zero :)
Outside an HbbTV context, the definition of the 'end of stream' algorithm makes it clear that the duration is set based on the content in the SourceBuffer with the highest media time. If the end of the last appended video frame is at 30s and the end of the last appended audio frame is 30s then the duration is 30s. |
After further analysis, the Observation Framework accurately reported failures in the starting and ending audio samples in the following observation.
[OF] When examined as a continuous sequence of timestamped audio samples of the audio stream, the 20ms test audio samples shall be a complete rendering of the source audio track and are rendered in increasing presentation time order.
e.g: Failed segments are:
Segment(0.0ms) Segment(20.0ms) - at the beginning
Segment(29920.0ms) Segment(29940.0ms) Segment(29960.0ms) Segment(29980.0ms) - at the end
To assist with debugging, you can use audio analysis tools to measure the duration of the presented audio. You'll notice that it is shorter than the expected duration of 30 seconds.
I don’t have the right knowledge in this area. Could someone please kindly look into this further?
Possible causes might include:
The text was updated successfully, but these errors were encountered: