[SCM] libav/experimental: In av_close_input_stream(), flush the packet queue before to actually close the stream.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 17:21:26 UTC 2013


The following commit has been merged in the experimental branch:
commit 81bd4119652ce3911c6604f3421a46c677d6c10f
Author: Stefano Sabatini <stefano.sabatini-lala at poste.it>
Date:   Thu Jan 6 01:01:14 2011 +0000

    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

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

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list