Stéphane Letz wrote:
> Hi,
>
> We are implementing a full duplex backend that is using separated in/ 
> out devices. Basically we are following what is explained in the  
> "Using separate input and output devices" section in the following  
> page http://manuals.opensound.com/developer/full_duplex.html. We use a  
> single thread that is doing read/write in a loop.
>
> Everything works as expected on a HDAudio card on Solaris à 48 kHz:  
> read is the function that blocks and drive the audio timing. But when  
> using another sample rate values (like 44.1 kHz) on the same card,  
> then write is blocking and read returns immediately.
>   
This is probably caused by the virtual mixer (vmix) subsystem that uses 
the device at fixed 48 kHz rate. Other rates will require conversions 
which make recording and playback to work in slightly different way. You 
can bypass vmix by opening the device with the O_EXCL flag.
> Is this the expected behaviour? Is there way to configure device to  
> always have a blocking read? Or do we have to be prepared for  
> "blocking read" of "blocking write" depending of the used sample rate?
>   
Reads will not block if there is always enough recorded data available 
in the kernel level buffer.

Best regards,

Hannu
_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to