]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
reset ref_index
authormichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 19 Nov 2004 13:08:25 +0000 (13:08 +0000)
committermichael <michael@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 19 Nov 2004 13:08:25 +0000 (13:08 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@3690 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/error_resilience.c

index c18d775bb6f7eb614e1dd88887ac625d052cae5c..98961236ee148b5d4a716313977453aac3e2a8df 100644 (file)
@@ -666,6 +666,8 @@ void ff_er_frame_end(MpegEncContext *s){
     int threshold_part[4]= {100,100,100};
     int threshold= 50;
     int is_intra_likely;
+    int size = s->b8_stride * 2 * s->mb_height;
+    Picture *pic= s->current_picture_ptr;
     
     if(!s->error_resilience || s->error_count==0 || 
        s->error_count==3*s->mb_width*(s->avctx->skip_top + s->avctx->skip_bottom)) return;
@@ -673,9 +675,6 @@ void ff_er_frame_end(MpegEncContext *s){
     av_log(s->avctx, AV_LOG_INFO, "concealing %d errors\n", s->error_count);
     
     if(s->current_picture.motion_val[0] == NULL){
-        int size = s->b8_stride * 2 * s->mb_height;
-        Picture *pic= s->current_picture_ptr;
-        
         av_log(s->avctx, AV_LOG_ERROR, "Warning MVs not available\n");
             
         for(i=0; i<2; i++){
@@ -687,6 +686,11 @@ void ff_er_frame_end(MpegEncContext *s){
         s->current_picture= *s->current_picture_ptr;
     }
     
+    for(i=0; i<2; i++){
+        if(pic->ref_index[i])
+            memset(pic->ref_index[i], 0, size * sizeof(uint8_t));
+    }
+
     if(s->avctx->debug&FF_DEBUG_ER){
         for(mb_y=0; mb_y<s->mb_height; mb_y++){
             for(mb_x=0; mb_x<s->mb_width; mb_x++){