Player icon indicating copy to clipboard operation
Player copied to clipboard

Player downmixing/not sending audio via passthrough?

Open oggew2 opened this issue 2 years ago • 4 comments

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?

oggew2 avatar Mar 01 '22 15:03 oggew2

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?

teletcl avatar Aug 02 '22 07:08 teletcl

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.

moneytoo avatar Aug 02 '22 20:08 moneytoo

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.

passtrough_preferences

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: optical_capabilities_PLEX KODI: kodi_sound_settings_1

What do You think?

teletcl avatar Aug 04 '22 08:08 teletcl

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: @.***>

oggew2 avatar Aug 09 '22 18:08 oggew2

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.

moneytoo avatar Nov 28 '22 22:11 moneytoo