jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.69k stars 461 forks source link

Add option to turn OFF Dolby TrueHD and DTS-HD passthrough #1765

Closed branches78 closed 1 month ago

branches78 commented 2 years ago

Describe the feature you'd like

Similiar to the DTS option currently available in the app settings, a Dolby TrueHD option is a must, the reason why is as follows:

When the option is turned ON, Dolby TrueHD should be passthrough as long as the device has support, otherwise the codec should be transcoded to Dolby Digital, as it currently does it.

When the option is turned OFF, Dolby TrueHD should be decoded to multichannel PCM to retain its lossless quality.

Please, this option is a must!.

I already made the request at the Jellyfin feature requests page:

https://features.jellyfin.org/posts/1633/add-option-for-dolby-truehd-passthrough-on-android-tv

svemonix commented 2 years ago

I agree there is a need for better passthrough settings. However the suggestion above is not ideal.

First, if TrueHD passthrough is ON, the user expects trueHD without transcoding regardless of the device capabilities. It just may or may not work.

Second, if OFF results in a multi channel PCM then again most Android TV devices will actually end up with only stereo PCM. Not everyone has a Shield.

So my suggestion keeping in mind the variety of devices is to also have a setting allowing or not multichannel PCM output. That way we may even be able to force transcoding of multichannel AAC on devices that need it.

branches78 commented 2 years ago

First, if TrueHD passthrough is ON, the user expects trueHD without transcoding regardless of the device capabilities. It just may or may not work.

This option works perfectly on Emby for Android TV, it does what I explain above, when the option is ON Dolby TrueHD passes through if the device has passhtrough support (so far the Shield is the only one) but if the device doesn't have passthrough support (the rest of Android TV boxes, sticks and televisions) the codec gets transcoded to Dolby Digital.

Second, if OFF results in a multi channel PCM then again most Android TV devices will actually end up with only stereo PCM. Not everyone has a Shield.

You're wrong, the Shield is NOT the only one with multichannel support, all Android TV boxes and sticks and the newer televisions with eARC passthrough support multichannel PCM playback, however, there is one Android version that came without support which is presumably a bug and that was Android 9, but Android 10 came with that fixed, Android 11 also supports it and I guess 12 and 13 and so on...

svemonix commented 2 years ago

This option works perfectly on Emby for Android TV, it does what I explain above, when the option is ON Dolby TrueHD passes through if the device has passhtrough support (so far the Shield is the only one) but if the device doesn't have passthrough support (the rest of Android TV boxes, sticks and televisions) the codec gets transcoded to Dolby Digital.

That's my point, from a user perspective it doesn't make sense to transcode a format that is expected to be passed through (i.e. passthrough "ON"). This is very counter intuitive.

You're wrong, the Shield is NOT the only one with multichannel support, all Android TV boxes and sticks and the newer televisions with eARC passthrough support multichannel PCM playback, however, there is one Android version that came without support which is presumably a bug and that was Android 9, but Android 10 came with that fixed, Android 11 also supports it and I guess 12 and 13 and so on...

I never stated the Shield is the only device capable of multichannel PCM though. I was just being a bit caricatural. It is however absolutely not true that many Android TV devices support multichannel PCM. Also, eARC doesn't ensure multichannel PCM support either. For instance, none of the popular Fire TV devices support multichannel PCM and many televisions running Android TV regardless of eARC support won't either like my Philips. Also televisions capabilities are not necessarily the same whether the TV itself generates the multichannel PCM or if it is only passed through HDMI to eARC.

Android TV 9 is still the most popular version out there. So far, I've found that only Kodi provides the fine tuning settings needed to accommodate all kinds of setup.

branches78 commented 2 years ago

That's my point, from a user perspective it doesn't make sense to transcode a format that is expected to be passed through (i.e. passthrough "ON"). This is very counter intuitive.

What is more disappointing, not having Dolby TrueHD passtrough or not having 5.1 audio passthrough at all?, saying that, if you can't have Dolby TrueHD then why not having at least Dolby Digital as a backwards compatible format to still enjoy 5.1 audio?

It is however absolutely not true that many Android TV devices support multichannel PCM.

Believe it or not they all support multichannel PCM with an Android version different than Android 9 of course, and when I talk about Android TV I'm only referring to the Android TV OS built by Google directly and not the Android fork used by Fire TV devices, I can't speak for those. You may say that eARC doesn't ensure multichannel PCM support either and that's OK but I mentioned it as a reference and not as a confirmed fact that it works 100% out of the box because nothing is perfect.

