changeset 11511:6bf21de8e6eb libavcodec

Hotfix for regtest-error failure a proper fix appears to require changing h263/mpeg2/motion est to index ref_index like h264. Ill do this change and then revert this hotfix but it will take a bit time.
author michael
date Sat, 20 Mar 2010 16:51:36 +0000
parents 927b985f73f4
children 1382cfff33bb
files error_resilience.c
diffstat 1 files changed, 3 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/error_resilience.c	Sat Mar 20 00:52:08 2010 +0000
+++ b/error_resilience.c	Sat Mar 20 16:51:36 2010 +0000
@@ -486,7 +486,7 @@
                             sum_x+= mv_predictor[j][0];
                             sum_y+= mv_predictor[j][1];
                             sum_r+= ref[j];
-                            if(j && ref[j] != ref[j-1])
+                            if(j && ref[j] != ref[j-1] && s->codec_id == CODEC_ID_H264)
                                 goto skip_mean_and_median;
                         }
 
@@ -549,7 +549,7 @@
                         s->current_picture.motion_val[0][mot_index][0]= s->mv[0][0][0]= mv_predictor[j][0];
                         s->current_picture.motion_val[0][mot_index][1]= s->mv[0][0][1]= mv_predictor[j][1];
 
-                        if(ref[j]<0) //predictor intra or otherwise not available
+                        if(ref[j]<0 && s->codec_id == CODEC_ID_H264) //predictor intra or otherwise not available
                             continue;
 
                         decode_mb(s, ref[j]);
@@ -767,6 +767,7 @@
         pic->motion_subsample_log2= 3;
         s->current_picture= *s->current_picture_ptr;
     }
+    pic->ref_index[0]= av_realloc(pic->ref_index[0], s->mb_stride * s->mb_height * 4 * sizeof(uint8_t));
 
     if(s->avctx->debug&FF_DEBUG_ER){
         for(mb_y=0; mb_y<s->mb_height; mb_y++){