Thanks atlind01 and jjd-uk, I think I have found the issue. I'll quote what DDDamian said back on page 44 and highlight the relevant parts:
(2012-05-12, 19:21)DDDamian Wrote: - XBMC always starts with analog 2.0 as that format is guarenteed to be supported, and that's how it first initializes
- 5.1 is the correct windows setup for spdif connection
- it shows 2.0 for spdif as that is all spdif is capable of for pcm - for AC3/DTS it will play 5.1 fine
- as mentioned, AAC is not natively supported yet, expect issues with that if your amp doesn't support it
- you can use different non-passthrough/passthrough devices if you want in settings
Ok so what seems to be happening is that SPDIF is <ONLY> being detected as 2.0, no matter what (as reported by windows), and therefor nothing is getting transcoded.
(2012-05-15, 18:14)DDDamian Wrote: With the exception of <transcodeto> and <allchannelstereo> the advancedsettings entries listed in post #2 of this thread are active. Transcoding is automatic now depending on other settings, and <allchannelstereo> is now a guisetting under System>Audio Output>Output Stereo to All Speakers (requires "receiver accepts multichannel lpcm"). I'll update the second post shortly. We're working on better logic and a seperate gui window for various settings to streamline it and provide easy access to upcoming DSP settings.
So output stereo to all is requiring multichannel LPCM to be reported by windows. Since my system isn't being recognised as 5.1, it's simply never attempting to encode anything to AC3, and pushing it all out as 2.0 PCM. The 5.1 GUI setting does nothing effectively.
By my limited understanding of the situation, the code needs to be changed so that if SPDIF 5.1 is selected with Output Stereo to All Speakers, the encoding chain will take all non AC3/DTS audio and Decode > Expand to 5.1 > DRC/Volume Control > Encode AC3 > Output. Basically force it to occur. Otherwise any AC3/DTS is passed through, otherwise everything is turned into 2.0 PCM.
That "better logic" DDDamian mentions several times, seems to skip SPDIF entirely. That or SPDIF is being ignored because windows reports 2.0 channels (since you cant set windows to anything but for SPDIF).
I'm sure a transcoding is actually occurring, because everything that isn't AC3/DTS is getting output properly to 2.0 pcm.
I also guess, since the feature freeze has occurred, the DPS settings aren't going to be implemented until the next version. What would be the chance of all those lovely features like LFE to sub, Voice enhancement and Night Modes will be coming to the SPDIF output?
My encoding chain for AC3 Filter is below. It's probably doing a step or two unnecessarily and i'm probably losing quality, but its inaudible.
(AC3 - 48000) -> Decoder -> (Linear PCM 2/0 (stereo) 48000) -> Processor -> (Linear PCM 3/2.1 (5.1) 48000) -> Encoder -> (AC3 3/2.1 (5.1) 48000) -> Spdifer -> (SPDIF 3/2.1 (5.1) 48000) -> Dejitter -> (SPDIF 3/2.1 (5.1) 48000)
FFdshow is also doing similar to MP3 and other formats, just using the mixer to bring it to 5.1 with some processing effects then encoding to 5.1 AC3