Dash-Industry-Forum / DASH-IF-IOP

DASH-IF Interoperability Points issue tracker and document source code
32 stars 7 forks source link

Media Capabilities data dictionary requires properties not defined in the manifest #385

Open wilaw opened 4 years ago

wilaw commented 4 years ago

The Media Capabilities API https://w3c.github.io/media-capabilities/ for MSE-based players defines a VideoConfiguration https://w3c.github.io/media-capabilities/#dictdef-videoconfiguration with the following properties:

dictionary VideoConfiguration { required DOMString contentType; required unsigned long width; required unsigned long height; required unsigned long long bitrate; required double framerate; boolean hasAlphaChannel; HdrMetadataType hdrMetadataType; ColorGamut colorGamut; TransferFunction transferFunction; };

The last three are defined by enumerated properties which are not currently conveyed in the DASh manifest.

enum HdrMetadataType { "smpteSt2086", "smpteSt2094-10", "smpteSt2094-40" };

enum ColorGamut { "srgb", "p3", "rec2020" };

enum TransferFunction { "srgb", "pq", "hlg" };

Request is for DASH IF to define a standard means of defining these properties within a DASH manifest,

haudiobe commented 4 years ago

This has already been completed in v4.3.

There are supplemental descriptors for this.

Thomas

From: Will Law notifications@github.com Sent: Montag, 18. November 2019 04:59 To: Dash-Industry-Forum/DASH-IF-IOP DASH-IF-IOP@noreply.github.com Cc: Subscribed subscribed@noreply.github.com Subject: [Dash-Industry-Forum/DASH-IF-IOP] Media Capabilities data dictionary requires properties not defined in the manifest (#385)

The Media Capabilities API https://w3c.github.io/media-capabilities/ for MSE-based players defines a VideoConfiguration https://w3c.github.io/media-capabilities/#dictdef-videoconfiguration with the following properties:

dictionary VideoConfiguration { required DOMString contentType; required unsigned long width; required unsigned long height; required unsigned long long bitrate; required double framerate; boolean hasAlphaChannel; HdrMetadataType hdrMetadataType; ColorGamut colorGamut; TransferFunction transferFunction; };

The last three are defined by enumerated properties which are not currently conveyed in the DASh manifest.

enum HdrMetadataType { "smpteSt2086", "smpteSt2094-10", "smpteSt2094-40" };

enum ColorGamut { "srgb", "p3", "rec2020" };

enum TransferFunction { "srgb", "pq", "hlg" };

Request is for DASH IF to define a standard means of defining these properties within a DASH manifest,

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/385?email_source=notifications&email_token=AAVSTEJ5G42X5HHHMPUJS3LQUIHJNA5CNFSM4JONXZJ2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZ5OKBQ , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVSTENB5GQ6JTONRXVHUMLQUIHJNANCNFSM4JONXZJQ . https://github.com/notifications/beacon/AAVSTENHI7GMTF7OUVR7CZDQUIHJNA5CNFSM4JONXZJ2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HZ5OKBQ.gif

haudiobe commented 4 years ago

More offline discussion happening. Let's use Codec Independent Code Points.

jpiesing commented 4 years ago

DVB-DASH uses CICP.

haudiobe commented 4 years ago

Yes CICP is good for most of it. HDR metadata is not covered in CICP though.

/T

From: Jon Piesing notifications@github.com Sent: Montag, 18. November 2019 18:10 To: Dash-Industry-Forum/DASH-IF-IOP DASH-IF-IOP@noreply.github.com Cc: Thomas Stockhammer haudiobe.ts@googlemail.com; Comment comment@noreply.github.com Subject: Re: [Dash-Industry-Forum/DASH-IF-IOP] Media Capabilities data dictionary requires properties not defined in the manifest (#385)

DVB-DASH uses CICP.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Dash-Industry-Forum/DASH-IF-IOP/issues/385?email_source=notifications&email_token=AAVSTEO6THWY63VPFNT4BH3QULEAFA5CNFSM4JONXZJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEELF3XY#issuecomment-555113951 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AAVSTELMM5AAYCSGFTHZPNTQULEAFANCNFSM4JONXZJQ . https://github.com/notifications/beacon/AAVSTELMCDIPFZXAIUVBNSLQULEAFA5CNFSM4JONXZJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEELF3XY.gif

ZmGorynych commented 4 years ago

SMPTE 2086 is a "base layer", both DolbyVision and HDR10+ require it for PQ, afaik. It may be worth splitting metadata into dynamic (DolbyVision, HDR10+) and static. You will have streams that will have smpteSt2086, smpteSt2094-10, and smpteSt2094-40 metadata at the same time. 2094-unaware decoders will just process the stream as HDR10. I'd add a new supplemental property with a list of HDR metadata types carried in the stream. <SupplementalProperty schemeIdUri="xxx:hdr-metadata:2020 value="smpteSt2086 smpteSt2094-10"/>`

Another potential issues is that there are multiple versions of DolbyVision (unsure about HDR10+), and you need to know which version is supported. This currently shows in the codecs string