-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
fix: Fix DASH rejection of streams with ColourPrimaries and MatrixCoefficients #5345
Conversation
Incremental code coverage: 100.00% |
lib/dash/dash_parser.js
Outdated
} else if (schemeId == transferCharacteristicsScheme || | ||
schemeId == colourPrimariesScheme || | ||
schemeId == matrixCoefficientsScheme) { |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
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. |
…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.
…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.
Add ColourPrimaries and MatrixCoefficients schemes as specified by https://dashif.org/docs/DASH-IF-IOP-v4.3.pdf.
In particular,
ColourPrimaries
andMatrixCoefficients
schemes are currently considered "unrecognizedEssentialProperty", causing some streams with valid manifests to discard the video track.