Player
Player copied to clipboard
Player downmixing/not sending audio via passthrough?
I'm using JustPlayer with a receiver capable of receiving EC3 and DTS (5.1 system). However, if any of those formats are played, the receiver only sees it as a "normal" Dobly digital when using EC3 and shows that the stream only contains 2/0/.0. I have also tested the same media using kodi with forced passthrough and the receiver gets the 2/2/.1 signal and uses the surround.
I'm not sure if exo downmixes the content or if it's not using passthrough, but is there a way to force it to use passthrough and not meddle with the audio files?
I've got TCL AndroidTV 8 and have the same problem.
I've found on internet that this is well-known bug of Exoplayer (in Sony TV and many others AndroidTV): the issue is that the passthough capabilities are not detected, especially for SPDIF. Probably it recognizes the capabilities wrong and probably skips the passthrough and uses ffmpeg extension to downgrade to stereo. Many apps that based on not modified Exoplayer have this problem e.g. DisneyPlus , TiviMate .
But some guy (vip5912) made a little modification at exoplayer library: ( https://bytemeta.vip/repo/moneytoo/Player/issues/197?page=3 )
I made a little modified Exoplayer (dev-v2, modified AudioCapabilities in library-core/audio/AudioCapabilities.java) and build Player (master) with my local Exoplayer. It is working fine. I have DD 5.1 on my AVR.
- add AudioFormat.ENCODING_DTS to EXTERNAL_SURROUND_SOUND_CAPABILITIES
- change return from DEFAULT_AUDIO_CAPABILITIES to EXTERNAL_SURROUND_SOUND_CAPABILITIES
Full thread at: https://github.com/google/ExoPlayer/issues/9671#issuecomment-987167918
Can be do the same here?
To my understanding change like this only proves that the surround audio output works but it doesn't solve the actual capabilities detection. It would probably break output in other configurations.
I was thinking about that It would probably break output in other configurations. In case optical connection (SPDIF) there is no way to automatically detect , as it is to HDMI, capabilities, so only way is to add manual trigger/switch for user to set which type of pass-trough user want to: HDMI or Optical (SPDIF). Such solution is done in Plex Player. If user choose HDMI, library no need modification, but when user choose Optical, modification is needed (in short). Default/initial setting should be disabled.
I think that there is no need to be afraid to add additional options to the settings, because sometimes the user has to decide what he wants - an example is turn on tunneling or choosing the preferences of decoders (there are 3 options to choose from).
You might also think that in the case of an optical connection, the user additionally decides what formats this should apply to: whether only AC3, or also DTS, and also, which may be a bit strange, but E-AC3. In the case of the E-AC3, although the SPDIF standard does not allow this, the signal is converted by the Dolby chip in the TV device (instead of by the software decoder) and output as AC3 (backward compatible). This is how it is done in KODI and I think it is very good, because the user decides what he wants. I have this tested on my TCL TV with AndroidTV 8 and it works very well.
PLEX:
KODI:
What do You think?
Hello, Anything would be good, but for me the way Kodi handles it works with surround, so if just player can have similar sound settings that would be great! Thanks
tors 4 aug. 2022 kl. 10:56 skrev telewizortcl @.***>:
I was thinking about that It would probably break output in other configurations. In case optical connection (SPDIF) there is no way to automatically detect , as it is to HDMI, capabilities, so only way is to add manual trigger/switch for user to set which type of pass-trough user want to: HDMI or Optical (SPDIF). Such solution is done in Plex Player. If user choose HDMI, library no need modification, but when user choose Optical, modification is needed (in short). Default/initial setting should be disabled.
[image: passtrough_preferences] https://user-images.githubusercontent.com/66688147/182803097-a163a844-745d-4140-af38-070a64f98efb.jpg
I think that there is no need to be afraid to add additional options to the settings, because sometimes the user has to decide what he wants - an example is turn on tunneling or choosing the preferences of decoders (there are 3 options to choose from).
You might also think that in the case of an optical connection, the user additionally decides what formats this should apply to: whether only AC3, or also DTS, and also, which may be a bit strange, but E-AC3. In the case of the E-AC3, although the SPDIF standard does not allow this, the signal is converted by the Dolby chip in the TV device (instead of by the software decoder) and output as AC3 (backward compatible). This is how it is done in KODI and I think it is very good, because the user decides what he wants. I have this tested on my TCL TV with AndroidTV 8 and it works very well. PLEX: [image: optical_capabilities_PLEX] https://user-images.githubusercontent.com/66688147/182805306-dc2245cb-b94f-406f-8acc-58462af43c70.jpg KODI: [image: kodi_sound_settings_1] https://user-images.githubusercontent.com/66688147/182805069-4d7439b1-c3cb-4a73-8617-7f968a7f020f.jpeg
Please write, what do You think about this?
— Reply to this email directly, view it on GitHub https://github.com/moneytoo/Player/issues/285#issuecomment-1204965422, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFUMN2M3LSVTWPUTGIZ66ALVXOAS3ANCNFSM5PUJOOYA . You are receiving this because you authored the thread.Message ID: @.***>
As I don't use any AV receiver or TV, I don't feel confident making any changes or options related to passthrough (outside what's the ExoPlayer default configuration) which I cannot test or assess.