Hi there. What is the best way to achieve minimal transport latency in an application constanty capturing data from one interface and playing it through another. The purpose of this app would be some kind of software loop-through converter. My problem domain is that I have my PC connected to an amplifier through SPDIF while the TV-card is connected to the soundcard only through analog wires. However my sound chip CMI8738 does not suppport hardware realtime monitoring from analog input to digital output. So my suggestion was to concurrenly read data from the ADC input and write it to SPDIF output.
I initially wrote this as an OSS app but i'm slightly dissappointed about the minimal IO latency I could reach with the common iterative read/write mechanism. So I decided to try the ALSA way to reduce the throughput delay. Is it possible to have both stream pointers working on the same physical buffer? A slightly delayed start of playback should then give a nice IO latency. Are there any other approaches viable? Ideally i'd like to get this working while not depending on userspace scheduling heavily. Any suggestions/constraints about the following ideas? 1. traditional blocking read/write in seperate threads 2. traditional non-blocking read/write in a single thread 3. asynchronous SIG_IO triggered read/write handling 4. mmap'ed buffer for read+write Especially for the last candidate i'd appreciate any kind of pseudo-code since i'm not yet quite familiar with ALSA and MMAP audio IO. Regards, Marcus ------------------------------------------------------- This SF.NET email is sponsored by: SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See! http://www.vasoftware.com _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel