[SCM] libav/experimental: Make sure the EC code does not attempt to use inter based concealment if there is no reference frame available. (this can happen because the EC code will attempt to use reference frames even for I/IDR frames)
    siretart at users.alioth.debian.org 
    siretart at users.alioth.debian.org
       
    Sun Jun 30 17:05:27 UTC 2013
    
    
  
The following commit has been merged in the experimental branch:
commit c28112fab65f95d913ad98ad5998919674239c61
Author: Michael Niedermayer <michaelni at gmx.at>
Date:   Tue Mar 30 20:46:46 2010 +0000
    Make sure the EC code does not attempt to use inter based concealment if there
    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
diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
index fffe19c..a7ae043 100644
--- a/libavcodec/error_resilience.c
+++ b/libavcodec/error_resilience.c
@@ -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
-- 
Libav/FFmpeg packaging
    
    
More information about the pkg-multimedia-commits
mailing list