]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/error_resilience.c
nuv: check size of buffer before accessing it instead of after.
[ffmpeg] / libavcodec / error_resilience.c
index 63f996ccde11f699a743eddd8c964e8b30deb1e9..7fc68905e257852d8df9849d1f84a05a9357cea7 100644 (file)
@@ -408,7 +408,7 @@ static void v_block_filter(MpegEncContext *s, uint8_t *dst, int w, int h,
 
 static void guess_mv(MpegEncContext *s)
 {
-    uint8_t *fixed = av_malloc(s->mb_stride * s->mb_height);
+    uint8_t *fixed = s->er_temp_buffer;
 #define MV_FROZEN    3
 #define MV_CHANGED   2
 #define MV_UNCHANGED 1
@@ -470,7 +470,7 @@ static void guess_mv(MpegEncContext *s)
                 decode_mb(s, 0);
             }
         }
-        goto end;
+        return;
     }
 
     for (depth = 0; ; depth++) {
@@ -722,7 +722,7 @@ skip_last_mv:
         }
 
         if (none_left)
-            goto end;
+            return;
 
         for (i = 0; i < s->mb_num; i++) {
             int mb_xy = s->mb_index2xy[i];
@@ -731,8 +731,6 @@ skip_last_mv:
         }
         // printf(":"); fflush(stdout);
     }
-end:
-    av_free(fixed);
 }
 
 static int is_intra_more_likely(MpegEncContext *s)
@@ -1077,8 +1075,8 @@ void ff_er_frame_end(MpegEncContext *s)
         if (error & ER_MV_ERROR)
             mv_error++;
     }
-    av_log(s->avctx, AV_LOG_INFO, "concealing %d DC, %d AC, %d MV errors\n",
-           dc_error, ac_error, mv_error);
+    av_log(s->avctx, AV_LOG_INFO, "concealing %d DC, %d AC, %d MV errors in %c frame\n",
+           dc_error, ac_error, mv_error, av_get_picture_type_char(s->pict_type));
 
     is_intra_likely = is_intra_more_likely(s);