[SCM] libav/experimental: Try to fix my latest 100l fate SVQ3 breakage.

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:25:39 UTC 2013


The following commit has been merged in the experimental branch:
commit 28bb9eb24b7dd901633b4808c0a250f4531a2a5b
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Sat Jul 19 12:21:09 2008 +0000

    Try to fix my latest 100l fate SVQ3 breakage.
    
    Originally committed as revision 14300 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index 6445b1c..1fe7667 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -2259,7 +2259,15 @@ static int frame_start(H264Context *h){
         memset(h->slice_table, -1, (s->mb_height*s->mb_stride-1) * sizeof(uint8_t));
 
 //    s->decode= (s->flags&CODEC_FLAG_PSNR) || !s->encoding || s->current_picture.reference /*|| h->contains_intra*/ || 1;
-    s->current_picture_ptr->reference= 0;
+
+    // We mark the current picture as non reference after allocating it, so
+    // that if we break out due to an error it can be released automatically
+    // in the next MPV_frame_start().
+    // SVQ3 as well as most other codecs have only last/next/current and thus
+    // get released even with set reference, besides SVQ3 and others do not
+    // mark frames as reference later "naturally".
+    if(s->codec_id != CODEC_ID_SVQ3)
+        s->current_picture_ptr->reference= 0;
     return 0;
 }
 

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list