Modify audio_policy.conf to force passthrough AC3

So I am contemplating rooting my Shield TV, but wanted to seek some guidance first from those more knowledgable than me.

Apologies I know this isn’t specifically a Kodi question, but there seem to be a good selection of Shield/Android knowledgable people here who may have some answers.

I am using my shield with the stock firmware, but am having issues getting DD to passthrough when playing videos in the many video player apps, VLC e.t.c

I think the problem is that the EDID for my TV does not report it supporting AC3/DD to the shield, so the system is down sampling everything to stereo, and I have no way of overriding it. Problem is my TV does in fact support DD fine as I am sending it via ARC to an audio receiver, I can test this with a Raspberry Pi/Apple TV where I can force the box to send the DD over HDMI.

No I can’t plug the Shield TV directly into my AVR as it doesn’t not support HDMI 2.0a, which is needed for 4K@60/HDR.

So, I’m wondering if I can force the shield to stop listening to the HDMI sink and output what I tell it to.

No I have found some information about editing the audio_policy.conf file, and changing the passthrough mode from dynamic to something manually specified, problem is I have no idea what the ENUM should be for DD, and also what other formats I should specify to make sure things like Stereo audio still get passed correctly, similarly I probably need to override the channel mask, but again not entirely sure whether I need to still include 2.0 channels for stereo audio to work.

I would just pile in and see what works, but as the box isn’t rooted yet as I haven’t needed to, I’m loathed to spend the time doing that if it’s not going to achieve anything.

Here’s the part of the file I think needs to be changed:

Code:
outputs {
      primary {
        sampling_rates 48000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_16_BIT
        devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_AUX_DIGITAL|AUDIO_DEVICE_OUT_ALL_SCO|A​UDIO_DEVICE_OUT_DGTL_DOCK_HEADSET|gamecast_out
        flags AUDIO_OUTPUT_FLAG_PRIMARY
      }
      multichannel {
        sampling_rates 8000|16000|32000|64000|128000|11025|22050|44100|88200|176400|12000|24000|48000|9​6000|192000
        channel_masks dynamic
        formats AUDIO_FORMAT_PCM_16_BIT|AUDIO_FORMAT_PCM_24_BIT_PACKED
        devices AUDIO_DEVICE_OUT_AUX_DIGITAL
        flags AUDIO_OUTPUT_FLAG_DIRECT
      }
      passthrough {
        sampling_rates dynamic
        channel_masks AUDIO_CHANNEL_OUT_MONO|AUDIO_CHANNEL_OUT_STEREO|AUDIO_CHANNEL_OUT_QUAD|AUDIO_CHA​NNEL_OUT_SURROUND|AUDIO_CHANNEL_OUT_5POINT1|AUDIO_CHANNEL_OUT_7POINT1
        formats dynamic
        devices AUDIO_DEVICE_OUT_AUX_DIGITAL
        flags AUDIO_OUTPUT_FLAG_DIRECT
      }
      hr_audio {
        sampling_rates 96000|192000
        channel_masks AUDIO_CHANNEL_OUT_STEREO
        formats AUDIO_FORMAT_PCM_24_BIT_PACKED
        devices AUDIO_DEVICE_OUT_AUX_DIGITAL
        flags AUDIO_OUTPUT_FLAG_DIRECT
      }
    }

Anyone got any experience with this?

Thanks

Gareth