svemonix commented 2 years ago

What is more disappointing, not having Dolby TrueHD passtrough or not having 5.1 audio passthrough at all?, saying that, if you can't have Dolby TrueHD then why not having at least Dolby Digital as a backwards compatible format to still enjoy 5.1 audio?

Don't get me wrong, transcoding to AC3 should definitely be an option. My point was simply that offering a passthrough setting for TrueHD that will result in either an actual passthrough or a transcoding when "ON" is very odd is terms of UX. People will get confused and open bug reports. My suggestion is quite simple: offer passthrough options (ON/OFF) for the different codecs and add a setting to either transcode to AC3 or decode to multichannel PCM the unsupported codecs.

That way it is less confusing for users and all kinds of setup can be configured correctly even people with a capable device (like a Shield) that may be limited by something else in the chain like the TV itself or a soundbar being ARC only (not eARC), etc.

Believe it or not they all support multichannel PCM with an Android version different than Android 9 of course,

Unfortunately, it is pointless to say that most Android TV devices could do multichannel PCM audio if they had Android 10 or newer when most of those devices will never be upgraded by their manufacturers.

branches78 commented 2 years ago

My point was simply that offering a passthrough setting for TrueHD that will result in either an actual passthrough or a transcoding when "ON" is very odd is terms of UX. People will get confused and open bug reports. My suggestion is quite simple: offer passthrough options (ON/OFF) for the different codecs and add a setting to either transcode to AC3 or decode to multichannel PCM the unsupported codecs.

Whatever is best to improve the experience I won't argue with that. are you a Jellyfin developer?

WalterWolf49 commented 1 year ago

Any news on this?

branches78 commented 1 year ago

I wonder the same...

branches78 commented 1 year ago

Similar to Emby's options, these is a must on Jellyfin:

image

almightiest commented 1 year ago

There are so many different kinds of DTS-HD, TrueHD, DTS that I'd rather just have a Passthrough Compatible Audio ON or OFF and let it automatically detect based on Android & ExoPlayer APIs. This is how Plex does it, and Plex is pretty flawless when it comes to both Audio passthrough and transcoding to surround sound.

svemonix commented 1 year ago

There are only DTS-HD and DTS-HD MA. The first one is barely used.

Most importantly, the exoplayer (tried with Plex too) detection doesn’t work properly on many devices.

branches78 commented 1 year ago

There are only DTS-HD and DTS-HD MA. The first one is barely used.

DTS-HD is actually the DTS core inside DTS-HD MA streams and that's what I get correctly with my current device (without DTS-HD MA support) and the current Android TV version of the app.

branches78 commented 1 year ago

On the Emby app, when I turn OFF the DTS-HD option in the picture above, I get multichannel PCM because that's the intended behavior, when I turn it ON, I get the DTS core because my device doesn't support DTS-HD MA passthrough.

The same is for the DTS option, when I turn it OFF, I get DTS decoded as multichannel PCM and when I turn it ON, I get DTS correctly passed through.

svemonix commented 1 year ago

The DTS core is DTS only. DTS-HD is something else.

branches78 commented 1 year ago

DTS-HD is something else

You are right, now that I remember, DTS-HD is also called "DTS Express" and the only streaming service that used it was FandangoNow but the service was shut down on 2021 and it was moved to Vudu, DTS Express is the equivalent of Dolby Digital Plus for streaming services, I haven't heard of any other service using it.

branches78 commented 1 year ago

On the latest version of the Android TV app, they made the Dolby Digital option to be turned ON and OFF, which means, when it's OFF, Dolby Digital and Dolby Digital Plus can be decoded as PCM, however, Dolby TrueHD is not included, therefore, I still insist that a separate option should be created to avoid the hassle of going back and forth activating and deactivating that option when Dolby Digital and Dolby Digital Plus are compatible on the majority of devices.

branches78 commented 1 year ago

I discovered something important about Dolby TrueHD and a Dolby Audio license:

On devices without Dolby TrueHD passhtroug support but with a Dolby Audio license, the codec is decoded to PCM thanks to that license, but on devices without it (such as the Realme 4K Stick), Dolby TrueHD doesn't get decoded to PCM, hence the reason why the "Dolby TrueHD" option must exist on the Jellyfin app, so when we turn it OFF, Dolby TrueHD gets decoded as PCM.

branches78 commented 1 month ago

I see this unlikely to happen since the DTS option was removed altogether.

Thank you for your attention.