MPEGGroup / CMAF

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

Gaps #6

Closed haudiobe closed 3 years ago

haudiobe commented 4 years ago

This refers to the second part of the fifth proposal of http://mpegx.int-evry.fr/software/ApplicationFormat/CMAF/issues/2

ISO/IEC 23000-19 currently says: From 6.6.8: However, in cases where a decode time discontinuity results from one or more missing or damaged CMAF fragments in a continuous CMAF presentation, players can use the baseMediaDecodeTime of the next available CMAF fragment to resume presentation synchronized to the current presentation timeline. Error concealment could include repeating video frames and skipping over missing content in the case of on demand or buffered media, but all CMAF tracks have to skip the same duration to maintain A/V synchronization.

DASH-IF IOPv5 says: DASH supports the signalling of such gaps and the maintenance of the timelines. For example, the use of early terminated Periods or the Segment Timeline signalling may be used. More details below.

This is likely ok for now, nothing needs to be done. The only question was, if such content is CMAF conforming or not. The should be a statement added that

cconcolato commented 4 years ago

The only question was, if such content is CMAF conforming or not.

Can you describe the CMAF content you're envisaging? CMAF tracks or presentations are continuous in nature. I don't see what CMAF could specify that would help here.

haudiobe commented 4 years ago

See statement above. Add to CMAF Clause 6.6.8 a statement that says:

"In order to differentiate timeline discontinuities caused by gaps, a manifest should signal the existence of a gap.! Content with gaps are not considered CMAF conforming content."

RufaelDev commented 4 years ago

While I understand that the intent of the CMAF presentation and track format is to have continuity and no gaps, I appreciate that the specification refers to the possibility of gaps, given that this happens in the real world. I think a good CMAF content does not have gaps, and if there are gaps the manifest should signal that or basemediaDecodeTime of next segment can be used.

Rather than saying the content is not CMAF conforming i think the expression of a damaged CMAF or missing CMAF content would be better, as the segment formatting and intent are all ok, but an error occured in the transmission or storage (yes it happens).

As CMAF is initially a file format I appreciate how it was written down, with such practical considerations in mind as unintended gaps in mind.

sdp198 commented 3 years ago

I'd agree with Thomas's addition, but with some slight editing: "In order to indicate timeline discontinuities caused by gaps, a manifest should signal the existence of a gap. Content with gaps is not considered CMAF conformant content."

I think it's helpful for CMAF to describe correct content. It's fine for delivery specifications to explain how to work around faults, but there is no need for this specification to make allowances for errors as otherwise the whole specification becomes "content must be like this, except when it isn't".

cconcolato commented 3 years ago

Could we be more positive and say something along the following?

In order to indicate timeline discontinuities caused by gaps, a manifest should signal the existence of a gap. Content with gaps is not strictly compliant to CMAF, conformance can only guaranteed for the continuous parts between gaps.

RufaelDev commented 3 years ago

I agree that conforming cmaf content should (shall) not have gaps, but I also think this is sufficiently backed by the specification, already, hinting at how delivery issues can be handled (in more complex systems can happen upstream/downstream) so I am not sure what adding this additional phrase adds as it refers to CMAF in general instead of a CMAF specific construct (chunk, track etc), If we add text I would prefer the suggestion of @cconcolato as indeed gaps between cmaf presentations are allowed in fact.

cconcolato commented 3 years ago

We seemed to have some consensus on adding some clarifying text. @haudiobe @RufaelDev can you propose spec text?

RufaelDev commented 3 years ago

@cconcolato I prefer the text you proposed. For me the spec is already quite clear on this and having this issue here will help people understand this so I would also be ok with not updating the text aswell to make things easier. As CMAF defines different contrstructs perhaps the text can be ammended to CMAF presentation instead of CMAF to be clearer:

In order to indicate timeline discontinuities caused by gaps, a manifest should signal the existence of a gap. Content with gaps is not strictly compliant to a CMAF presentation , such conformance can only guaranteed for the continuous parts between gaps.

I also think this matches well with the other text in section 6.6.8

cconcolato commented 3 years ago

@haudiobe @sdp198 any objections to using the text in https://github.com/MPEGGroup/CMAF/issues/6#issuecomment-706263147 ?

sdp198 commented 3 years ago

Looks fine to me.

cconcolato commented 3 years ago

Text is added to the amendment already.