Hi Chris,

My goal is a low latency USB microphone that's always on; similar to an
intercom system.

I am capturing data from my microphone, and transmitting it via pcm_write()
to the USB gadget card, and arecording on the USB host. If I query the
buffer, I begin to see a creeping fill on the device side buffers, such
that after a few hours of constant streaming, the buffer is filled, and my
pcm_write is returning "we only wrote SOME of your data".  As this happens,
I start to notice more and more latency between my device's capture and the
host's playback, as I eventually have a whole buffer's worth of "old" audio
I'm queuing "now's audio" data behind. If I modify the UAC driver to
provide a larger buffer size, my pcm_write of "not a full buffer" takes
longer to happen, but when it does, my latency has gone from unnoticeable
to several seconds.

I figured (and may very well be wrong), that this was due to my device
clocks sending buffers at a rate *slightly* faster than the USB is able to
sink it to the host. Could this be something else?


On Thu, Jul 12, 2018 at 8:13 PM, chris hermansen <clherman...@gmail.com>

> Rob and list,
> On Thu, Jul 12, 2018, 19:27 Rob <a...@rob-otics.com> wrote:
>> Hi all,
>> I'm reading about the feedback mechanism for USB audio. I'm trying to see
>> if I can implement asynchronous mode.
> What makes you think asynchronous mode isn't already implemented?
> Chris Hermansen
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Alsa-user mailing list

Reply via email to