[libav-devel] [PATCH 3/5] lavc: move MB_TYPE_* macros from avcodec.h to mpegvideo.h

Anton Khirnov anton at khirnov.net
Mon Nov 4 08:56:21 CET 2013


They are mpegvideo-specific and not supposed to be used by callers.
---
 libavcodec/avcodec.h   |    2 ++
 libavcodec/mpegvideo.h |   24 ++++++++++++++++++++++++
 libavcodec/version.h   |    3 +++
 3 files changed, 29 insertions(+)

diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index e4dd916..a698d33 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -762,6 +762,7 @@ typedef struct RcOverride{
  */
 #define CODEC_CAP_VARIABLE_FRAME_SIZE 0x10000
 
+#if FF_API_MB_TYPE
 //The following defines may change, don't expect compatibility if you use them.
 #define MB_TYPE_INTRA4x4   0x0001
 #define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific
@@ -785,6 +786,7 @@ typedef struct RcOverride{
 #define MB_TYPE_QUANT      0x00010000
 #define MB_TYPE_CBP        0x00020000
 //Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...)
+#endif
 
 /**
  * Pan Scan area.
diff --git a/libavcodec/mpegvideo.h b/libavcodec/mpegvideo.h
index 270c6e2..4970028 100644
--- a/libavcodec/mpegvideo.h
+++ b/libavcodec/mpegvideo.h
@@ -106,6 +106,30 @@ typedef struct Picture{
     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
+
     AVBufferRef *mbskip_table_buf;
     uint8_t *mbskip_table;
 
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 7e3b489..ffc6e28 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -100,5 +100,8 @@
 #ifndef FF_API_QSCALE_TYPE
 #define FF_API_QSCALE_TYPE       (LIBAVCODEC_VERSION_MAJOR < 56)
 #endif
+#ifndef FF_API_MB_TYPE
+#define FF_API_MB_TYPE           (LIBAVCODEC_VERSION_MAJOR < 56)
+#endif
 
 #endif /* AVCODEC_VERSION_H */
-- 
1.7.10.4



More information about the libav-devel mailing list