Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request for clarification: AdaptationSet@contentType #74

Closed
waqarz opened this issue Feb 4, 2016 · 8 comments
Closed

Request for clarification: AdaptationSet@contentType #74

waqarz opened this issue Feb 4, 2016 · 8 comments

Comments

@waqarz
Copy link

waqarz commented Feb 4, 2016

AdaptationSet@contentType is an optional DASH attribute. A lot of IOP aspects (e.g. for video and audio components) rely on the presence of this attribute, but its not mandated. Should this be mandated for DASH-IF interoperable content?

@waqarz
Copy link
Author

waqarz commented Mar 1, 2016

A tool provided for batch testing of MPDs for specific attributes: https://github.com/Dash-Industry-Forum/Conformance-Software/tree/master/Tools/MPDcheck

Conclusion on our test vectors: a significant portion does not have AdaptationSet@contentType, so this attribute should not be mandated to ensure continued compatibility of IOP guidelines to test vectors.

The issue should be closed by agreement.

@waqarz
Copy link
Author

waqarz commented Mar 15, 2016

Proposed edit in Section 3.2.1
• In the case of absence of @contentType attribute, the media type shall be deduced from the @codecs attribute.

@wilaw
Copy link
Member

wilaw commented Mar 15, 2016

I think AdaptationSet@contentType should be a mandated attribute. The alternative, "the media type shall be deduced from the @codecs attribute." is not practical. Is every DASH player expected to have a lookup table of possible audio and video codecs? What about when new codecs are introduced - are players in the field (and implemented in hardware in televisions etc) going to get updated retroactively?

Since the encoder that is preparing the manifest knows unambiguously what the contentType of each adaptionSet is, it should be required to add this attribute during manifest creation.

If this invalidates a significant portion of our test vectors, then we should update our test vectors.

@waqarz
Copy link
Author

waqarz commented Mar 15, 2016

I generally agree, but what I don't understand is that how is it currently working? A lot of content I have seen does not have this attribute, and players like dash.js still are able to correctly work with such content!?

@wilaw
Copy link
Member

wilaw commented Mar 15, 2016

Those players must examine the @contentType attribute of the underlying Representations. Is it true that for all vectors where contentType is missing in the AdaptionSet it is present in the Representation elements?

@waqarz
Copy link
Author

waqarz commented Mar 15, 2016

@wilaw the issue is a bit more mind boggling, please consider this MPD: http://dash.edgesuite.net/dash264/TestCasesHD/2b/DTV/1/live.mpd it has no contentType attribute on any of the levels, while when I test it on dash.js v1.5 or 1.6 it still works perfectly (adaptation set types and representations are all identified.)

@waqarz
Copy link
Author

waqarz commented Mar 15, 2016

So my assumption is that players like dash.js are then using the representation mimeType and/or codec to figure this out,

@waqarz
Copy link
Author

waqarz commented May 3, 2016

Notes on using @MimeType:

a. Is mandatory
b. "The @MimeType attribute of each Representation shall be provided according to RFC 4337"/ video/mp2t for MPEG-2 TS
c. RFC 4337 specifies 3 MIME types excluding the IOD: video/mp4, audio/mp4, application/mp4

Notes on conformance testing of @MimeType:

  1. Check that it must be present
  2. Not repeated from common elements
  3. Some checks for MPEG-2 TS
  4. To Do: check item c above.
  5. Cross checking MIME type against codecs?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants