Skip to content

Does iods require Object Descriptors to have ESDescriptors? #90

Description

@bradh

ISO/IEC 14496-14:2020 section 6.2 describes the Object Descriptor Box.

I find this a bit hard to follow, but what I have is that the ObjectDescriptor field is either an OD with a special tag (MP4_OD_Tag) or IOD (MP4_IOD_Tag), and that those are defined in ISO/IEC 14496-1:2010 Section 7.2.6. (There is also a special case for the format of the ES descriptor - see ISO/IEC 14496-14:2020 Section 4.1.3, but I don't think that has direct bearing on the question, which I'll get to, I promise).

In ISO/IEC 14496-1:2010 Section 7.2.6 (and in Annex E.4 of that document, which is a bit easier to follow), there is the syntax for ObjectDescriptor (7.2.6.3.1) and InitialObjectDescriptor (7.2.6.4.1).

The way I read that is that at least one ES_Descriptor is required (the valid number of entries in the array is [1..255]), except for the case where its a URL, which it can't be from the restrictions in 14496-14 Section 4.1.2.

Is that a reasonable reading?

If so, there are several conformance sample files (I think 26 in total) that aren't showing the expected number. Examples:

https://github.com/MPEGGroup/FileFormatConformance/blob/main/data/file_features/published/isobmff/03_hinted_gpac.json#L51

https://github.com/MPEGGroup/FileFormatConformance/blob/main/data/file_features/published/isobmff/21_segment_gpac.json#L72

https://github.com/MPEGGroup/FileFormatConformance/blob/main/data/file_features/published/nalu/l-hevc/mhvc_hvc1_lhv1_multiple_tracks_implicit_gpac.json#L59

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions