On 16.06.19 12:28, Georg Chini wrote:
I sent the patch that introduces the history queue to the list. Please take a look. I think it is rather simple.
Hi Tanu, I tried your proposal to synchronize read and write index of the history queue immediately after the push and then to add the render memblockq length when the history queue is rewound. It does not work for the soxr resampler, possibly because the soxr resampler has a non-constant delay. That means, that if the resampler had for example 1000 frames delay before the reset, it will already produce output data if you feed it 1000 frames after the reset. (The soxr resampler still produces some glitches after my changes anyway, probably because the state cannot be restored perfectly, but you have to listen hard to hear them.) I did not try the second option, that is synchronizing the read and write index in pa_sink_input_drop(), because that would mean that I do not only have to take the render memblockq length into account, but also the length of the history queue. Some data may have been pushed into both queues after read and write index were synchronized. So I would ask you to reconsider the picture you have in mind. In my opinion it is inappropriate anyway, because the history queue is not part of the audio flow and therefore trying to make it fit in somehow is the wrong approach. Instead it should be considered as a mirror of the render memblockq. Using it as a mirror definitely produces simpler code. _______________________________________________ pulseaudio-discuss mailing list pulseaudio-discuss@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss