<p><br>
2012-8-19 下午7:17 於 "Tanu Kaskinen" <<a href="mailto:tanuk@iki.fi">tanuk@iki.fi</a>> 寫道:<br>
><br>
> Hi,<br>
><br>
> While reviewing a rewind related patch, I noticed that I don't<br>
> understand the rewinding code thoroughly, even though I have studied it<br>
> a few times in the past. I decided that I should write a wiki page for<br>
> the code so that working with it would be easier in the future for me<br>
> and everybody else.<br>
><br>
> So, here's the result:<br>
> <a href="http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Rewinding">http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/Rewinding</a><br>
><br>
> While doing that, I found quite a few bugs, which are noted on that<br>
> page. I don't plan fixing them any time soon (help with that would be<br>
> very welcome), so I will just file bugs about the issues so that they<br>
> are not forgotten.<br>
><br>
it seem that the alsa sink is more complicated than your figure.</p>
<p>Refer to figure 14 HD Audio DMA and buffering , section 4.6 Energy Efficient HA audio mechanism </p>
<p>most sound cards have fixed size FIFO buffer instead of dynamic FIFO and minimum transfer size(brust) similar to hda controller which snd_pcm_rewind cannot rewind any audio data in those first in first out buffer.</p>

<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa?id=4df443bbe682055a41e7c2248877dcc7682a69b8">http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa?id=4df443bbe682055a41e7c2248877dcc7682a69b8</a></p>

<p>1) do the server really need to rewind when there is only one pulse client ?</p>
<p>2) does pulseaudio add this rewind safeguard delay to the latency ?</p>