DMA and delay feedback

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Would there be benefit in separating the DMA and the transfer of audio
samples to the sound card hardware from the delay and hw position
feedback.
For example, If the playback position is 0, the hardware has probably
already transferred one period of the sound card.
So, one cannot write to playback position 2 and expect it to be output
to the sound card if the period size is 1024.

For transfer purposes, one only needs to know that DMA transfer is
complete on period X so that period X can now be over-written.
I believe that this is what the DMA interrupt indicates. One needs to
reliably detect a missed interrupt.
It one took this approach, one might be able to hide the "missed
interrupt" problem.
When the interrupt finally did arrive, we would know where the next
free period X is, and continue writing samples to that, irrespective
of what went wrong before.
This would allow for auto-recovery of the audio stream without having
to stop and start the ring buffers again.

One then needs to determine how one can get accurate "delay" values
back from all sound card types.
The "delay" value is used for applications like ensuring that audio
and video play in sync.
The problem ones at the moment appear to be the intel8x0 and hd-audio ones.
There may be benefits from making the "delay" value return in
nanoseconds instead of samples, particularly if gettimeofdate() is
being used to try to produce accurate "delay" values.

Kind Regards

James
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux