[-bug- 14496-12 conformance FIXED] bad branding of MP4 containers

Discussion in 'AnyStream' started by 0x0x0x0x0, Jan 30, 2021.

  1. 0x0x0x0x0

    0x0x0x0x0 Well-Known Member

    AS sets major_brand of the MP4s as `isom,' this is non-conformant as Annex E of both :2015 and :2020 expressly states that any brands mentioned in the annex should not be used as major brands. These brands are`iso{m,2..9,a,b}, mp71, avc1, relo.'

    Moreover, Note 2 to Section 5.5 of ETSI TS 126 244 implies that `isom' and `avc1' are mutually exclusive and may cause issues.

    Given that the data comes from DASH, you might as well leave mp42 in major and mp42mp41avc1 as compatible.
    Last edited: Jan 30, 2021
  2. Prospere

    Prospere RedFox Development Team

    Thanks. Noted.
    0x0x0x0x0 likes this.
  3. Prospere

    Prospere RedFox Development Team

    Well, despite being weekend, it has been quite a busy day.
    So, where were we?

    While this is de jure true, de facto 'isom' is widely used as major-brand. Although, striving for full compliance with ISO/IEC 14496-12 and ISO/IEC 14496-14. we should, perhaps, change it to mp42 (although, regardless of the stream's dash origin).
    This claim is dismissed as unrelated. ETSI TS 126 244 is related to the 3GP format; although having the same roots as the MP4 format, 3GP is still not MP4. Besides, please correct me if I am wrong, but it states that 'avc1' implies support for 'isom', rather than the two being mutually exclusive.

    P.S. As long as QuickTime player is happy with AnyStream's output, I am happy too ;)
  4. 0x0x0x0x0

    0x0x0x0x0 Well-Known Member

    Just because a bunch of FOSS ignorants (and those who couldn't read the standard when it was publicly available (as was the case with :2015)) decide to be non-compliant, doesn't mean that people who take pride in their work (and I know you do because you come here and actually talk to people) should follow the same erroneous path ;-)

    Yes and no, it's more than likely that 3GP players and MP4 share the same code and the libraries used by them are more likely to be architecture tuned with far stricter compliance than people are used to getting away with in the "desktop" environment (although try getting Apple devices to play `hev1' brands instead of `hcv1' ones on HEVC-capable hardware ;-) ), and it spells out the conflict vs. what Annex E says in "specification language":-

    i.e. if you are making a claim to `isom' then you are telling the readers that they can safely ignore `avc1' (in which case what's the point of `avc1' extensions?) and this is what ETSI was trying to tell the implementers:

    QuickTime was written by Apple when they had proper software engineers who knew that the "RFC philosophy" should apply: be forgiving of everyone's ignorance, but strive for compliance ;-)

    Not arguing, since we're on the same page about the "main thing," just having a technical blabber ;)
    Last edited: Jan 30, 2021
  5. Prospere

    Prospere RedFox Development Team

    Neither am I.
    "Fir ald lang syn, ma jo". I miss those times too.