-
-
Notifications
You must be signed in to change notification settings - Fork 495
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
Fix DTS playback - ask for transcoding when unsupported #3929
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure how this will behave when using an external audio receiver with DTS support on a TV without support. Would it wrongly think it can't playback DTS?
I implemented these changes and it did not work as expected. It caused all DTS to transcode on my Gen2 Firetv Max which supports DTS. On my TV which also supports DTS it played the file directly.
Most of the issues I've encountered have been with high-end resolution DT XLL files. And that playback issue has been solved by the transcode after direct play fails twice error handling. |
Thank you very much for your test @MichaelRUSF. My current setup does not support DTS in any form so I am not able to test that scenario. In my case the change that forces transcoding after 2 playback errors does not fix the issue (the player closes after 3 errors when I try to play DTS audio). Since listing supported MediaCodec does not always work, in the next days I will try to come up with a different solution. |
4b07848
to
5270108
Compare
8c113f3
to
0c49d4d
Compare
I have pushed another set of changes to check for DTS support in another way. This code surely need some improvements/refactoring, but first I need to know if it actually works as expected also for DTS-capable hardware (I cannot test this directly). I have already tested it in case of no DTS-capable hardware and it correctly triggers a transcode. |
0c49d4d
to
ef0b0e6
Compare
Re-tested and DTS support is correctly identified for both devices now, no transcoding. High-resolution DTS audio still errors out on the FireTV, but that's not b/c of this PR. This change should help out devices that lack DTS support. |
eb50f38
to
cb6f05a
Compare
app/src/main/java/org/jellyfin/androidtv/util/profile/ExoPlayerProfile.kt
Fixed
Show fixed
Hide fixed
df4f1a2
to
72f9abc
Compare
Thank you for testing this Michael. @nielsvanvelzen Could you please take a look at this PR when you have a moment? |
app/src/main/java/org/jellyfin/androidtv/util/profile/ProfileHelper.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/jellyfin/androidtv/util/profile/ProfileHelper.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/jellyfin/androidtv/util/profile/ProfileHelper.kt
Outdated
Show resolved
Hide resolved
app/src/main/java/org/jellyfin/androidtv/util/profile/ExoPlayerProfile.kt
Outdated
Show resolved
Hide resolved
72f9abc
to
48b3b5a
Compare
48b3b5a
to
bc34902
Compare
7f46e45
to
3973d4d
Compare
@rickysixx can you address the review comments instead of constantly force-pushing the same changes over and over again? |
Currently there is no reliable way to check if DTS audio is supported by the device or by others it's connected to, therefore DTS playback must be enabled/disabled manually by the user. `false` is the safest default value for the preference, because it allows media to be always played without errors on any device, even though it will trigger a useless transcode for devices that do support DTS. This commit reverts 38589ef, but now the preference does have a logic.
3973d4d
to
9ea2f50
Compare
I have pushed a new version of the code. I was not able to find a reliable way to check for DTS support that
I have also tried to use Therefore I think the safest option is to add back the preference to enable/disable DTS playback (which it's there in the web player too) and let the user take care of it. I'm aware that the same preference has been removed in 38589ef, but that was because the preference was never used. Now that it does have a logic, I think it's appropriate to have it back in the lack of automatic, reliable, DTS support detection. Sorry for all the useless force pushes in these months @nielsvanvelzen. They were just to keep my fork up to date while waiting to have a moment to work on this PR. I was not aware that they triggered a notification to you. |
Changes
Check if DTS audio codec is supported by the device before adding it to the supported codec list.
Probably a similar check should be done also for other "advanced" audio codecs (e.g. Dolby TrueHD).
Issues
Fixes #3896, #3868