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

feat: support Dolby Vision profile 8.x (HEVC) and 10.x (AV1) in HLS and DASH #1396

Merged

Conversation

cosmin
Copy link
Contributor

@cosmin cosmin commented May 7, 2024

Support Dolby Vision profile 8.1, 8.2, 8.4, 10.1, 10.4 signaling in HLS and DASH.

adds new option --use_dovi_supplemental_codecs (off by default) to use SUPPLEMENTAL-CODECS in HLS and scte214:supplementalCodecs and scte214:supplementalProfiles for DASH.

To maintain compatibility with existing players the current behavior of using two entries in the manifest remains the default. This will be changed in a future version where use_dovi_supplemental_codecs will become on by default.

Adds Dolby Vision compatible brands, 'db1p', 'db2g', 'db4g', 'db4h', 'dby1' based on https://mp4ra.org/#/brands

This is based on and replaces #1255. It was then extended to support DolbyVision profile 10.x signaling for AV1


Co-authored-by: Xingzhao Yun xyun@dolby.com

cosmin and others added 7 commits May 7, 2024 00:04
@cosmin cosmin force-pushed the dolbyvision-supplemental-codecs-for-hevc-av1 branch from 97fd1c0 to 4bd18e5 Compare May 7, 2024 07:06
@cosmin
Copy link
Contributor Author

cosmin commented May 7, 2024

@vish91 I know you expressed interest in this feature, please give this a try and let me know if it works for you

@cosmin
Copy link
Contributor Author

cosmin commented May 7, 2024

cc @sr1990 since you had some feedback on the earlier PR

@cosmin cosmin added this to the v3.2 milestone May 7, 2024
@cosmin cosmin self-assigned this May 7, 2024
@cosmin cosmin requested a review from joeyparrish May 7, 2024 07:13
@cosmin cosmin force-pushed the dolbyvision-supplemental-codecs-for-hevc-av1 branch from 1d24037 to b8aecf2 Compare May 7, 2024 16:18
@cosmin cosmin force-pushed the dolbyvision-supplemental-codecs-for-hevc-av1 branch from 9daf748 to 5762215 Compare May 7, 2024 18:32
@sr1990
Copy link
Contributor

sr1990 commented May 8, 2024

--use_dovi_supplemental_codecs (off by default)

Agree with the flag usage. Overall lgtm.

@cosmin cosmin force-pushed the dolbyvision-supplemental-codecs-for-hevc-av1 branch from c0a311c to e6c3c69 Compare May 8, 2024 16:08
@@ -53,12 +53,12 @@ bool AddMpdNameSpaceInfo(XmlNode* mpd) {
"urn:marlin:mas:1-0:services:schemas:mpd";
static const char kXmlNamespaceXlink[] = "http://www.w3.org/1999/xlink";
static const char kMsprNamespace[] = "urn:microsoft:playready";
static const char kScte214Namespace[] = "scte214";
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wonder if this is the correct namespace to use @cosmin ?
or if this should be urn:scte:dash:scte214-extensions

4.2.4 Guidelines for signaling cross-compatible Dolby Vision content (profiles
8.1 and 8.4)
Follow the guidelines for MPD schema and AdaptationSet when signaling cross-compatible Dolby Vision
content.
MPD
An MPD that needs to use this signaling must contain the following schema.
xmlns:scte214="urn:scte:dash:scte214-extensions"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you for tracking down the correct namespace

@vish91
Copy link
Contributor

vish91 commented May 8, 2024

@XingzhaoYun could you also help please check this PR and see if you have any feedback or any changes we have in fork where we are attempting this.

@XingzhaoYun
Copy link
Contributor

For DASH signaling, I think SupplementalProperty/EssentialProperty for MatrixCoefficients, ColourPrimaries, and TransferCharacteristics are ought to included by default, right? We created another branch including this already for reference, main...DolbyLaboratories:shaka-packager:dolby/dovi_for_prmt#diff-6f4988849e3a9b9b9060eb05e0dd074599a84197063016b97b15cc71fee287c9

…or DASH

---------

Co-authored-by: Xingzhao Yun <xyun@dolby.com>
@cosmin cosmin force-pushed the dolbyvision-supplemental-codecs-for-hevc-av1 branch from 3e7dda4 to c64c7c3 Compare May 9, 2024 20:51
@cosmin
Copy link
Contributor Author

cosmin commented May 9, 2024

For DASH signaling, I think SupplementalProperty/EssentialProperty for MatrixCoefficients, ColourPrimaries, and TransferCharacteristics are ought to included by default, right?

@XingzhaoYun thank you for the feedback, I went ahead and included the changes to parse and include matrix coefficients and color primaries in the MPD.

@cosmin cosmin merged commit a99cfe0 into shaka-project:main May 11, 2024
35 checks passed
@cosmin cosmin deleted the dolbyvision-supplemental-codecs-for-hevc-av1 branch May 11, 2024 00:42
cosmin pushed a commit that referenced this pull request May 12, 2024
🤖 I have created a release *beep* *boop*
---


##
[3.2.0](v3.1.0...v3.2.0)
(2024-05-11)


### Features

* support Dolby Vision profile 8.x (HEVC) and 10.x (AV1) in HLS and DASH
([#1396](#1396))
([a99cfe0](a99cfe0))


### Bug Fixes

* adaptation set IDs were referenced by lowest representation ID
([#1394](#1394))
([94db9c9](94db9c9)),
closes
[#1393](#1393)
* escape media URLs in MPD
([#1395](#1395))
([98b44d0](98b44d0))
* set yuv full range flag to 1 for VP9 with sRGB
([#1398](#1398))
([f6f60e5](f6f60e5))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
@vish91
Copy link
Contributor

vish91 commented May 16, 2024

----@cosmin @joeyparrish how do we use this new flag ?
I am trying to run a test today and the command when ran with --use_dovi_supplemental_codecs says ERROR: Unknown command line flag 'use_dovi_supplemental_codecs'
this is a pacakger command flag right ?----

^Ignore me.. i was using the wrong release build. Testing again

@cosmin
Copy link
Contributor Author

cosmin commented May 21, 2024

@vish91 did that work out?

@vish91
Copy link
Contributor

vish91 commented May 21, 2024

yeah that worked well. Generated a clear and DRM version. Getting it to player and client teams for testing . Thanks!

@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Jul 10, 2024
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants