]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mpeg4video.c
decode: flush the internal bsfs instead of constantly reinitalizing them
[ffmpeg] / libavcodec / mpeg4video.c
index 979904fc93f250c20c0be94df980a253e7f686cd..b60cd4fd8a1a2d00ac2ec3357b968b8352eb57f9 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * MPEG4 decoder / encoder common code.
+ * MPEG-4 decoder / encoder common code
  * Copyright (c) 2000,2001 Fabrice Bellard
  * Copyright (c) 2002-2010 Michael Niedermayer <michaelni@gmx.at>
  *
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "mpeg4video.h"
 #include "mpeg4data.h"
@@ -50,23 +51,13 @@ void ff_mpeg4_clean_buffers(MpegEncContext *s)
     c_wrap = s->mb_stride;
     c_xy   = (s->mb_y - 1) * c_wrap + s->mb_x - 1;
 
-#if 0
-    /* clean DC */
-    memsetw(s->dc_val[0] + l_xy, 1024, l_wrap * 2 + 1);
-    memsetw(s->dc_val[1] + c_xy, 1024, c_wrap + 1);
-    memsetw(s->dc_val[2] + c_xy, 1024, c_wrap + 1);
-#endif
-
     /* clean AC */
     memset(s->ac_val[0] + l_xy, 0, (l_wrap * 2 + 1) * 16 * sizeof(int16_t));
     memset(s->ac_val[1] + c_xy, 0, (c_wrap     + 1) * 16 * sizeof(int16_t));
     memset(s->ac_val[2] + c_xy, 0, (c_wrap     + 1) * 16 * sizeof(int16_t));
 
     /* clean MV */
-    // we can't clear the MVs as they might be needed by a b frame
-//    memset(s->motion_val + l_xy, 0, (l_wrap * 2 + 1) * 2 * sizeof(int16_t));
-//    memset(s->motion_val, 0, 2 * sizeof(int16_t) * (2 + s->mb_width * 2) *
-//           (2 + s->mb_height * 2));
+    // we can't clear the MVs as they might be needed by a B-frame
     s->last_mv[0][0][0] =
     s->last_mv[0][0][1] =
     s->last_mv[1][0][0] =
@@ -76,7 +67,7 @@ void ff_mpeg4_clean_buffers(MpegEncContext *s)
 #define tab_size ((signed)FF_ARRAY_ELEMS(s->direct_scale_mv[0]))
 #define tab_bias (tab_size / 2)
 
-// used by mpeg4 and rv10 decoder
+// used by MPEG-4 and rv10 decoder
 void ff_mpeg4_init_direct_mv(MpegEncContext *s)
 {
     int i;