[FFmpeg-devel] [PATCH] In av_close_input_stream(), flush the packet queue before to actually close the stream.
Stefano Sabatini
stefano.sabatini-lala
Tue Jan 4 19:17:04 CET 2011
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.
---
libavformat/utils.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/libavformat/utils.c b/libavformat/utils.c
index e1928c4..fb93e3b 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;i<s->nb_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
--
1.7.2.3
More information about the ffmpeg-devel
mailing list