[FFmpeg-cvslog] mpegvideo: move mpegvideo formats-related defines to mpegutils.h

Vittorio Giovara git at videolan.org
Mon Mar 17 13:09:35 CET 2014


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Fri Feb 28 13:40:54 2014 +0100| [e0c16e4e3259cf50b5bac4c23bb6e517f397c74b] | committer: Vittorio Giovara

mpegvideo: move mpegvideo formats-related defines to mpegutils.h

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e0c16e4e3259cf50b5bac4c23bb6e517f397c74b
---

 libavcodec/dxva2_h264.c       |    1 +
 libavcodec/dxva2_mpeg2.c      |    1 +
 libavcodec/dxva2_vc1.c        |    1 +
 libavcodec/error_resilience.c |    1 +
 libavcodec/h261dec.c          |    1 +
 libavcodec/h261enc.c          |    1 +
 libavcodec/h263.c             |    1 +
 libavcodec/h264.c             |    1 +
 libavcodec/h264.h             |    1 +
 libavcodec/h264_cabac.c       |    1 +
 libavcodec/h264_cavlc.c       |    1 +
 libavcodec/h264_direct.c      |    1 +
 libavcodec/h264_loopfilter.c  |    1 +
 libavcodec/h264_mvpred.h      |    1 +
 libavcodec/h264_parser.c      |    1 +
 libavcodec/h264_refs.c        |    1 +
 libavcodec/ituh263dec.c       |    1 +
 libavcodec/ituh263enc.c       |    1 +
 libavcodec/motion_est.c       |    1 +
 libavcodec/mpeg12dec.c        |    1 +
 libavcodec/mpeg4video.c       |    1 +
 libavcodec/mpeg4videodec.c    |    1 +
 libavcodec/mpeg4videoenc.c    |    1 +
 libavcodec/mpegutils.h        |  111 +++++++++++++++++++++++++++++++++++++++++
 libavcodec/mpegvideo.c        |    1 +
 libavcodec/mpegvideo.h        |   82 ++----------------------------
 libavcodec/mpegvideo_enc.c    |    1 +
 libavcodec/mpegvideo_motion.c |    1 +
 libavcodec/mpegvideo_xvmc.c   |    1 +
 libavcodec/msmpeg4dec.c       |    1 +
 libavcodec/ratecontrol.c      |    1 +
 libavcodec/rv30.c             |    1 +
 libavcodec/rv34.c             |    1 +
 libavcodec/rv40.c             |    1 +
 libavcodec/svq1enc.c          |    1 +
 libavcodec/svq3.c             |    1 +
 libavcodec/vaapi_h264.c       |    1 +
 libavcodec/vaapi_mpeg2.c      |    1 +
 libavcodec/vc1dec.c           |    1 +
 libavcodec/vdpau_h264.c       |    1 +
 libavcodec/wmv2dec.c          |    1 +
 41 files changed, 154 insertions(+), 78 deletions(-)

diff --git a/libavcodec/dxva2_h264.c b/libavcodec/dxva2_h264.c
index 049f816..663eb7d 100644
--- a/libavcodec/dxva2_h264.c
+++ b/libavcodec/dxva2_h264.c
@@ -23,6 +23,7 @@
 #include "dxva2_internal.h"
 #include "h264.h"
 #include "h264data.h"
+#include "mpegutils.h"
 
 struct dxva2_picture_context {
     DXVA_PicParams_H264   pp;
diff --git a/libavcodec/dxva2_mpeg2.c b/libavcodec/dxva2_mpeg2.c
index e0b2efa..b6c2361 100644
--- a/libavcodec/dxva2_mpeg2.c
+++ b/libavcodec/dxva2_mpeg2.c
@@ -22,6 +22,7 @@
 
 #include "libavutil/log.h"
 #include "dxva2_internal.h"
+#include "mpegutils.h"
 
 #define MAX_SLICES 1024
 struct dxva2_picture_context {
diff --git a/libavcodec/dxva2_vc1.c b/libavcodec/dxva2_vc1.c
index a72d91e..b2614dd 100644
--- a/libavcodec/dxva2_vc1.c
+++ b/libavcodec/dxva2_vc1.c
@@ -21,6 +21,7 @@
  */
 
 #include "dxva2_internal.h"
+#include "mpegutils.h"
 #include "vc1.h"
 #include "vc1data.h"
 
diff --git a/libavcodec/error_resilience.c b/libavcodec/error_resilience.c
index 17346e1..d648f09 100644
--- a/libavcodec/error_resilience.c
+++ b/libavcodec/error_resilience.c
@@ -30,6 +30,7 @@
 #include "libavutil/internal.h"
 #include "avcodec.h"
 #include "error_resilience.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "rectangle.h"
 #include "thread.h"
diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c
index 49eaee1..d6e5272 100644
--- a/libavcodec/h261dec.c
+++ b/libavcodec/h261dec.c
@@ -26,6 +26,7 @@
  */
 
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h261.h"
diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c
index 4cff998..5f0baba 100644
--- a/libavcodec/h261enc.c
+++ b/libavcodec/h261enc.c
@@ -27,6 +27,7 @@
 
 #include "libavutil/attributes.h"
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h261.h"
diff --git a/libavcodec/h263.c b/libavcodec/h263.c
index 2fa6ca3..6d5ffc0 100644
--- a/libavcodec/h263.c
+++ b/libavcodec/h263.c
@@ -34,6 +34,7 @@
 #include "h263.h"
 #include "h263data.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "unary.h"
 #include "flv.h"
 #include "mpeg4video.h"
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index a814d93..ed7ec48 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -42,6 +42,7 @@
 #include "h264_mvpred.h"
 #include "golomb.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "rectangle.h"
 #include "svq3.h"
 #include "thread.h"
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index a912db7..e3c0ac0 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -38,6 +38,7 @@
 #include "h264dsp.h"
 #include "h264pred.h"
 #include "h264qpel.h"
+#include "mpegutils.h"
 #include "rectangle.h"
 
 #define H264_MAX_PICTURE_COUNT 32
diff --git a/libavcodec/h264_cabac.c b/libavcodec/h264_cabac.c
index 654eab7..f1ab97a 100644
--- a/libavcodec/h264_cabac.c
+++ b/libavcodec/h264_cabac.c
@@ -38,6 +38,7 @@
 #include "h264data.h"
 #include "h264_mvpred.h"
 #include "golomb.h"
+#include "mpegutils.h"
 
 #if ARCH_X86
 #include "x86/h264_i386.h"
diff --git a/libavcodec/h264_cavlc.c b/libavcodec/h264_cavlc.c
index d3f6dcb..c0fd2e8 100644
--- a/libavcodec/h264_cavlc.c
+++ b/libavcodec/h264_cavlc.c
@@ -34,6 +34,7 @@
 #include "h264data.h" // FIXME FIXME FIXME
 #include "h264_mvpred.h"
 #include "golomb.h"
+#include "mpegutils.h"
 
 #include <assert.h>
 
diff --git a/libavcodec/h264_direct.c b/libavcodec/h264_direct.c
index f62251d..21c3d77 100644
--- a/libavcodec/h264_direct.c
+++ b/libavcodec/h264_direct.c
@@ -29,6 +29,7 @@
 #include "avcodec.h"
 #include "mpegvideo.h"
 #include "h264.h"
+#include "mpegutils.h"
 #include "rectangle.h"
 #include "thread.h"
 
diff --git a/libavcodec/h264_loopfilter.c b/libavcodec/h264_loopfilter.c
index 88ed34c..267884f 100644
--- a/libavcodec/h264_loopfilter.c
+++ b/libavcodec/h264_loopfilter.c
@@ -32,6 +32,7 @@
 #include "mpegvideo.h"
 #include "h264.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "rectangle.h"
 
 #include <assert.h>
diff --git a/libavcodec/h264_mvpred.h b/libavcodec/h264_mvpred.h
index a7545f0..f7c3887 100644
--- a/libavcodec/h264_mvpred.h
+++ b/libavcodec/h264_mvpred.h
@@ -31,6 +31,7 @@
 #include "internal.h"
 #include "avcodec.h"
 #include "h264.h"
+#include "mpegutils.h"
 
 #include <assert.h>
 
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index a16229a..795a233 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -30,6 +30,7 @@
 #include "h264data.h"
 #include "golomb.h"
 #include "internal.h"
+#include "mpegutils.h"
 
 #include <assert.h>
 
diff --git a/libavcodec/h264_refs.c b/libavcodec/h264_refs.c
index 277bc09..332866a 100644
--- a/libavcodec/h264_refs.c
+++ b/libavcodec/h264_refs.c
@@ -29,6 +29,7 @@
 #include "avcodec.h"
 #include "h264.h"
 #include "golomb.h"
+#include "mpegutils.h"
 
 #include <assert.h>
 
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 98c8cfc..55a8c45 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -36,6 +36,7 @@
 #include "mpegvideo.h"
 #include "h263.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "unary.h"
 #include "flv.h"
 #include "mpeg4video.h"
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index 0f59944..cd4ed84 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -34,6 +34,7 @@
 #include "mpegvideo.h"
 #include "h263.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "unary.h"
 #include "flv.h"
 #include "mpeg4video.h"
diff --git a/libavcodec/motion_est.c b/libavcodec/motion_est.c
index 04ae49e..08c0eba 100644
--- a/libavcodec/motion_est.c
+++ b/libavcodec/motion_est.c
@@ -33,6 +33,7 @@
 
 #include "avcodec.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 
 #undef NDEBUG
diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c
index cb713fd..06b7565 100644
--- a/libavcodec/mpeg12dec.c
+++ b/libavcodec/mpeg12dec.c
@@ -36,6 +36,7 @@
 #include "internal.h"
 #include "mpeg12.h"
 #include "mpeg12data.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "thread.h"
 #include "version.h"
diff --git a/libavcodec/mpeg4video.c b/libavcodec/mpeg4video.c
index 979904f..84fa26b 100644
--- a/libavcodec/mpeg4video.c
+++ b/libavcodec/mpeg4video.c
@@ -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"
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index b6925ac..9405a02 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -22,6 +22,7 @@
 
 #include "error_resilience.h"
 #include "internal.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "mpeg4video.h"
 #include "h263.h"
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 0063f58..3ddc3e4 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -23,6 +23,7 @@
 #include "libavutil/attributes.h"
 #include "libavutil/log.h"
 #include "libavutil/opt.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "mpeg4video.h"
diff --git a/libavcodec/mpegutils.h b/libavcodec/mpegutils.h
new file mode 100644
index 0000000..05a5fc2
--- /dev/null
+++ b/libavcodec/mpegutils.h
@@ -0,0 +1,111 @@
+/*
+ * Mpeg video formats-related defines and utility functions
+ *
+ * This file is part of Libav.
+ *
+ * Libav is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * Libav is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Libav; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_MPEGUTILS_H
+#define AVCODEC_MPEGUTILS_H
+
+#include "version.h"
+
+/* picture type */
+#define PICT_TOP_FIELD     1
+#define PICT_BOTTOM_FIELD  2
+#define PICT_FRAME         3
+
+/**
+ * Value of Picture.reference when Picture is not a reference picture, but
+ * is held for delayed output.
+ */
+#define DELAYED_PIC_REF 4
+
+
+/* MB types */
+#if !FF_API_MB_TYPE
+#define MB_TYPE_INTRA4x4   (1 <<  0)
+#define MB_TYPE_INTRA16x16 (1 <<  1) // FIXME H.264-specific
+#define MB_TYPE_INTRA_PCM  (1 <<  2) // FIXME H.264-specific
+#define MB_TYPE_16x16      (1 <<  3)
+#define MB_TYPE_16x8       (1 <<  4)
+#define MB_TYPE_8x16       (1 <<  5)
+#define MB_TYPE_8x8        (1 <<  6)
+#define MB_TYPE_INTERLACED (1 <<  7)
+#define MB_TYPE_DIRECT2    (1 <<  8) // FIXME
+#define MB_TYPE_ACPRED     (1 <<  9)
+#define MB_TYPE_GMC        (1 << 10)
+#define MB_TYPE_SKIP       (1 << 11)
+#define MB_TYPE_P0L0       (1 << 12)
+#define MB_TYPE_P1L0       (1 << 13)
+#define MB_TYPE_P0L1       (1 << 14)
+#define MB_TYPE_P1L1       (1 << 15)
+#define MB_TYPE_L0         (MB_TYPE_P0L0 | MB_TYPE_P1L0)
+#define MB_TYPE_L1         (MB_TYPE_P0L1 | MB_TYPE_P1L1)
+#define MB_TYPE_L0L1       (MB_TYPE_L0   | MB_TYPE_L1)
+#define MB_TYPE_QUANT      (1 << 16)
+#define MB_TYPE_CBP        (1 << 17)
+#endif
+
+#define MB_TYPE_INTRA    MB_TYPE_INTRA4x4 // default mb_type if there is just one type
+
+#define IS_INTRA4x4(a)   ((a) & MB_TYPE_INTRA4x4)
+#define IS_INTRA16x16(a) ((a) & MB_TYPE_INTRA16x16)
+#define IS_PCM(a)        ((a) & MB_TYPE_INTRA_PCM)
+#define IS_INTRA(a)      ((a) & 7)
+#define IS_INTER(a)      ((a) & (MB_TYPE_16x16 | MB_TYPE_16x8 | \
+                                 MB_TYPE_8x16  | MB_TYPE_8x8))
+#define IS_SKIP(a)       ((a) & MB_TYPE_SKIP)
+#define IS_INTRA_PCM(a)  ((a) & MB_TYPE_INTRA_PCM)
+#define IS_INTERLACED(a) ((a) & MB_TYPE_INTERLACED)
+#define IS_DIRECT(a)     ((a) & MB_TYPE_DIRECT2)
+#define IS_GMC(a)        ((a) & MB_TYPE_GMC)
+#define IS_16X16(a)      ((a) & MB_TYPE_16x16)
+#define IS_16X8(a)       ((a) & MB_TYPE_16x8)
+#define IS_8X16(a)       ((a) & MB_TYPE_8x16)
+#define IS_8X8(a)        ((a) & MB_TYPE_8x8)
+#define IS_SUB_8X8(a)    ((a) & MB_TYPE_16x16) // note reused
+#define IS_SUB_8X4(a)    ((a) & MB_TYPE_16x8)  // note reused
+#define IS_SUB_4X8(a)    ((a) & MB_TYPE_8x16)  // note reused
+#define IS_SUB_4X4(a)    ((a) & MB_TYPE_8x8)   // note reused
+#define IS_ACPRED(a)     ((a) & MB_TYPE_ACPRED)
+#define IS_QUANT(a)      ((a) & MB_TYPE_QUANT)
+#define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0 << ((part) + 2 * (list))))
+
+// does this mb use listX, note does not work if subMBs
+#define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0 | MB_TYPE_P1L0) << (2 * (list))))
+
+#define HAS_CBP(a)       ((a) & MB_TYPE_CBP)
+
+/* MB types for encoding */
+#define CANDIDATE_MB_TYPE_INTRA      (1 <<  0)
+#define CANDIDATE_MB_TYPE_INTER      (1 <<  1)
+#define CANDIDATE_MB_TYPE_INTER4V    (1 <<  2)
+#define CANDIDATE_MB_TYPE_SKIPPED    (1 <<  3)
+
+#define CANDIDATE_MB_TYPE_DIRECT     (1 <<  4)
+#define CANDIDATE_MB_TYPE_FORWARD    (1 <<  5)
+#define CANDIDATE_MB_TYPE_BACKWARD   (1 <<  6)
+#define CANDIDATE_MB_TYPE_BIDIR      (1 <<  7)
+
+#define CANDIDATE_MB_TYPE_INTER_I    (1 <<  8)
+#define CANDIDATE_MB_TYPE_FORWARD_I  (1 <<  9)
+#define CANDIDATE_MB_TYPE_BACKWARD_I (1 << 10)
+#define CANDIDATE_MB_TYPE_BIDIR_I    (1 << 11)
+
+#define CANDIDATE_MB_TYPE_DIRECT0    (1 << 12)
+
+#endif /* AVCODEC_PICTTYPE_H */
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 46754dd..a6e326c 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -36,6 +36,7 @@
 #include "dsputil.h"
 #include "internal.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "mjpegenc.h"
 #include "msmpeg4.h"
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 95987fc..f4d2197 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -85,12 +85,6 @@ enum OutputFormat {
 #define EXT_START_CODE          0x000001b5
 #define USER_START_CODE         0x000001b2
 
-/**
- * Value of Picture.reference when Picture is not a reference picture, but
- * is held for delayed output.
- */
-#define DELAYED_PIC_REF 4
-
 struct MpegEncContext;
 
 /**
@@ -107,31 +101,7 @@ typedef struct Picture{
     int16_t (*motion_val[2])[2];
 
     AVBufferRef *mb_type_buf;
-    uint32_t *mb_type;
-
-#if !FF_API_MB_TYPE
-#define MB_TYPE_INTRA4x4   0x0001
-#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
-#define MB_TYPE_INTRA_PCM  0x0004 //FIXME H.264-specific
-#define MB_TYPE_16x16      0x0008
-#define MB_TYPE_16x8       0x0010
-#define MB_TYPE_8x16       0x0020
-#define MB_TYPE_8x8        0x0040
-#define MB_TYPE_INTERLACED 0x0080
-#define MB_TYPE_DIRECT2    0x0100 //FIXME
-#define MB_TYPE_ACPRED     0x0200
-#define MB_TYPE_GMC        0x0400
-#define MB_TYPE_SKIP       0x0800
-#define MB_TYPE_P0L0       0x1000
-#define MB_TYPE_P1L0       0x2000
-#define MB_TYPE_P0L1       0x4000
-#define MB_TYPE_P1L1       0x8000
-#define MB_TYPE_L0         (MB_TYPE_P0L0 | MB_TYPE_P1L0)
-#define MB_TYPE_L1         (MB_TYPE_P0L1 | MB_TYPE_P1L1)
-#define MB_TYPE_L0L1       (MB_TYPE_L0   | MB_TYPE_L1)
-#define MB_TYPE_QUANT      0x00010000
-#define MB_TYPE_CBP        0x00020000
-#endif
+    uint32_t *mb_type;          ///< types and macros are defined in mpegutils.h
 
     AVBufferRef *mbskip_table_buf;
     uint8_t *mbskip_table;
@@ -154,31 +124,6 @@ typedef struct Picture{
      */
     void *hwaccel_picture_private;
 
-#define MB_TYPE_INTRA MB_TYPE_INTRA4x4 //default mb_type if there is just one type
-#define IS_INTRA4x4(a)   ((a)&MB_TYPE_INTRA4x4)
-#define IS_INTRA16x16(a) ((a)&MB_TYPE_INTRA16x16)
-#define IS_PCM(a)        ((a)&MB_TYPE_INTRA_PCM)
-#define IS_INTRA(a)      ((a)&7)
-#define IS_INTER(a)      ((a)&(MB_TYPE_16x16|MB_TYPE_16x8|MB_TYPE_8x16|MB_TYPE_8x8))
-#define IS_SKIP(a)       ((a)&MB_TYPE_SKIP)
-#define IS_INTRA_PCM(a)  ((a)&MB_TYPE_INTRA_PCM)
-#define IS_INTERLACED(a) ((a)&MB_TYPE_INTERLACED)
-#define IS_DIRECT(a)     ((a)&MB_TYPE_DIRECT2)
-#define IS_GMC(a)        ((a)&MB_TYPE_GMC)
-#define IS_16X16(a)      ((a)&MB_TYPE_16x16)
-#define IS_16X8(a)       ((a)&MB_TYPE_16x8)
-#define IS_8X16(a)       ((a)&MB_TYPE_8x16)
-#define IS_8X8(a)        ((a)&MB_TYPE_8x8)
-#define IS_SUB_8X8(a)    ((a)&MB_TYPE_16x16) //note reused
-#define IS_SUB_8X4(a)    ((a)&MB_TYPE_16x8)  //note reused
-#define IS_SUB_4X8(a)    ((a)&MB_TYPE_8x16)  //note reused
-#define IS_SUB_4X4(a)    ((a)&MB_TYPE_8x8)   //note reused
-#define IS_ACPRED(a)     ((a)&MB_TYPE_ACPRED)
-#define IS_QUANT(a)      ((a)&MB_TYPE_QUANT)
-#define IS_DIR(a, part, list) ((a) & (MB_TYPE_P0L0<<((part)+2*(list))))
-#define USES_LIST(a, list) ((a) & ((MB_TYPE_P0L0|MB_TYPE_P1L0)<<(2*(list)))) ///< does this mb use listX, note does not work if subMBs
-#define HAS_CBP(a)        ((a)&MB_TYPE_CBP)
-
     int field_poc[2];           ///< h264 top/bottom POC
     int poc;                    ///< h264 frame POC
     int frame_num;              ///< h264 frame_num (raw frame_num from slice header)
@@ -463,24 +408,7 @@ typedef struct MpegEncContext {
     int mb_x, mb_y;
     int mb_skip_run;
     int mb_intra;
-    uint16_t *mb_type;           ///< Table for candidate MB types for encoding
-#define CANDIDATE_MB_TYPE_INTRA    0x01
-#define CANDIDATE_MB_TYPE_INTER    0x02
-#define CANDIDATE_MB_TYPE_INTER4V  0x04
-#define CANDIDATE_MB_TYPE_SKIPPED   0x08
-//#define MB_TYPE_GMC      0x10
-
-#define CANDIDATE_MB_TYPE_DIRECT   0x10
-#define CANDIDATE_MB_TYPE_FORWARD  0x20
-#define CANDIDATE_MB_TYPE_BACKWARD 0x40
-#define CANDIDATE_MB_TYPE_BIDIR    0x80
-
-#define CANDIDATE_MB_TYPE_INTER_I    0x100
-#define CANDIDATE_MB_TYPE_FORWARD_I  0x200
-#define CANDIDATE_MB_TYPE_BACKWARD_I 0x400
-#define CANDIDATE_MB_TYPE_BIDIR_I    0x800
-
-#define CANDIDATE_MB_TYPE_DIRECT0    0x1000
+    uint16_t *mb_type;  ///< Table for candidate MB types for encoding (defines in mpegutils.h)
 
     int block_index[6]; ///< index to current MB in block based arrays with edges
     int block_wrap[6];
@@ -639,11 +567,9 @@ typedef struct MpegEncContext {
     /* MPEG-2-specific - I wished not to have to support this mess. */
     int progressive_sequence;
     int mpeg_f_code[2][2];
+
+    // picture structure defines are loaded from mpegutils.h
     int picture_structure;
-/* picture type */
-#define PICT_TOP_FIELD     1
-#define PICT_BOTTOM_FIELD  2
-#define PICT_FRAME         3
 
     int intra_dc_precision;
     int frame_pred_frame_dct;
diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c
index c5d4c5e..ec49db7 100644
--- a/libavcodec/mpegvideo_enc.c
+++ b/libavcodec/mpegvideo_enc.c
@@ -43,6 +43,7 @@
 #include "h261.h"
 #include "h263.h"
 #include "mathops.h"
+#include "mpegutils.h"
 #include "mjpegenc.h"
 #include "msmpeg4.h"
 #include "faandct.h"
diff --git a/libavcodec/mpegvideo_motion.c b/libavcodec/mpegvideo_motion.c
index 756dcad..997a722 100644
--- a/libavcodec/mpegvideo_motion.c
+++ b/libavcodec/mpegvideo_motion.c
@@ -27,6 +27,7 @@
 #include "avcodec.h"
 #include "dsputil.h"
 #include "h261.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "mjpegenc.h"
 #include "msmpeg4.h"
diff --git a/libavcodec/mpegvideo_xvmc.c b/libavcodec/mpegvideo_xvmc.c
index ec218c2..4a2982f 100644
--- a/libavcodec/mpegvideo_xvmc.c
+++ b/libavcodec/mpegvideo_xvmc.c
@@ -23,6 +23,7 @@
 #include <X11/extensions/XvMC.h>
 
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 
 #undef NDEBUG
diff --git a/libavcodec/msmpeg4dec.c b/libavcodec/msmpeg4dec.c
index 9a12633..3e49c59 100644
--- a/libavcodec/msmpeg4dec.c
+++ b/libavcodec/msmpeg4dec.c
@@ -24,6 +24,7 @@
 
 #include "avcodec.h"
 #include "dsputil.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "msmpeg4.h"
 #include "libavutil/x86/asm.h"
diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c
index 5aaf151..f3f19dd 100644
--- a/libavcodec/ratecontrol.c
+++ b/libavcodec/ratecontrol.c
@@ -28,6 +28,7 @@
 #include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "ratecontrol.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "libavutil/eval.h"
 
diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
index f23b83d..307d54a 100644
--- a/libavcodec/rv30.c
+++ b/libavcodec/rv30.c
@@ -25,6 +25,7 @@
  */
 
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "golomb.h"
 
diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c
index bff3c09..b3f2a23 100644
--- a/libavcodec/rv34.c
+++ b/libavcodec/rv34.c
@@ -28,6 +28,7 @@
 
 #include "avcodec.h"
 #include "error_resilience.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "golomb.h"
 #include "internal.h"
diff --git a/libavcodec/rv40.c b/libavcodec/rv40.c
index def3990..c9beeca 100644
--- a/libavcodec/rv40.c
+++ b/libavcodec/rv40.c
@@ -27,6 +27,7 @@
 #include "libavutil/imgutils.h"
 
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "golomb.h"
 
diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c
index 3cd3a4a..7dc407f 100644
--- a/libavcodec/svq1enc.c
+++ b/libavcodec/svq1enc.c
@@ -32,6 +32,7 @@
 #include "mpegvideo.h"
 #include "h263.h"
 #include "internal.h"
+#include "mpegutils.h"
 #include "svq1.h"
 #include "svq1enc_cb.h"
 
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index 2396007..342c4ef 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -43,6 +43,7 @@
 #include "libavutil/attributes.h"
 #include "internal.h"
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h264.h"
 
diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
index 0fcd416..a1a0e07 100644
--- a/libavcodec/vaapi_h264.c
+++ b/libavcodec/vaapi_h264.c
@@ -22,6 +22,7 @@
 
 #include "vaapi_internal.h"
 #include "h264.h"
+#include "mpegutils.h"
 
 /**
  * @file
diff --git a/libavcodec/vaapi_mpeg2.c b/libavcodec/vaapi_mpeg2.c
index cf0a4b5..d873cd0 100644
--- a/libavcodec/vaapi_mpeg2.c
+++ b/libavcodec/vaapi_mpeg2.c
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "mpegutils.h"
 #include "vaapi_internal.h"
 
 /** Reconstruct bitstream f_code */
diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
index 403cbbc..49abd62 100644
--- a/libavcodec/vc1dec.c
+++ b/libavcodec/vc1dec.c
@@ -29,6 +29,7 @@
 #include "internal.h"
 #include "avcodec.h"
 #include "error_resilience.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "h264chroma.h"
diff --git a/libavcodec/vdpau_h264.c b/libavcodec/vdpau_h264.c
index 6374e04..fd1c6e8 100644
--- a/libavcodec/vdpau_h264.c
+++ b/libavcodec/vdpau_h264.c
@@ -25,6 +25,7 @@
 
 #include "avcodec.h"
 #include "h264.h"
+#include "mpegutils.h"
 #include "vdpau.h"
 #include "vdpau_internal.h"
 
diff --git a/libavcodec/wmv2dec.c b/libavcodec/wmv2dec.c
index 740636c..9b8cced 100644
--- a/libavcodec/wmv2dec.c
+++ b/libavcodec/wmv2dec.c
@@ -19,6 +19,7 @@
  */
 
 #include "avcodec.h"
+#include "mpegutils.h"
 #include "mpegvideo.h"
 #include "h263.h"
 #include "mathops.h"



More information about the ffmpeg-cvslog mailing list