I am trying to record sound from a Delta 1010LT.
To avoid preemptive problems, I am using the approach of running two 
pthreads to acquire the data. Each thread should perform a read() (In the 
regular syscall read interface) on the data. The file descriptor is opened 
before the pthread call (In order to be shared by both threads). I was 
expecting the driver to queue the requests so that each one would be 
awaken when data was ready (and the other thread would have a huge amount 
of time to queue another data request)...
Unfortunatelly what is happening is that I am receiving a mix of samples 
between the two read syscalls...
Is there some flag, some update, something I should add to my procedures 
to be able to use this approach?! In order to clear things, here is a 
model of how I am doing it :

void* routine (void* arg){
        while(1) {
                read(dsp_fd, buffer, nbtyes);
        }
}
int main (void){
        pthread_create(th1, (SCHED_FIFO 99 ),routine, NULL);
        pthread_create(th2, (SCHED_FIFO 99 ),routine, NULL);
        sleep(10);
}

Thanks a lot for any suggestions,

Denis Damazio





-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Alsa-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to