Hi ,
Thanx for the reply .
Actually on my embedded target , i am not using arecord , but reading from (/dev/dsp0) capture data .
i have 2 question :
i used SNDCTL_DSP_GETBLKSIZE ioctl to find the fragment size of driver . i found it to be 16k .
1) now if the application reads 4k data from userspace , read call will remain blocked for audio driver's fragment size usb data read ( 16k) or app_request_size(4k) ?
2)time taken for read(4k) = time_taken(fragment size read ) or time_taken(app_request_size=4k) ?
thanx & regards amit nagal
On Mon, Dec 13, 2010 at 6:04 PM, Clemens Ladisch clemens@ladisch.de wrote:
Amit Nagal wrote:
i am using a OSS based usbaudio application for usb audio streaming .
my usb audio device is capture only device .
i want to set the fragment size of usbaudio alsa driver to reduce latency problem coming in my application .
currently even if my application reads 4k data from userspace , i observed driver will buffer for 100 ms data ( period size data )= 16 k at 44100 frquency
and after driver reads 16k data , read call will return with 4k data . so read() call remains blocked for 100ms which is causing some latency problem .
There is no extra buffer in the driver. There seems to be something wrong with your algorithm.
Does recording with the arecord tool work?
Regards, Clemens