PCM2906 SPDIF Input and AC3

unixd0od

Member
2008-02-19 3:54 am
For a long time I've wanted a soundcard with digital inputs that can accept an incoming Dolby Digital (AC3) signal, decode it, and play it through my computer speakers. This would be useful for things like gaming consoles, since I don't have a receiver/home theater I use my PC and my monitor (I run the console's audio into my pc's soundcard).

The problem is almost no soundcards have digital inputs and the ones that do can only accept stereo audio from the digital ins. There are one or two cards that support Dolby Digital on the digital inputs, but these are the ridiculously expensive cards (typically in the hundreds of USD range).

Given that I don't want to buy a retardedly expensive soundcard and that the onboard Intel HD audio on my motherboard is fine with the exception that it has no digital inputs, I decided to do some research and I discovered the TI PCM2906.

This chip seems to have everything I want, existing drivers (even for Vista!), and SPDIF in. My idea is that, using this chip and a simple PCB, I can take the digital audio it receives and pass it into the AC3Filter software which can decode AC3 signals (I'm a programmer so writing a bit of code to connect the directshow filters doesn't worry me).

My question however, is if I were to send an AC3 encoded audio signal into this chip over SPDIF, what would it do with it? Would it pass the signal un-mangled up to the software? In the past I did have a soundcard with an spdif input, however anything that wasn't stereo PCM was simply ignored. So I'm worried this chip might do the same....

I appreciate any feedback on my idea.
 

error401

Member
2007-03-24 7:54 am
The datasheet seems to indicate that any digital input that's not in one of the supported formats will be ignored, but it's not totally clear. Even if it didn't ignore it because of the flag indicating it's not PCM audio, the low bitrate of the AC3 stream would seem to pose a problem.

Unfortunately I don't think there's an easy way to do this. Most likely to work is probably an SPDIF receiver followed by a transmitter, and either some logic or configuration to null the bits that set it as digital data (I believe the validity bit is used for this, but I'm not sure). Put this into a soundcard with SPDIF inputs. Even then though, I think you may run into trouble with the bitrate, but it might be possible to work around it if your card allows you to slave it to the recovered clock.

Long story short, AC3 is a pain in the f*cking *** to deal with. Really wish they used an open standard instead, it'd make our lives a lot easier...I don't really like the idea of using 3 soundcards to get 5.1 digital out to a decent DAC.
 

error401

Member
2007-03-24 7:54 am
unixd0od said:


I admittedly don't know very much about AC3 or how it's transmitted over SPDIF, so could you elaborate more on why the lower bitrate would cause a problem?
I'm not positive how it's handled myself, but typically AC3 is 448kbps while CD audio is 1411.2kbps. 448kbps doesn't work out to a standard audio sample rate, so the receiver might reject it. The docs indicate it can only accept a limited set of sample rates. It might be padded or otherwise pumped up to a standard rate though, I'm not certain about this.

If it's going to work, you will probably have to use an S/PDIF receiver strung to a transmitter (or a modular transceiver like the DIX4392 could do this) into the PCM2906 make sure the validity bit is set, or I'm pretty sure the PCM2906 is going to ignore the bitstream data.

Once you get that far, it shouldn't be too hard to get the data back.

TAS1020 can probably do this relatively easily, but you'd need to write firmware and drivers.
 

dadudster

Member
2009-02-17 10:44 pm
I have created a new thread on the AVS Forum to compile all of my knowledge about SPDIF related issues.
http://www.avsforum.com/avs-vb/showthread.php?p=15846010#post15846010

It provides a really detailed compiling of everything I have discovered about this issue, and lists the limitations in detail.

Lets move all further discussion related to this issue to that thread.

Also, please circulate the thread. I would like it to become a sticky in that forum subsection (so that people wont waste the hours I have wasted on this issue).