avdevice/alsa: wait until playback buffers are drained before closing

This fixes early abort on ALSA playback

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Takayuki 'January June' Suwa 2017-05-06 20:42:56 +09:00 committed by Michael Niedermayer
parent 8a8335de03
commit ea93b74074
1 changed files with 2 additions and 0 deletions

View File

@ -300,6 +300,8 @@ av_cold int ff_alsa_close(AVFormatContext *s1)
{ {
AlsaData *s = s1->priv_data; AlsaData *s = s1->priv_data;
snd_pcm_nonblock(s->h, 0);
snd_pcm_drain(s->h);
av_freep(&s->reorder_buf); av_freep(&s->reorder_buf);
if (CONFIG_ALSA_INDEV) if (CONFIG_ALSA_INDEV)
ff_timefilter_destroy(s->timefilter); ff_timefilter_destroy(s->timefilter);