]> git.sesse.net Git - mlt/commitdiff
fix crash cleaning packet queues that were not created
authorDan Dennedy <dan@dennedy.org>
Sun, 30 Oct 2011 19:14:36 +0000 (12:14 -0700)
committerDan Dennedy <dan@dennedy.org>
Sun, 30 Oct 2011 19:14:36 +0000 (12:14 -0700)
src/modules/avformat/producer_avformat.c

index dad2d7014a1bd9d96c1c12592bfdb2d9c6d0da0d..8ffbd140425d9bef660077c602c2c921fea08fd5 100644 (file)
@@ -2571,15 +2571,25 @@ static void producer_avformat_close( producer_avformat self )
 
        // Cleanup the packet queues
        AVPacket *pkt;
-       while ( ( pkt = mlt_deque_pop_back( self->apackets ) ) )
+       if ( self->apackets )
        {
-               av_free_packet( pkt );
-               free( pkt );
+               while ( ( pkt = mlt_deque_pop_back( self->apackets ) ) )
+               {
+                       av_free_packet( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->apackets );
+               self->apackets = NULL;
        }
-       while ( ( pkt = mlt_deque_pop_back( self->vpackets ) ) )
+       if ( self->vpackets )
        {
-               av_free_packet( pkt );
-               free( pkt );
+               while ( ( pkt = mlt_deque_pop_back( self->vpackets ) ) )
+               {
+                       av_free_packet( pkt );
+                       free( pkt );
+               }
+               mlt_deque_close( self->vpackets );
+               self->vpackets = NULL;
        }
 
        free( self );