[U4] Incorrectly enables DTS downmix

Issue #714 resolved
prl created an issue

Although the U4 kernel drivers advertise DTS downmix capability in /proc/stb/audio/dts_choices it is not in fact properly supported at higher levels in the firmware.

The firmware incorrectly enables DTS downmix by default and allows user control of DTS downmix.

If DTS downmix is enabled and media is played and a DTS doundtrack is used, the playback can lock up.

peteru in the Beyonwiz forum:

The U4 drivers advertise the downmix capability, which is supported by the drivers. The drivers are built on top of an SDK platform that also supports DTS downmix, as does the hardware. However, the DSP codec, which is a binary blob that requires licensing, is not present and therefore the capability is non-functional.

As you have observed, the U4 drivers will accept the DTS audio stream and try to feed it to the DSP for decoding. Because there is nothing running there, the data will pile up in the buffers until there is no more room and then the entire decode pipeline stops.

Replication steps

On a U4, ensure AUDIO>DTS downmix is enabled.

Play media files with a DTS as the selected (or only) soundtrack.

Playback stalls...

Comments (5)

  1. Peter Urbanec

    Refactor downmix detection and setting

    To fix bug #714, a mechanism to write "passthrough" into /proc/stb/audio/dts is required.

    A clean way to do that is to move the code in setDTSDownmix() into a new local function and allow that to be called with a bool argument.

    That can be extended to all three setXXXDownmix() functions, and the mostly copy/paste code to detect downmix capability can also be put into a single function.

    The two new functions hasDownmix() and setDownMix() take an argument to specify the audio format to be tested.

    → <<cset 30ea0fadf482>>

  2. Peter Urbanec

    Fix bug #714: [U4] Incorrectly enables DTS downmix

    On a U4, write "passthrough" into /proc/stb/audio/dts and force SystemInfo["CanDownmixDTS"] to False to disable DTS downmix and prevent the user from enabling it in the audio settings.

    → <<cset be8d5899bc0e>>

  3. Log in to comment