MPEGGroup / CMAF

Official MPEG repository to discuss public issues on CMAF (ISO/IEC 23000-19)
2 stars 0 forks source link

CMAF segment duration in case an edit list is used to remove 1 or more samples from the presentation timeline #26

Closed RufaelDev closed 1 year ago

RufaelDev commented 3 years ago

Current CMAF segment duration is based on decode times/cumulative sample durations. In DASH it is based on presentation time. This creates a missmatch between CMAF segment/fragment duration and DASH segment duration in case 1 or more samples are removed from the presentation timeline by an edit. In such a case the DASH segment duration is shorter as when compared to CMAF segment/fragment duration. Was this intended ? Is there a need to explicitly mention this case ?

This is important for example to ensure allignment between audio and video fragment/segment boundaries.

cconcolato commented 3 years ago

I agree that there is some inconsistency here: "CMAF presentation duration" is defined as the sum of the "CMAF fragment durations" but the "CMAF fragment duration" is defined as decode durations. To my understanding, the notion of "CMAF segment duration" is not defined (at least, not in a normative section). The various durations in CMAF (fragment, track, presentation) are only used in the abstract concepts (switching sets, selection sets, ...) to provide constraints. They don't have a direct impact on the CMAF bitstream. We could change the definition but this would need coordination with DASH and HLS.

RufaelDev commented 3 years ago

Yes, I agree the formal definition is only a minor aspect. The practical issue is that we want achieve is to promote alignment of audio/video boundaries and possibly constant duration segments. As shown in the example there is a mismatch between the duration of a DASH segment and a CMAF fragment ad that causes misalignment.

cconcolato commented 3 years ago

If we don't permit non-presentable samples, then the decode duration and presentation duration becomes the same thing.

RufaelDev commented 3 years ago

@cconcolato I think the idea of non-presentable samples was also to align the presentation start times of tracks, I understood that this is an integral part of CMAF see 7.5.13, I think not allowing non-presentable samples would imply not allowing editlist anymore in CMAF ? in any case, removing such clauses from an existing iso specification is something I would be carefull with as it may invalidate existing content/implementations.

RufaelDev commented 3 years ago

I suggest closing this issue and leave it up to users, such as for example respective DASH profiles to take this into account if there are no further suggestions, the main thing to be aware is that CMAF segment duration may not be equal to DASH segment duration for example. I think this discussion will be a good reference but perhaps no need to change anything in CMAF specification itself to account for this ?

jpiesing commented 3 years ago

I suggest closing this issue and leave it up to users, such as for example respective DASH profiles to take this into account if there are no further suggestions, the main thing to be aware is that CMAF segment duration may not be equal to DASH segment duration for example. I think this discussion will be a good reference but perhaps no need to change anything in CMAF specification itself to account for this ?

Disconnects between the ISOBMFF timeline and the DASH timeline are known to significantly upset some DASH players so I would be uncomfortable if this issue would get lost.

cconcolato commented 2 years ago

@jpiesing do you have a recommendation to avoid losing this issue?

jpiesing commented 2 years ago

@jpiesing do you have a recommendation to avoid losing this issue?

Perhaps have a section of the CMAF spec that explains this with a couple of pictures - not just put this text in the middle of somewehre. That section could then be referenced from a future DASH spec to explain why DASH and CMAF are different?

cconcolato commented 2 years ago

The group welcomes draft text to be included in the CMAF specification.

RufaelDev commented 2 years ago

OK to connect CMAF and DASH CMAF fragment duration also needs to take into account edits. 3.3.6 (old) CMAF fragment duration sum of the media sample (‎3.3.15) durations documented in the TrackFragmentRunBox of all MovieFragmentHeaderBoxes in the CMAF fragment (‎3.1.1) 3.3.6 (new) CMAF fragment duration sum of the media sample (‎3.3.15) durations documented in the TrackFragmentRunBox of the MovieFragmentHeaderBox in the CMAF fragment (‎3.1.1). If one or more samples are not (wholly or partially) intended for presentation due to an edit in an editListBox, the duration not intended for presentation is excluded from the CMAF fragment duration.

cconcolato commented 2 years ago

Note that definitions in ISO cannot be in multiple sentences. You are supposed to be able to replace a term by its definition.

RufaelDev commented 2 years ago

I tried to amend this text, this would also solve the DASH CMAF profile in 5th edition. 3.3.6 (amended) CMAF fragment duration sum of the media sample (‎3.3.15) durations documented in the TrackFragmentRunBox of the MovieFragmentHeaderBox in the CMAF fragment (‎3.1.1) minus the duration not intended for presentation due to an edit in an editListBox.

krasimirkolarov commented 2 years ago

Discussion at the March 14, 2022 AdHoc meeting: Please comment on this since it might be considered a "bug fix". This will be discussed in the context of Amd. 2 of Ed. 3 at the next MPEG meeting in April 2022.

krasimirkolarov commented 1 year ago

Integrated in Amd 3 which is now part of Ed. 3