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
HDR streams not playing due to unsupported properties #4384
Comments
To what I see, it is a capabilities issues but the only capabilities that are supported relates to thumbnails and fonts.
|
Hi @ValentinBesnard , thank you for raising this issue. From my understanding, this is not a bug but rather a feature request. Although I see the benefit for having native support for these HDR-related identifiers, adding this is little more complicated for a quick fix. However, a first fix might be available for you via: |
Forgive me if I'm being stupid but I just stumbled across this. I thought the whole point of an EssentialPropertyDescriptor was that the entity with an unknown such descriptor was ignored. Hence the behaviour that is described is exactly what I would expect assuming dash.js does not support these essential property descriptors. To get the behaviour that the original proposer seems to want then the EssentialPropertyDescriptors should be changed to SupplementalPropertyDescriptors. Happy to be corrected but I think this is not a bug and changing it would be a bug. |
Problem Analysis / Status quo
Immediate solution
Longterm solution
We probably need to use the MediaCapabillitiesAPI to check the HDR rendering capabilities as described here? https://github.com/w3c/media-capabilities/blob/main/hdr_explainer.md#mediacapabilities-does-the-ua-support-decodingrendering-my-brand-of-hdr-video |
Allowing an app to register that it handles certain essential property descriptors as described by @stschr seems to be a desirable change in principle - although I've not reviewed the details. This is valid even if, in the future, dash.js would support these specific essential property descriptors as first class citizens. Completely ignoring / disabling essential property descriptors makes me spectacularly uncomfortable. It is likely that the organisation that created the MPD chose to use an essential property descriptor for a reason. Why not ask them to change the essential property descriptor to a supplemental one? |
#4385 adds a settings attribute |
Hi @jpiesing @stschr @dsilhavy , Thanks for your feedbacks and here some answers/remarks to your comments. I agree on the point that Among the essential properties that are currently supported by Dash.js, there only one for thumbnails and one for fonts but in pratice it supports many others. Bacause Dash.js is able to play non-HDR streams, it supports:
with
Doing this it a short-term solution on packager side to solve interoperability issue. To do that:
On player side, the short term solution is to ignore essential properties and plays the stream. If one property is not supported, I think the decoder will trigger an error. Not a good solution but at least it is a workaround. In my view, long-term solution is to add in the player all (or at least a subset) essential properties supported by the decoder. Thank you all again for you feedbacks Valentin |
Partially addresses in #4405 . I leave this issue open until we have support for checking the HDR related settings with the Media Capabilities API. |
Environment
stream-for-dashjs.zip
Steps to reproduce
Play the stream
Observed behavior
When playing the stream with essential properties properties for HDR, stream is not playing
DashJS prints a debug log "[228046][CapabilitiesFilter] [Stream] EssentialProperty not supported: urn:mpeg:mpegB:cicp:ColourPrimaries"
When I remove the "urn:mpeg:mpegB:cicp:ColourPrimaries" property, a new error appears "“[452419][CapabilitiesFilter] [Stream] EssentialProperty not supported: urn:mpeg:mpegB:cicp:MatrixCoefficients".
When I remove the three essential properties, stream is playing.
Console output
Expected behavior
Stream is playing even if DashJS does not know some essential properties.
The text was updated successfully, but these errors were encountered: