Skip to content

New user preference to disable Dolby Vision - #1644

Open
whitingj wants to merge 12 commits into
damontecres:mainfrom
whitingj:main
Open

New user preference to disable Dolby Vision#1644
whitingj wants to merge 12 commits into
damontecres:mainfrom
whitingj:main

Conversation

@whitingj

@whitingj whitingj commented Jun 29, 2026

Copy link
Copy Markdown

The PR adds a user preference to control dolby vision support in device profiles. This gives the user the ability to turn off problematic dolby vision media without relying on KnownDefects.kt to handle all permutations.

Background:
My household uses FireTV for streaming our media. I have several different models across multiple generations connected to different brands of TVs. It has been a very frustrating experience trying to get Dolby Vision media to play on those devices. I frequently get a black screen when play DV media by it various by model and TV. This seems to be a very common issue that continues to cause people problems. I tried various fixes including filtering DV codecs with mixed success (it worked on some FireTV / TV combos but not others). Since the problem varies depending on the TV and media, I thought it best to give the user a preference to disable DV compatibility and let the server transcode.

Feature Changes:

  • AppPreference.kt: Added the new user preference. The preference is labeled "Disable Dolby Vision" and defaults to "Off". It provides two other options "Disable All Dolby Vision" and "Disable Dolby Vision with HDR10". The first removes all Dolby Vision compatibility, when the second only removes compatibility with hybrid Dolby Vision/HDR10 media. (See Screen Shoot)
  • DeviceProfileService.kt: Glues up the new user preference with DeviceProfileUtils.kt.
  • DeviceProfileUtils.kt: In HEVC and AV1 unsupported buildSet it will apply the user preference and mark the device as incompatible.
  • WholphinDataStore.proto: Updates to the protobuf to store the new user preference.
  • strings.xml: The new strings I introduced for the prefence.

Description

Adding a new user preference to disable Dolby Vision when sending device compatibility information to the Jellyfin server.

Related issues

This is a common problem across the Jellyfin ecosystem, but there isn't a specific issue for Wholphin. My experience is the issue is FireTV (model and generation) + TV dependent + media dependent. I tested videos from https://kodi.wiki/view/Samples with the same DOVIWithHDR10 flag that worked while other movies I have with the same flag didn't work. It is a very frustrating user experience and the current work around of setting the bitrate really low to force a transcode is sub-optimal IMO as it lowers the video quality. This allows the user to maintain full quality while disabling DV.

jellyfin/jellyfin-androidtv#4021
jellyfin/jellyfin-androidtv#4892
nova-video-player/aos-AVP#1503
https://www.reddit.com/r/jellyfin/comments/12jqoxh/dolby_vision_video_not_working_on_fire_stick_4k/

Testing

FireTV 4K (gen 1) + Vizio
FireTV 4K Max (gen 1) + LG
FireTV 4K Max (gen 2) + Vizio
FireTV (gen 1) + Olevia

Screenshots

Preference-Choices Prefence

AI or LLM usage

I used Claude Code to help guide me through the unfamiliar repo and to prototype solutions. The current code in the PR is my own.

whitingj and others added 4 commits June 29, 2026 13:00
…ofiles. This gives the user the ability to turn off problematic dolby vision media without relying on KnownDefects.kt to handle all permutations. Additionally, changes were made to workflows/main.yaml and build.gradle.kts making it easier for people who fork the repo to build and have actions.

@damontecres damontecres left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

This PR has build script changes unrelated to the suggested feature. I will review this PR once that is fixed.

@whitingj

Copy link
Copy Markdown
Author

Removed the changes to the build and github actions. Let me know if I need to make any other changes before getting a review. Thanks.

@whitingj
whitingj requested a review from damontecres June 30, 2026 18:43
@xAphex

xAphex commented Jul 10, 2026

Copy link
Copy Markdown

At this point there needs to be a Dolby Vision section that includes all Dolby vision settings, or else it clutters settings.

image

another thing, when you select disable dolby vision with hdr10, does it direct play HDR10 or transcodes it?

@damontecres damontecres left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

I'll admit that I'm not super familiar with Dolby Vision and all of the peculiarities with it, but I do agree that it seems accurately detecting support is difficult so this seems useful.

Thanks for the contribution!

Comment thread app/src/main/res/values/strings.xml Outdated
Comment thread app/src/main/res/values/strings.xml Outdated
whitingj and others added 2 commits July 27, 2026 20:29
# Conflicts:
#	app/src/main/java/com/github/damontecres/wholphin/services/DeviceProfileService.kt
Co-authored-by: Damontecres <damontecres@gmail.com>
@xAphex

xAphex commented Aug 13, 2026

Copy link
Copy Markdown

is there a way to obtain a build with the changes here so i can test them?
i have some media that refuses to play because it forces DV.
thanks

@whitingj

Copy link
Copy Markdown
Author

is there a way to obtain a build with the changes here so i can test them? i have some media that refuses to play because it forces DV. thanks

To test you'd have to compile and install via ADB. If that is something you are comfortable doing, I'm happy to help walk you through that. Otherwise you'll have to wait for it to land in the app. I was traveling and just got back. My plan is to get this PR ready to go today.

@whitingj

Copy link
Copy Markdown
Author

Ok I've addressed all of the comments and moved the setting to the experimental settings rather than combining it with the other Dolby Vision settings. Please review and let me know if there are anything else I need to change. Thanks.

doviDeviceCompatibilityMode = newConfig.overrides.doviDeviceCompatibilityMode,
decodeAv1 = prefs.overrides.decodeAv1,
preferAc3ForSurround = appPrefs.experimentalPreferences.enabled { preferAc3Surround },
preferAc3ForSurround = newConfig.experimental.enabled { preferAc3Surround },

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I changed this to use newConfig so it is consistent with how all the other ones are done is this block.

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.

3 participants