MPEGGroup / CMAF

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

ES Descriptor for Audio #8

Closed haudiobe closed 3 years ago

haudiobe commented 4 years ago

In M54520, content was generated with FFMPEG. The content was verified with the conformance software for the second edition of CMAF.

One observed error is documented in clause 3.3.2: "CMAF check violated: Section 10.3.4.2.3. "fields of the ES_Desciptor SHALL be set to the following values: ES_ID = 0.", but found 1"

Clause 10.3.4.2.3 is provided below.

10.3.4.2.3 ES_Descriptor The syntax and values for ES_Descriptor shall conform to ISO/IEC 14496-1, and the fields of the ES_Descriptor shall be set to the following values. — ES_ID = 0 — streamDependenceFlag = 0 — URL_Flag = 0 — OCRstreamFlag = 0 — streamPriority = 0 — decConfigDescr = DecoderConfigDescriptor — slConfigDescr = SLConfigDescriptor, predefined type 2 Descriptors other than those specified in subclause 10.3.4.2.4 through subclause 10.3.4.2.6 shall not be used.

Question for discussion: Is it an FFMPEG problem or is it an overrestrictive specification? Please comment

sdp198 commented 4 years ago

It comes from section 3.1.2 of 14496-14, which says "set to 0 as stored; when built into a stream, the lower 16 bits of the TrackID are used". It may be that the person who added it to FFMPEG misread that spec and used the track ID, but when sored in the file format it is supposed to be 0. So if you removed the restriction from CMAF, it would still be wrong unless it was also changed in 14496-14.

Although it probably doesn't affect clients, it seems helpful to have CMAF point out the requirement, otherwise it's hard to find out what value should be put here.

RufaelDev commented 4 years ago

We recommend not making such constraints on old descriptors relating to transport streams, we would be happy if CMAF could not overly constrain to ES_ID is zero as in the end it is neither used nor does it have meaning for players. MPEG-4 part 14 should be enough.

Setting the track_id as done by ffmpeg and also mentioned by part-14 is probably what many implementation do and will not break anything either. We recommend removing this constraint from CMAF and from the validator and focus on issues that matter for CMAF.

An advantage of this is not breaking existing content and implementations, such as this ffmpeg implementation

haudiobe commented 4 years ago

Answer from JB: They may be using ffmpeg 4.2 or some old snapshot. We fixed those missing in 16fa513392 when doing the Dash-ULL work :) - we will check this!

sdp198 commented 4 years ago

I'd still be reluctant to completely remove this. Even though it's unlikely to break client implementations, it's useful to have a reference as to what to do properly. Either:

cconcolato commented 4 years ago

I prefer applying the second option, and maybe the 3rd option too, although the 3rd option could unnecessarily give too much importance to MPEG-4 Systems.

cconcolato commented 3 years ago

We seem to have an agreement here to replace a shall with a should.

cconcolato commented 3 years ago

This has been implemented in the current amendment and the group decided to close this issue.