From 81bd4119652ce3911c6604f3421a46c677d6c10f Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Thu, 6 Jan 2011 01:01:14 +0000 Subject: [PATCH] In av_close_input_stream(), flush the packet queue before to actually close the stream. This way the flushed packets can still reference the still unclosed format context. In particular this fixes a spurious error issued when closing the video4linux2 buffer in mmap_release_buffer(), which tries to access the file descriptor of an already closed file. Originally committed as revision 26237 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavformat/utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index e1928c4a5..fb93e3b57 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -2544,6 +2544,7 @@ void av_close_input_stream(AVFormatContext *s) int i; AVStream *st; + flush_packet_queue(s); if (s->iformat->read_close) s->iformat->read_close(s); for(i=0;inb_streams;i++) { @@ -2575,7 +2576,6 @@ void av_close_input_stream(AVFormatContext *s) av_freep(&s->programs[i]); } av_freep(&s->programs); - flush_packet_queue(s); av_freep(&s->priv_data); while(s->nb_chapters--) { #if FF_API_OLD_METADATA -- 2.11.0