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

fix: Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients #5345

Merged
merged 4 commits into from
Jun 26, 2023
Merged

fix: Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients #5345

merged 4 commits into from
Jun 26, 2023

Conversation

davidezordan
Copy link
Contributor

@davidezordan davidezordan commented Jun 21, 2023

Add ColourPrimaries and MatrixCoefficients schemes as specified by https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf.

In particular, ColourPrimaries and MatrixCoefficients schemes are currently considered "unrecognizedEssentialProperty", causing some streams with valid manifests to discard the video track.

image

@github-actions
Copy link
Contributor

Incremental code coverage: 100.00%

@avelad avelad requested review from joeyparrish and theodab June 22, 2023 10:41
@avelad avelad added type: enhancement New feature or request priority: P3 Useful but not urgent component: DASH The issue involves the MPEG DASH manifest format labels Jun 22, 2023
@avelad avelad added this to the v4.4 milestone Jun 22, 2023
@davidezordan davidezordan marked this pull request as ready for review June 22, 2023 11:00
Comment on lines 937 to 939
} else if (schemeId == transferCharacteristicsScheme ||
schemeId == colourPrimariesScheme ||
schemeId == matrixCoefficientsScheme) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't think this is accurate. This change implies that the values of CICP for ColourPrimaries and MatrixCoefficients has impact on whether an AdaptationSet is considered to be "HDR" or not but I don't believe that is true. I'm pretty sure that only the TransferCharacteristics define that. Furthermore, in the HLS documentation (which seems to originate the definition of the enumeration of SDR, PQ, HLG), you can see that it is only determined via TransferCharacteristics (description of VIDEO-RANGE within section on EXT-X-STREAM-INF).

I understand the need for this change, as it is expected that the player understands the schemas for ColourPrimaries and MatrixCoefficients (as you have linked in the DASH-IF IOP). Perhaps it makes sense to include them as known and move them to a branch of the if/else that is a no-op? I'm not sure if that makes sense though... I'm not sure what action really should be taken for that information. Perhaps someone else in the community can have input here?

Choose a reason for hiding this comment

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

Yes, I noticed that. I am filtering those now and moving them to a if/else no-op for the moment to not impact TransferCharacteristics values.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I have modified the code not to populate videoRange values when ColourPrimaries and MatrixCoefficients are found, in this way correctly enabling the video tracks.

In the future will be possible to add some logic for populating specific parameters for those two scenarios when needed.

@joeyparrish joeyparrish changed the title feat: Dash parser missing video range schemes fix: Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients Jun 26, 2023
@joeyparrish
Copy link
Member

I've reclassified this as a fix, since I believe it was a mistake to reject those streams in previous versions. This fix will be cherry-picked to the currently-maintained branches.

@joeyparrish joeyparrish merged commit 226ffa9 into shaka-project:main Jun 26, 2023
@davidezordan davidezordan deleted the dash-parser-missing-video-range-schemes branch June 26, 2023 19:23
joeyparrish pushed a commit that referenced this pull request Jul 20, 2023
…fficients (#5345)

Add ColourPrimaries and MatrixCoefficients schemes as specified by
https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf.

In particular, `ColourPrimaries` and `MatrixCoefficients` schemes were
considered "unrecognizedEssentialProperty", causing some
streams with valid manifests to discard the video track.
joeyparrish pushed a commit that referenced this pull request Jul 20, 2023
…fficients (#5345)

Add ColourPrimaries and MatrixCoefficients schemes as specified by
https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf.

In particular, `ColourPrimaries` and `MatrixCoefficients` schemes were
considered "unrecognizedEssentialProperty", causing some
streams with valid manifests to discard the video track.
@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Aug 25, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
component: DASH The issue involves the MPEG DASH manifest format priority: P3 Useful but not urgent status: archived Archived and locked; will not be updated type: enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants