jellyfin-androidtv icon indicating copy to clipboard operation
jellyfin-androidtv copied to clipboard

Dolby and DTS playback issues

Open branches78 opened this issue 2 years ago • 112 comments

On my two Android TV devices (Mecool KT1 with Android 10 and Realme 4K Stick with Google TV 11), I'm getting two odd behaviors with the DTS option ON and OFF using Exoplayer or libVLC while they're connected to a AV receiver.

BASICALLY, WHEN THE DTS OPTION IS ON, ALL DTS CODECS SHOULD PASSTHROUGH IF THE DEVICE HAS SUPPORT OR GET TRANSCODED TO DOLBY DIGITAL WHEN IT DOESN'T HAVE SUPPORT, WHEN THE OPTION IS OFF, ALL DTS CODECS SHOULD BE DECODED AS MULTICHANNEL PCM.

It's important to clarify that I have to exit from the app every time I turn the option ON and OFF to operate correctly.

I tested Exoplayer and libVLC with videos using the h264, h265 video codecs and DTS and DTS-HD streams with 48Khz and 96Khz sampling frequencies.

ON THE MECOOL KT1 WITH ANDROID 10:

Media Player: Exoplayer

DTS option ON and OFF:

H264/DTS 5.1 48KHZ = Playback error H265/DTS 5.1 48KHZ = Playback error H264/DTS 5.1 96KHZ = Playback error H265/DTS 5.1 96KHZ = Playback error H264/DTS-HD MA 5.1 48KHZ = Playback error H265/DTS-HD MA 5.1 48KHZ = Playback error H264/DTS-HD MA 7.1 48KHZ = DD H265/DTS-HD MA 7.1 48KHZ = DD H264/DTS-HD MA 7.1 96KHZ = Playback error H265/DTS-HD MA 7.1 96KHZ = DD

Media Player: libVLC:

DTS option ON:

H264/DTS 5.1 48KHZ = DTS H265/DTS 5.1 48KHZ = DTS H264/DTS 5.1 96KHZ = DTS H265/DTS 5.1 96KHZ = DTS H264/DTS-HD MA 5.1 48KHZ = PCM 7.1 H265/DTS-HD MA 5.1 48KHZ = DTS without sound H264/DTS-HD MA 7.1 48KHZ = DTS without sound H265/DTS-HD MA 7.1 48KHZ = DTS without sound H264/DTS-HD MA 7.1 96KHZ = PCM 7.1 H265/DTS-HD MA 7.1 96KHZ = PCM 7.1

DTS option OFF:

H264/DTS 5.1 48KHZ = DTS H265/DTS 5.1 48KHZ = DTS H264/DTS 5.1 96KHZ = DTS H265/DTS 5.1 96KHZ = DTS H264/DTS-HD MA 5.1 48KHZ = DTS without sound H265/DTS-HD MA 5.1 48KHZ = DTS without sound H264/DTS-HD MA 7.1 48KHZ = DTS without sound H265/DTS-HD MA 7.1 48KHZ = DTS without sound H264/DTS-HD MA 7.1 96KHZ = PCM 7.1 H265/DTS-HD MA 7.1 96KHZ = PCM 7.1

ON THE REALME STICK WITH GOOGLE TV 11:

Media Player: Exoplayer

DTS option ON:

H264/DTS 5.1 48KHZ = DTS H265/DTS 5.1 48KHZ = DTS H264/DTS 5.1 96KHZ = DTS H265/DTS 5.1 96KHZ = DTS H264/DTS-HD MA 5.1 48KHZ = DTS H265/DTS-HD MA 5.1 48KHZ = DTS H264/DTS-HD MA 7.1 48KHZ = DD H265/DTS-HD MA 7.1 48KHZ = DD H264/DTS-HD MA 7.1 96KHZ = Playback error H265/DTS-HD MA 7.1 96KHZ = DD

DTS option OFF:

