Sign in to follow this  

ASIO and ac3filter programming to decode dolby digital in realtime

Recommended Posts

I recently bought some gadgets that don't play well together. Namely, I want to connect my playstation 3 optical out to my sound card to play through my 5.1 speakers. Since the card doesn't decode dolby in hardware, I have to attempt to do it on the fly through ac3filter, yay! I encountered two obstacles so far: 1. The inadequate, but working solution: In graphedit, I route audio source->ac3filter->audio renderer and it works, but predictably audio lags behind video a fraction of second, and 2. The annoyance: When launching/quitting games, I lose audio and get buzz instead. I have to go the the mixer on my sound card control panel and toggle "SPDIF-in reverse" checkbox and I get back my sound. Solution for 1: I started writing my own directshow ASIO streaming capture/render filter that uses ASIO4ALL v2 for the driver. So far I managed to write enough code for 2 channel stereo input/output to work to see if I can defeat the lag issue, and it's a success so far. I'm confident I will have the whole thing done in a few days. Solution for 2? I don't want to go the the mixer all the time to flip a switch. Since I have the access to the whole SPDIF stream, how do I check whether it's valid or whether I need to "reverse it." This would allow me to fix the signal inside the capture filter prior to passing it through the decoder. I searched everywhere but I just hit a wall here. What does reverse spdif mean? Can anyone point me how to do it in C/C++? My sound card is the Turtle Beach Montego DDL 7.1 on newest reference cmedia drivers for windows xp, if this makes any difference. Thanks in advance.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this