-
Notifications
You must be signed in to change notification settings - Fork 6
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
mvhd.scale and mdhd.timescale not equal and edit list #65
Comments
I confirm the values are outliers (>5s delay on the audio track!). Who has access to the streams before being DASHed? I guess the error comes from the source but I can't check that. I don't even know how these were generated. Could it documented somehow in the README? |
cf #58 |
@yanj-github @rcottingham No news on this? Does cta-wave/Test-Content#51 fix this issue? |
The edit list box is interesting in that it uses two timescales from iso 14496-12 2015 version section 8.6.6.3 The media timescale is defined in the 'mdhd' box not the 'mvhd' box In summary: |
@michael-forsyth I follow your interpretation, our reading was following that all fields follow movie timeline/timescale as there is no explicit reference to 8.4.3 or track timeline. Also media timeline can refer to any timeline not only media track. I agree that many implementations use the mdhd timescale which is good. However clause 8.4.2.3 does not explicitly define media timeline, the definition is used throughout the document for different timelines. I just wanted to clarify this point, maybe as there is a new version of 14496-12 under ballot it is possible to make a comment and make it more explicit, and leave the test content as is. There may be some incorrect implementations that interpret the edit as a 2 second audio edit. In this case we can leave the test files as is. |
I agree with @michael-forsyth interpretation. Seems like GPAC does this too:
=> delay -5058ms Is it the expected value? |
Please can someone open an MPEG git issue on this ambiguity? |
@jpiesing I don't think there is any normative issue. It would have been there for 20 years which is unlikely for a deployed feature. That being said clarifications are always welcome. Edit lists are not easy to grab. They are complex because they are made to deal with complex non-linear scenarios. That's why there are many errors done. And that's why some specs try to avoid using (or restricting) them. In this issue, IIUC:
|
@rbouqueau it seems that gpac uses mvhd timescale instead of mdhd timescale as pointed out by @michael-forsyth, or is the gpac output based on the timescale and not milli seconds ? I think clarifying the point made by @michael-forsyth in MPEG file format makes sense (i.e. no normative change just pointing this out explicitly), then for CMAF I think a question should be if it makes sense to adopt the rule that mvhd.timescale == mdhd.timescale as CMAF is single track so it is not clear why these two values should be different. And yes I will attend the next MPEG meeting and review the 14496-12 version under ballot! |
The spec says:
GPAC does that. |
spec does not say that explicitly and why then media time 5058 gives you 5058 ms instead of 5058/48000 delay in gpac ? |
Ahhh you are right. Sorry for disturbing your issue!! Let's focus on your initial message then. |
This issue has been floating around for over 4 months. |
No opposition to closing. |
Some of the files
https://dash.akamaized.net/WAVE/vectors/releases/1/caaa_sets/he_aac/at9/2023-04-27/stream.mpd
https://dash.akamaized.net/WAVE/vectors/releases/1/camc_sets/aac_lc/at11/2023-04-27/stream.mpd
etc have different values, but the edit list is present. I have more info on request.
Strictly speaking this is not a validation but edit according to 14496-12 is on movie timescale, so the edit is not on the mdhd timeline, this may break some of the audio priming even though we have seen this in other implementations.
Easiest way to solve is to make mdhd.timescale and mvhd.timescale should be equal.
The text was updated successfully, but these errors were encountered: