Skip to content

Comments

feat: Allow EssentialProperty descriptors to be used for Video Colorimetry in DASH#1524

Open
gmcgarry wants to merge 8 commits intoshaka-project:mainfrom
DolbyLaboratories:dolby/use-colorimetry-essential-property
Open

feat: Allow EssentialProperty descriptors to be used for Video Colorimetry in DASH#1524
gmcgarry wants to merge 8 commits intoshaka-project:mainfrom
DolbyLaboratories:dolby/use-colorimetry-essential-property

Conversation

@gmcgarry
Copy link

Currently, video colorimetry in the dash manifest is always presented as SupplementalProperty descriptors. This means that a player may choose to ignore them.

      <EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:MatrixCoefficients" value="9"/>
      <EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:ColourPrimaries" value="9"/>
      <EssentialProperty schemeIdUri="urn:mpeg:mpegB:cicp:TransferCharacteristics" value="16"/>

For HDR colorimetry descriptors, using EssentialProperty descriptors will trigger the player (such as dash.js) to honour the descriptor by populating MediaCapabilities queries with information from the descriptors. It will also ensure that SDR devices will quickly filter unsupported HDR tracks. This is particularly important for HEVC since the codecs attribute does not convey the colorimetry information like av/1.

This patch introduces the --use_colorimetry_essential_property command-line flag to use EssentialProperty instead of SupplementalProperty. It is recommended by Dolby for signalling Dolby Vision Profiles 8 and 10. The semantics of this flag preserves the existing default behaviour.

…tead of SupplementalProperty for video colorimetry in the DASH manifest.
@joeyparrish
Copy link
Member

Thanks for contributing!

For my own notes: I checked source in Shaka Player and found that HDR info is taken from both EssentialProperty and SupplementalProperty, in that order.

@joeyparrish
Copy link
Member

Looks like you have a small error in your tests:

https://github.com/shaka-project/shaka-packager/actions/runs/19561994356/job/56079257646?pr=1524

packager/app/test/packager_test.py:492:46: E0001: Parsing failed: 'invalid syntax. Perhaps you forgot a comma? (packager_test, line 492)' (syntax-error)

@joeyparrish
Copy link
Member

If you would allow us to make edits in the future, I would be happy to correct small issues like this myself. Let us know when you've pushed a commit to fix this. Also, you might consider running the linter and test cases yourself before upload. Thanks!

@joeyparrish
Copy link
Member

If you would allow us to make edits in the future...

Not allowed by GitHub for organization forks, rather than personal ones!

See #1523 (comment)

@gmcgarry gmcgarry requested a review from joeyparrish November 21, 2025 23:42
@joeyparrish
Copy link
Member

https://github.com/shaka-project/shaka-packager/actions/runs/19586274341/job/56102029656?pr=1524

************* Module packager_test
packager/app/test/packager_test.py:554:7: E0602: Undefined variable 'use_colorimetry_essential_property' (undefined-variable)
packager/app/test/packager_test.py:493:16: W0613: Unused argument 'use_colorimetry_essentail_properity' (unused-argument)
packager/app/test/packager_test.py:1502:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)
packager/app/test/packager_test.py:1521:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)
packager/app/test/packager_test.py:1540:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)

@gmcgarry
Copy link
Author

https://github.com/shaka-project/shaka-packager/actions/runs/19586274341/job/56102029656?pr=1524

************* Module packager_test
packager/app/test/packager_test.py:554:7: E0602: Undefined variable 'use_colorimetry_essential_property' (undefined-variable)
packager/app/test/packager_test.py:493:16: W0613: Unused argument 'use_colorimetry_essentail_properity' (unused-argument)
packager/app/test/packager_test.py:1502:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)
packager/app/test/packager_test.py:1521:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)
packager/app/test/packager_test.py:1540:12: E1123: Unexpected keyword argument 'use_colorimetry_essential_property' in method call (unexpected-keyword-arg)

Oops. Fixed.

@gmcgarry gmcgarry closed this Nov 26, 2025
@gmcgarry
Copy link
Author

Oops, looks like I accidentally closde the PR instead of resolving the conversation.

@gmcgarry gmcgarry reopened this Nov 26, 2025
@gmcgarry gmcgarry requested a review from sr1990 November 27, 2025 05:37
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

Successfully merging this pull request may close these issues.

3 participants