[pulseaudio-discuss] [PATCH 1/2] pacat: Synchronize STDIN and "write stream ready" events
Tanu Kaskinen
tanuk at iki.fi
Thu Nov 24 18:31:04 UTC 2016
On Tue, 2016-11-22 at 22:16 +0200, Ahmed S. Darwish wrote:
> Users reported pacat crashes when playing certain multi-channel
> audio. For example:
>
> pacat --channels=2 /dev/zero works
> pacat --channels=3 /dev/zero pa_stream_write() failed: EINVAL
> pacat --channels=4 /dev/zero works
> pacat --channels=5 /dev/zero pa_stream_write() failed: EINVAL
>
> pacat audio playback is pipe-like, from STDIN to PA write stream.
> Meanwhile STDIN "ready to read" events got regularly triggered
> before the write stream was even created, or at moments where the
> stream could not accept any more audio.
>
> In these out-of-sync cases, the write stream could not report the
> appropriate buffer lengths it accepts, thus a default of 4K bytes
> was chosen -- compatible by luck with some channel counts and
> incompatible with others.
>
> Instead of choosing a faulty default in these scenarios, mute the
> the STDIN events until the write stream is available & queriable.
>
> BugLink: https://bugs.freedesktop.org/show_bug.cgi?id=98475
> Reported-by: Tanu Kaskinen <tanuk at iki.fi>
> Signed-off-by: Ahmed S. Darwish <darwish.07 at gmail.com>
> ---
> src/utils/pacat.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
Thanks a lot for helping with the release blockers! This patch looks
good, I'll push it soon.
--
Tanu
https://www.patreon.com/tanuk
More information about the pulseaudio-discuss
mailing list