Skip to content

Latest kernel/firmware breaks DTS passthrough with S/PDIF in Kodi #561

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

Closed
futant opened this issue Mar 7, 2016 · 8 comments
Closed

Latest kernel/firmware breaks DTS passthrough with S/PDIF in Kodi #561

futant opened this issue Mar 7, 2016 · 8 comments

Comments

@futant
Copy link

futant commented Mar 7, 2016

After updating the libraspberrypi0, libraspberry-bin and raspberrypi-bootloader packages from 1.20160209-1 to 1.20160225-1 the DTS passthrough stops working. Using the latest vanilla Raspbian image + installed Kodi using aptitude. Downgrading the packages to previous version enables DTS passthrough again without any changes in Kodi configuration. When playing DTS or DTS-HD files with the latest version (4.1.18-v7+ #846) there is no sound from the receiver and DTS is not recognized. With previous version (4.1.17-v7+ #838) the receiver indicates DTS3/2.1 stream.

My setup is RP2B -> HDMI -> Sony KDL 46HX755 tv -> optical -> Sony STR DB-790 receiver (dts and dd only, no hd support). MMAL on, OMX off in Kodi.

The issue was also discussed in Raspbian forums where the user Rascas commented that the latest kernel/firmware was working for him with the setup: Pi -> HDMI -> AV Receiver -> HDMI -> TV (speakers connected to receiver), so it seems to affect only the cases where optical link is in place.

The command vcgencmd hdmi_stream_channels returns hdmi_stream_channels=1 with both versions when DTS stream is playing. I have tested with multiple videos containing DTS or DTS-HD streams.

This issue currently prevents me from having up-to-date packages in Raspbian, I've had to hold the packages in aptitude for now.

There is more previous discussion related to this issue in here Github.

@popcornmix
Copy link
Contributor

If you enable omxplayer, what is the behaviour with DTS passthrough before and after the firmware change?
With omxplayer disabled, what is the behaviour with AC3 passthrough before and after the firmware change?

@futant
Copy link
Author

futant commented Mar 7, 2016

omxplayer enabled, mmal disabled - no DTS passthrough in older or new firmware.
omxplayer enabled, mmal enabled - DTS passthrough working in older firmware, no DTS passthrough in new firmware and the video was showing it was actually using mmal.
omxplayer disabled, mmal enabled - AC3 passthrough working in older and new firmware.

@popcornmix
Copy link
Contributor

I think the problem is that your TV doesn't support (probably deliberately) passing DTS audio out through optical.
The manual explicitly mentions Dolby (AC3) but not DTS:
http://pdf.crse.com/manuals/AE7L100511/ENG/c_extsnd_digaout.html
and support for DTS is very rare:
http://www.cnet.com/uk/news/20-tvs-tested-which-sets-can-pass-surround-sound-to-a-sound-bar/

The recent firmware update was a correct fix, to signal compressed audio when we are outputting compressed audio, and it has fixed passthrough for numerous users.
However your TV is deliberately disabling audio when DTS is now detected (presumably for licensing reasons).

@futant
Copy link
Author

futant commented Mar 7, 2016

Ok, your explanation makes sense and I've seen a lot of similar comments about DTS support being rare in TVs. Still... would it be possible to enable the previous functionality via some configuration switch (like hdmi_force_edid_audio=1 which by the way doesn't help in this situation)?
After all my current hardware is perfectly capable of DTS passthrough, it's just the software change that is preventing this undocumented feature from working. It would feel really stupid to buy a new HDMI receiver just to be able to update Raspberry Pi firmwares in the future.

@popcornmix
Copy link
Contributor

Let me see if there's any convenient config variable that could be used...

@futant
Copy link
Author

futant commented Mar 7, 2016

Thank you very much! I'm out of town for the next 2-3 days and won't be able to comment on this thread or test any changes before I get back.

popcornmix added a commit that referenced this issue Mar 9, 2016
…YUV images

See: #520

firmware: spdif: Allow compressed audio flag to be forced
See: #561

kernel: vchiq_arm: Tweak the logging output

kernel: bcm2835-sdhost: Only claim one DMA channel
kernel: bcm2835-mmc: Only claim one DMA channel
See: raspberrypi/linux#1327

kernel: Pi3 DT: Add pull-ups on the UART RX lines

kernel: config: Add module for mcp3422 ADC
See: raspberrypi/linux#1330

kernel: brcmfmac: Disable power management
See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=138312

kernel: serial: Take care starting a hung-up tty's port
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Mar 9, 2016
…YUV images

See: raspberrypi/firmware#520

firmware: spdif: Allow compressed audio flag to be forced
See: raspberrypi/firmware#561

kernel: vchiq_arm: Tweak the logging output

kernel: bcm2835-sdhost: Only claim one DMA channel
kernel: bcm2835-mmc: Only claim one DMA channel
See: raspberrypi/linux#1327

kernel: Pi3 DT: Add pull-ups on the UART RX lines

kernel: config: Add module for mcp3422 ADC
See: raspberrypi/linux#1330

kernel: brcmfmac: Disable power management
See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=138312

kernel: serial: Take care starting a hung-up tty's port
@popcornmix
Copy link
Contributor

Latest rpi-update allows the compressed audio flag to be overridden.
hdmi_audio_config=0x200 should bring back the old behaviour (and also work with omxplayer).

@futant
Copy link
Author

futant commented Mar 9, 2016

I updated the kernel and fw with rpi-update and tested this with build #853 Hexxeh / rpi firmware 2a7eb4f. DTS passthrough is not working without the config param hdmi_audio_config=0x200. After adding the param DTS passthrough works with both MMAL and OMXPLAYER (that's a nice bonus!). Also AC3 and couple of other formats continued to work without any regressions. Looks good to me! Closing the issue, thank you for really good support.

@futant futant closed this as completed Mar 9, 2016
neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this issue Feb 27, 2017
…YUV images

See: raspberrypi#520

firmware: spdif: Allow compressed audio flag to be forced
See: raspberrypi#561

kernel: vchiq_arm: Tweak the logging output

kernel: bcm2835-sdhost: Only claim one DMA channel
kernel: bcm2835-mmc: Only claim one DMA channel
See: raspberrypi/linux#1327

kernel: Pi3 DT: Add pull-ups on the UART RX lines

kernel: config: Add module for mcp3422 ADC
See: raspberrypi/linux#1330

kernel: brcmfmac: Disable power management
See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=138312

kernel: serial: Take care starting a hung-up tty's port
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants