[FFmpeg-cvslog] avdevice/alsa: fix indefinite stop on closing PCM capture
Takayuki 'January June' Suwa
git at videolan.org
Wed Apr 24 01:02:16 EEST 2019
ffmpeg | branch: master | Takayuki 'January June' Suwa <jjsuwa at sys3175.com> | Thu Apr 18 10:56:40 2019 +0900| [f9a061a31c3d2d81b3ec1e1b9b37187a358cdd9e] | committer: Lou Logan
avdevice/alsa: fix indefinite stop on closing PCM capture
Fixes: https://bugs.archlinux.org/task/58619
Found-by: Elias (Bleuzen) https://bugs.archlinux.org/user/26956
Signed-off-by: Nicolas George <george at nsup.org>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f9a061a31c3d2d81b3ec1e1b9b37187a358cdd9e
---
libavdevice/alsa.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/libavdevice/alsa.c b/libavdevice/alsa.c
index 1b21beb6d5..117b2ea144 100644
--- a/libavdevice/alsa.c
+++ b/libavdevice/alsa.c
@@ -300,8 +300,10 @@ av_cold int ff_alsa_close(AVFormatContext *s1)
{
AlsaData *s = s1->priv_data;
- snd_pcm_nonblock(s->h, 0);
- snd_pcm_drain(s->h);
+ if (snd_pcm_stream(s->h) == SND_PCM_STREAM_PLAYBACK) {
+ snd_pcm_nonblock(s->h, 0);
+ snd_pcm_drain(s->h);
+ }
av_freep(&s->reorder_buf);
if (CONFIG_ALSA_INDEV)
ff_timefilter_destroy(s->timefilter);
More information about the ffmpeg-cvslog
mailing list