H264/DTS 5.1 48KHZ = DTS H265/DTS 5.1 48KHZ = DTS H264/DTS 5.1 96KHZ = DTS H265/DTS 5.1 96KHZ = DTS H264/DTS-HD MA 5.1 48KHZ = DTS H265/DTS-HD MA 5.1 48KHZ = DTS H264/DTS-HD MA 7.1 48KHZ = DD H265/DTS-HD MA 7.1 48KHZ = DD H264/DTS-HD MA 7.1 96KHZ = DD H265/DTS-HD MA 7.1 96KHZ = DD

Media Player: libVLC:

DTS option ON:

H264/DTS 5.1 48KHZ = PCM 5.1 H265/DTS 5.1 48KHZ = PCM 5.1 H264/DTS 5.1 96KHZ = PCM 5.1 H265/DTS 5.1 96KHZ = PCM 5.1 H264/DTS-HD MA 5.1 48KHZ = PCM 5.1 H265/DTS-HD MA 5.1 48KHZ = PCM 5.1 H264/DTS-HD MA 7.1 48KHZ = PCM 2.0 H265/DTS-HD MA 7.1 48KHZ = PCM 2.0 H264/DTS-HD MA 7.1 96KHZ = PCM 2.0 H265/DTS-HD MA 7.1 96KHZ = PCM 2.0

DTS option OFF:

H264/DTS 5.1 48KHZ = PCM 5.1 H265/DTS 5.1 48KHZ = PCM 5.1 H264/DTS 5.1 96KHZ = PCM 5.1 H265/DTS 5.1 96KHZ = PCM 5.1 H264/DTS-HD MA 5.1 48KHZ = PCM 5.1 H265/DTS-HD MA 5.1 48KHZ = PCM 5.1 H264/DTS-HD MA 7.1 48KHZ = PCM 2.0 H265/DTS-HD MA 7.1 48KHZ = PCM 2.0 H264/DTS-HD MA 7.1 96KHZ = PCM 2.0 H265/DTS-HD MA 7.1 96KHZ = PCM 2.0

Android 9, 10 and 11 have issues decoding multichannel PCM, they are explained here:

https://issuetracker.google.com/issues/235460800

Server System (please complete the following information):

  • OS: Windows 11
  • Jellyfin Version: 10.7.7 stable
  • Hardware settings & device: 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz, Intel UHD graphics.
  • Reverse proxy: No
  • Other hardware notes: None.

Client System (please complete the following information):

  • Device: Mecool KT1 and Realme 4K Stick with Google TV
  • OS: Android TV 10 and 11
  • Client: Latest stable version for Android TV

branches78 avatar Jun 07 '22 00:06 branches78

I believe I'm having the same issue. Exoplayer wont play anything at all and LibVLC will play without audio. Kodi also plays without audio until I turn off passthrough, then it plays in 2.0 DD+

tydog98 avatar Jun 08 '22 19:06 tydog98

I believe I'm having the same issue. Exoplayer wont play anything at all and LibVLC will play without audio. Kodi also plays without audio until I turn off passthrough, then it plays in 2.0 DD+

And what is your device?

branches78 avatar Jun 08 '22 21:06 branches78

Tivo Stream 4K, running latest update with Android 10. Server is on 10.8.0 beta 3.

tydog98 avatar Jun 08 '22 22:06 tydog98

With the new 10.8.1 server, some are now playing, others still don't while others stopped playing:

ON THE MECOOL KT1 WITH ANDROID 10:

image

ON THE REALME STICK WITH GOOGLE TV 11:

image

branches78 avatar Jul 01 '22 03:07 branches78

With the latest Jellyfin git I can play 2 channel DTS with LibVLC, but 6 channel still doesn't play. (strangely enough everything works perfectly though my TVs media player with DLNA)

tydog98 avatar Jul 16 '22 04:07 tydog98

With the latest Jellyfin git I can play 2 channel DTS with LibVLC, but 6 channel still doesn't play.

Did you test exoplayer?

branches78 avatar Jul 16 '22 04:07 branches78

Exoplayer is still not playing anything at all for me.

tydog98 avatar Jul 16 '22 15:07 tydog98

With the new 0.14.3 version of Jellyfin for Android TV, Android 10 worsen a bit while Android 11 improved a bit as well, take a look at the bold ones and compare them with the above screenshots:

Android 10:

image

Android 11:

image

branches78 avatar Sep 24 '22 00:09 branches78

Was able to fix my audio issues in libVLC by changing my devices audio settings from manually selecting which codecs my device supports to setting it to automatic. It chooses the same exact codecs so I have no idea why that would fix things. Haven't done thorough testing. Exoplayer still does not work though.

tydog98 avatar Sep 27 '22 00:09 tydog98

Are these test files available anywhere for download so I can test on some other devices? I've run into some audio issues on my CCwGTV (and I also have the HD-version to test with) hooked to my Denon receiver that I never experienced with Shield TV (but can compare results with that). Sorry if I missed the files anywhere but I did look twice and couldn't find them. I probably have full coverage across my media library but finding them will be taxing.

almightiest avatar Jan 10 '23 00:01 almightiest

Are these test files available anywhere for download so I can test on some other devices? I've run into some audio issues on my CCwGTV (and I also have the HD-version to test with) hooked to my Denon receiver that I never experienced with Shield TV (but can compare results with that). Sorry if I missed the files anywhere but I did look twice and couldn't find them. I probably have full coverage across my media library but finding them will be taxing.

I can share the files to you through a Google Drive link, however, I need to run another test with the latest version of the Jellyfin app that was released recently to see how it improved and I will reply back.

branches78 avatar Jan 10 '23 00:01 branches78

Are these test files available anywhere for download so I can test on some other devices? I've run into some audio issues on my CCwGTV (and I also have the HD-version to test with) hooked to my Denon receiver that I never experienced with Shield TV (but can compare results with that). Sorry if I missed the files anywhere but I did look twice and couldn't find them. I probably have full coverage across my media library but finding them will be taxing.

I can share the files to you through a Google Drive link, however, I need to run another test with the latest version of the Jellyfin app that was released recently to see how it improved and I will reply back.

you may encounter issues in 0.15.1 based on a change that broke truehd (unknown to me if it affects dts in any way - fixed in master but unreleased). Maybe 0.15 would be better to test against if your client isn't updated.

almightiest avatar Jan 10 '23 00:01 almightiest

Ok, I will test and share.

Thank you for letting me know.

branches78 avatar Jan 10 '23 00:01 branches78

I was able to test the latest stable version of the server and the latest stable version of the Android TV app on Android 11 (I don't have the Android TV device with Android 10 anymore) and I see an improvement with DTS, however, I'm pretty sure that those issues have been resolved in latest Google security patches regardless of the Android version, so I imagine that if an Android TV device with Android 9 and Android 10 get updated with a more recent security patch, DTS issues will be resolved as well.

What I still see is that turning OFF the DTS option, the DTS codecs are not decoded as multichannel PCM but passing through directly whether using Exolplayer or libVLC so this is something that needs to be addressed.

The only DTS codec not working is DTS-HD Master Audio in the 96Khz, it gives a playback error with Exoplayer but it passes through with libVLC.

It's always worth mentioning that devices like mine don't have DTS-HD High Resolution Audio and Master Audio passthrough, therefore, the DTS core is the one passed through in my tests.

I also tested Dolby Digital Plus with and without Dolby Atmos and they passthrough correctly as well.

Dolby TrueHD seems to be passing through with Exoplayer, I didn't find any transcoding log but I don't get audio with libVLC.

image

Let me know if you still need the files.

branches78 avatar Jan 10 '23 16:01 branches78

Great findings. I have had great results with DTS except for 7.1.

I would love the files.

I can add to the testing with additional devices as well as a receiver that natively supports passthrough for all of these audio formats.

almightiest avatar Jan 10 '23 16:01 almightiest

Here's the link:

https://drive.google.com/drive/folders/1lNghE_nWn6TaeJH6GhBPZ6r39YO69Dgw?usp=sharing

branches78 avatar Jan 10 '23 16:01 branches78

Make sure you use the "Auto" option audio setting on not a manual setting or passthrough setting on your Android TV device.

branches78 avatar Jan 10 '23 16:01 branches78

Make sure you use the "Auto" option audio setting on not a manual setting or passthrough setting on your Android TV device.

Within Jellyfin app, or in the Android TV settings? My devices are on Android 12 and don't recall seeing that option.

almightiest avatar Jan 10 '23 16:01 almightiest

Within Jellyfin app, or in the Android TV settings?

In the Jellyfin app look for a Direct option and look for Auto in the Android TV settings.

What devices do you have?

branches78 avatar Jan 10 '23 16:01 branches78

Within Jellyfin app, or in the Android TV settings?

In the Jellyfin app look for a Direct option and look for Auto in the Android TV settings.

What devices do you have?

2x CCwGTV 4k 1x CCwGTV HDR (1080p) 2x Shield (2019)

almightiest avatar Jan 10 '23 17:01 almightiest

Can you share a picture of the audio setting of one of the CC and the shield if it's not a problem?

branches78 avatar Jan 10 '23 17:01 branches78

I've gathered some additional test files with other media formats (FLAC, LPCM, DTS:X 7.1.4, DTS-ES 6.1, AAC, etc)... would you like me to upload them to your drive?

CCwGTV 4k: image

image

Jellyfin: image

image

almightiest avatar Jan 10 '23 19:01 almightiest

would you like me to upload them to your drive?

I don't see it necessary and I'll tell you why:

FLAC, LPCM and AAC are decoded internally by the device as PCM or LPCM and even though stereo ones are playing correctly, there are issues with multichannel music files in the 88.2, 96khz and 192khz resolutions which I already explained in a separate post (https://github.com/jellyfin/jellyfin-androidtv/issues/1755), however, playing those audio codecs with video files inside containers such as MKV is a different story, they usually have issues when the the resolution is 96Khz, where the audio doesn't get decoded and no audio is output, that issue is related directly to Exoplayer because they get decoded with libVLC.

You can test them and confirm what I'm saying.

A per the screenshots, I see that "Automatic" is selected in the device and "Direct" in "Audio output" which is correct but I think you should select "Auto" with "Max streaming bitrate" just to avoid issues.

branches78 avatar Jan 10 '23 20:01 branches78

would you like me to upload them to your drive?

I don't see it necessary and I'll tell you why:

FLAC, LPCM and AAC are decoded internally by the device as PCM or LPCM and even though stereo ones are playing correctly, there are issues with multichannel music files in the 88.2, 96khz and 192khz resolutions which I already explained in a separate post (#1755), however, playing those audio codecs with video files inside containers such as MKV is a different story, they usually have issues when the the resolution is 96Khz, where the audio doesn't get decoded and no audio is output, that issue is related directly to Exoplayer because they get decoded with libVLC.

You can test them and confirm what I'm saying.

A per the screenshots, I see that "Automatic" is selected in the device and "Direct" in "Audio output" which is correct but I think you should select "Auto" with "Max streaming bitrate" just to avoid issues.

thanks! I do think the additional DTS tests will be helpful at least, though.

I selected Max streaming bitrate to 50mbps on the CCwGTV because i ran into issues with Auto, however, it could have been related to my issues with v0.15.1 and burn-in subs with truehd audio #2396 - that shouldnt' be an issue with these test files so i will reset it back to Auto!

I will test them all and let you know of the results (probably this weekend).

almightiest avatar Jan 10 '23 20:01 almightiest

I just installed the new version 0.15.2 and Dolby Atmos inside Dolby Digital Plus with 7.1 channels is broken, it was working with the previous version, Dolby Atmos inside Dolby Digital Plus with 5.1 channels is working fine, though I still need to test the rest of the files.

branches78 avatar Jan 10 '23 21:01 branches78

0.15.1 included #2381 which must have supported that, but it was reverted in v0.15.2 since transcoding for burned-in subs was broken. I believe 0.16 will have #2381 back in it and these tests could help out @nielsvanvelzen

almightiest avatar Jan 10 '23 21:01 almightiest

The changes in #2381 only affect the supported audio codecs for transcodes. Previously when we needed to transcode because the video codec wasn't supported it would also transcode audio most of the time. The change added all audio codecs normally supported for direct play. There was one regression in that change though, even when FFmpeg copies the audio stream is needs the encoder for the audio codec. And two of the codecs that got added were in experimental stage and needed a special flag that the server did not provide. We've changed that for 10.8.9 but also reverted those 2 codecs (TrueHD and DCA) for now in #2397. We can revert that once we change the client to only support 10.9 and newer (likely in 0.16).

nielsvanvelzen avatar Jan 11 '23 08:01 nielsvanvelzen

I tested all the files and non of the DTS files played and Dolby TrueHD with 7.1 channels didn't play either, they all played in the previous version, I guess I will have to wait for the next 0.16 version.

branches78 avatar Jan 11 '23 15:01 branches78

I tested all the files and non of the DTS files played and Dolby TrueHD with 7.1 channels didn't play either, they all played in the previous version, I guess I will have to wait for the next 0.16 version.

same, v0.15.2 is unusable for my home theater as very few movies are playing at all or with sound (downmixing everything isn't enjoyable to me). I'll have to go back to Plex (ugh) until v0.16+. i'll still run the tests on your test files now that i've added them to my library.

almightiest avatar Jan 11 '23 18:01 almightiest

My results on a CCwGTV 4K -> Denon AV -> Samsung 4K TV:

File Codec Channels Frequency Jellyfin v0.15.2 + 10.8.8 Plex (latest)
Audio 01 - 7.1 - 48Khz.mkv - Good, passthrough DD+ 7.1 48 Passthrough Passthrough
Audio 02 - Dolby Digital Plus with Dolby Atmos 5.1 - 48Khz.mkv DD+ Atmos 5.1 48 Passthrough Passthrough
Audio 03 - Dolby Digital Plus with Dolby Atmos 7.1 - 48Khz.mkv DD+ Atmos 7.1 48 Passthrough Passthrough
Audio 04 - Dolby TrueHD 5.1 - 48Khz.mkv TrueHD 5.1 48 Transcode Multi-in - Low Vol. Transcode Multi-in
Audio 05 - Dolby TrueHD with Dolby Atmos 7.1 - 48Khz.mkv TrueHD Atmos 7.1 48 Transcode Multi-in 7.1 - Low Vol. Transcode Multi-in 7.1
Audio 06 - DTS 5.1 - 48Khz.mkv DTS 5.1 48 Passthrough "Direct" but Multi-in
Audio 07 - DTS 5.1 - 96Khz.mkv DTS 5.1 96 Passthrough "Direct" but Multi-in
Audio 08 - DTSHDRHA 7.1 - 96Khz.mkv DTS-HD RHA 7.1 96 Failed / Error "Direct" but Multi-in
Audio 09 - DTSHDMA 5.1 - 48Khz.mkv DTS-HD MA 5.1 48 Passthrough Core DTS? "Direct" but Multi-in
Audio 10 - DTSHDMA 7.1 - 48Khz.mkv DTS-HD MA 7.1 48 Failed / Error "Direct" but Multi-in
Audio 11 - DTSHDMA 7.1 - 96Khz.mkv DTS-HD MA 7.1 96 Failed / Error "Direct" but Multi-in
Audio 12 - DTSHDMA X 7.1.4 - 48Khz.mkv DTS-HD MA X 7.1.4 48 Failed / Error "Direct" but Multi-in
Audio 13 - DTS-ES 6.1 - 48Khz.mkv DTS-ES 6.1 48 Failed / Error "Direct" but Multi-in
Audio 14 - LPCM 5.1 - 48Khz.mkv LPCM 5.1 48 Transcode Multi-in - Low Vol. Transcode Multi-in
Audio 15 - LPCM 7.1 - 48Khz.mkv LPCM 7.1 48 Failed / Error Transcode Multi-in 7.1
Audio 16 - HE-AAC 5.1.mp4 HE-AAC 5.1 48 Transcode Multi-in Transcode Multi-in
Audio 17 - HE-AAC 5.1 LFE SBR.mp4 HE-AAC LFE SBR 5.1 48 Transcode Multi-in Failed / Error
Audio 18 - HE-AAC 7.1 - audio only.mp4 HE-AAC 7.1 48 Failed / Error Transcode Multi-in

almightiest avatar Jan 12 '23 22:01 almightiest