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

Only do DoVi remux when the client supports profiles without fallbacks #13113

Merged

Conversation

gnattu
Copy link
Member

@gnattu gnattu commented Nov 26, 2024

In 10.10 clients that can only play the fallback layer like the Samsung TVs will report DOVIWithHDR10 as supported video range, but the server should not do remux in DoVi as the client can only play the fallback layer. This changes the server to only do DoVi remux when the client can play DoVi videos without a fallback layer.

Changes

Issues

Forum report: https://forum.jellyfin.org/t-issue-with-playback-of-hevc-files-in-jellyfin-dolby-vision-tag-misconfiguration?pid=43992

In 10.10 clients that can only play the fallback layer like the Samsung TVs will report `DOVIWithHDR10` as supported video range, but the server should not do remux in DoVi as the client can only play the fallback layer. This changes the server to only do DoVi remux when the client can play DoVi videos without a fallback layer.
@gnattu gnattu added the stable backport Backport into the next stable release label Nov 26, 2024
@gnattu gnattu requested a review from a team November 26, 2024 07:03
@Bond-009 Bond-009 merged commit 9464f9e into jellyfin:release-10.10.z Nov 30, 2024
15 of 16 checks passed
@jellyfin-bot jellyfin-bot removed the stable backport Backport into the next stable release label Nov 30, 2024
joshuaboniface pushed a commit that referenced this pull request Nov 30, 2024
Only do DoVi remux when the client supports profiles without fallbacks

Original-merge: 9464f9e

Merged-by: Bond-009 <bond.009@outlook.com>

Backported-by: Bond_009 <bond.009@outlook.com>
@GeorgeH005
Copy link
Contributor

GeorgeH005 commented Dec 5, 2024

The supportsDolbyVision function in browserDeviceProfile.js in the web client should have returned false, shouldn't it have? Even if it did somehow return true, shouldn't the canPlayType functions have also returned false? I do not understand how the capabilities were reported as such in the first place.

@gnattu
Copy link
Member Author

gnattu commented Dec 5, 2024

The supportsDolbyVision function in browserDeviceProfile.js in the web client should have returned false, shouldn't it have? Even if it did somehow return true, shouldn't the canPlayType functions have also returned false? I do not understand how the capabilities were reported as such in the first place.

LG TV and Samsung TV has different logics because for Samsung TVs there are no DoVi capabilities at all so those color ranges are reported purely for the fallback layer. On LG TVs the real DoVi without fallback is always reported on supported TVs.

The reason behind this change is that Samsung TV also has buggy HLS player that struggles with seeking.

@gnattu gnattu deleted the only-remux-dv-when-no-fallback branch December 5, 2024 18:16
@GeorgeH005
Copy link
Contributor

Don't they share the client code? Those capabilities can't be reported as far as I recall without supportsDolbyVision being true, which is either set by the wrapper app, or because the client is using safari on an iDevice.

@gnattu
Copy link
Member Author

gnattu commented Dec 5, 2024

Clients can inject the profiles by design and that is injected by Tizen app wrapper iirc.

jellyfin/jellyfin-web@aa4004a

it is directly hard coded.

@GeorgeH005
Copy link
Contributor

I will have to look deeper into the client code. Thanks for explaining!

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.

6 participants