OSDN Git Service

Make sure the EC code does not attempt to use inter based concealment if there
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 30 Mar 2010 20:46:46 +0000 (20:46 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 30 Mar 2010 20:46:46 +0000 (20:46 +0000)
is no reference frame available. (this can happen because the EC code will attempt
to use reference frames even for I/IDR frames)

Originally committed as revision 22732 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/error_resilience.c

index fffe19c..a7ae043 100644 (file)
@@ -629,6 +629,12 @@ static int is_intra_more_likely(MpegEncContext *s){
             undamaged_count++;
     }
 
+    if(s->codec_id == CODEC_ID_H264){
+        H264Context *h= (void*)s;
+        if(h->ref_count[0] <= 0 || !h->ref_list[0][0].data[0])
+            return 1;
+    }
+
     if(undamaged_count < 5) return 0; //almost all MBs damaged -> use temporal prediction
 
     //prevent dsp.sad() check, that requires access to the image