[FFmpeg-devel] [PATCH 01/11] avcodec/mpeg4video: Factor non-codec stuff out into a header of its own

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Mon Aug 29 00:18:35 EEST 2022


This avoids including mpegvideo.h in mpeg4_unpack_bframes_bsf.c.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavcodec/h263dec.c                  |  1 +
 libavcodec/ituh263dec.c               |  1 +
 libavcodec/mpeg4_unpack_bframes_bsf.c |  2 +-
 libavcodec/mpeg4video.h               | 42 -----------------
 libavcodec/mpeg4video_parser.c        |  2 +-
 libavcodec/mpeg4videodec.c            |  1 +
 libavcodec/mpeg4videodefs.h           | 68 +++++++++++++++++++++++++++
 libavcodec/mpeg4videoenc.c            |  1 +
 libavcodec/nvdec_mpeg4.c              |  2 +-
 9 files changed, 75 insertions(+), 45 deletions(-)
 create mode 100644 libavcodec/mpeg4videodefs.h

diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c
index 8b4101272a..a08329a121 100644
--- a/libavcodec/h263dec.c
+++ b/libavcodec/h263dec.c
@@ -43,6 +43,7 @@
 #include "mpeg_er.h"
 #include "mpeg4video.h"
 #include "mpeg4videodec.h"
+#include "mpeg4videodefs.h"
 #if FF_API_FLAG_TRUNCATED
 #include "mpeg4video_parser.h"
 #endif
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index af054360d8..200de8527e 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -50,6 +50,7 @@
 #include "mpegvideodata.h"
 #include "mpegvideodec.h"
 #include "mpeg4videodec.h"
+#include "mpeg4videodefs.h"
 
 // The defines below define the number of bits that are read at once for
 // reading vlc values. Changing these may improve speed and data cache needs
diff --git a/libavcodec/mpeg4_unpack_bframes_bsf.c b/libavcodec/mpeg4_unpack_bframes_bsf.c
index 5493dafa97..3a3aad795f 100644
--- a/libavcodec/mpeg4_unpack_bframes_bsf.c
+++ b/libavcodec/mpeg4_unpack_bframes_bsf.c
@@ -21,7 +21,7 @@
 
 #include "bsf.h"
 #include "bsf_internal.h"
-#include "mpeg4video.h"
+#include "mpeg4videodefs.h"
 #include "startcode.h"
 
 typedef struct UnpackBFramesBSFContext {
diff --git a/libavcodec/mpeg4video.h b/libavcodec/mpeg4video.h
index ab65280756..29b11eb92e 100644
--- a/libavcodec/mpeg4video.h
+++ b/libavcodec/mpeg4video.h
@@ -27,48 +27,6 @@
 
 #include "mpegvideo.h"
 
-// shapes
-#define RECT_SHAPE       0
-#define BIN_SHAPE        1
-#define BIN_ONLY_SHAPE   2
-#define GRAY_SHAPE       3
-
-#define SIMPLE_VO_TYPE           1
-#define CORE_VO_TYPE             3
-#define MAIN_VO_TYPE             4
-#define NBIT_VO_TYPE             5
-#define ARTS_VO_TYPE            10
-#define ACE_VO_TYPE             12
-#define SIMPLE_STUDIO_VO_TYPE   14
-#define CORE_STUDIO_VO_TYPE     15
-#define ADV_SIMPLE_VO_TYPE      17
-
-#define VOT_VIDEO_ID 1
-#define VOT_STILL_TEXTURE_ID 2
-
-// aspect_ratio_info
-#define EXTENDED_PAR 15
-
-//vol_sprite_usage / sprite_enable
-#define STATIC_SPRITE 1
-#define GMC_SPRITE 2
-
-#define MOTION_MARKER 0x1F001
-#define DC_MARKER     0x6B001
-
-#define VOS_STARTCODE        0x1B0
-#define USER_DATA_STARTCODE  0x1B2
-#define GOP_STARTCODE        0x1B3
-#define VISUAL_OBJ_STARTCODE 0x1B5
-#define VOP_STARTCODE        0x1B6
-#define SLICE_STARTCODE      0x1B7
-#define EXT_STARTCODE        0x1B8
-
-#define QUANT_MATRIX_EXT_ID  0x3
-
-/* smaller packets likely don't contain a real frame */
-#define MAX_NVOP_SIZE 19
-
 void ff_mpeg4_clean_buffers(MpegEncContext *s);
 int ff_mpeg4_get_video_packet_prefix_length(MpegEncContext *s);
 void ff_mpeg4_init_direct_mv(MpegEncContext *s);
diff --git a/libavcodec/mpeg4video_parser.c b/libavcodec/mpeg4video_parser.c
index bbdb2209cf..e32a93d296 100644
--- a/libavcodec/mpeg4video_parser.c
+++ b/libavcodec/mpeg4video_parser.c
@@ -25,8 +25,8 @@
 #include "decode.h"
 #include "parser.h"
 #include "mpegvideo.h"
-#include "mpeg4video.h"
 #include "mpeg4videodec.h"
+#include "mpeg4videodefs.h"
 #if FF_API_FLAG_TRUNCATED
 /* Nuke this header when removing FF_API_FLAG_TRUNCATED */
 #include "mpeg4video_parser.h"
diff --git a/libavcodec/mpeg4videodec.c b/libavcodec/mpeg4videodec.c
index d89adf8d63..65f3c89c47 100644
--- a/libavcodec/mpeg4videodec.c
+++ b/libavcodec/mpeg4videodec.c
@@ -38,6 +38,7 @@
 #include "mpeg4video.h"
 #include "mpeg4videodata.h"
 #include "mpeg4videodec.h"
+#include "mpeg4videodefs.h"
 #include "h263.h"
 #include "h263data.h"
 #include "h263dec.h"
diff --git a/libavcodec/mpeg4videodefs.h b/libavcodec/mpeg4videodefs.h
new file mode 100644
index 0000000000..27155eae5c
--- /dev/null
+++ b/libavcodec/mpeg4videodefs.h
@@ -0,0 +1,68 @@
+/*
+ * MPEG-4 definitions.
+ * Copyright (c) 2000,2001 Fabrice Bellard
+ * Copyright (c) 2002-2010 Michael Niedermayer <michaelni at gmx.at>
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg 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.
+ *
+ * FFmpeg 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 FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef AVCODEC_MPEG4VIDEODEFS_H
+#define AVCODEC_MPEG4VIDEODEFS_H
+
+// shapes
+#define RECT_SHAPE       0
+#define BIN_SHAPE        1
+#define BIN_ONLY_SHAPE   2
+#define GRAY_SHAPE       3
+
+#define SIMPLE_VO_TYPE           1
+#define CORE_VO_TYPE             3
+#define MAIN_VO_TYPE             4
+#define NBIT_VO_TYPE             5
+#define ARTS_VO_TYPE            10
+#define ACE_VO_TYPE             12
+#define SIMPLE_STUDIO_VO_TYPE   14
+#define CORE_STUDIO_VO_TYPE     15
+#define ADV_SIMPLE_VO_TYPE      17
+
+#define VOT_VIDEO_ID 1
+#define VOT_STILL_TEXTURE_ID 2
+
+// aspect_ratio_info
+#define EXTENDED_PAR 15
+
+//vol_sprite_usage / sprite_enable
+#define STATIC_SPRITE 1
+#define GMC_SPRITE 2
+
+#define MOTION_MARKER 0x1F001
+#define DC_MARKER     0x6B001
+
+#define VOS_STARTCODE        0x1B0
+#define USER_DATA_STARTCODE  0x1B2
+#define GOP_STARTCODE        0x1B3
+#define VISUAL_OBJ_STARTCODE 0x1B5
+#define VOP_STARTCODE        0x1B6
+#define SLICE_STARTCODE      0x1B7
+#define EXT_STARTCODE        0x1B8
+
+#define QUANT_MATRIX_EXT_ID  0x3
+
+/* smaller packets likely don't contain a real frame */
+#define MAX_NVOP_SIZE 19
+
+#endif /* AVCODEC_MPEG4VIDEODEFS_H */
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index 339a3c2152..96c48b2eb2 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -31,6 +31,7 @@
 #include "h263enc.h"
 #include "mpeg4video.h"
 #include "mpeg4videodata.h"
+#include "mpeg4videodefs.h"
 #include "mpeg4videoenc.h"
 #include "mpegvideoenc.h"
 #include "profiles.h"
diff --git a/libavcodec/nvdec_mpeg4.c b/libavcodec/nvdec_mpeg4.c
index b7e1821754..eac138cc38 100644
--- a/libavcodec/nvdec_mpeg4.c
+++ b/libavcodec/nvdec_mpeg4.c
@@ -22,8 +22,8 @@
 
 #include "avcodec.h"
 #include "internal.h"
-#include "mpeg4video.h"
 #include "mpeg4videodec.h"
+#include "mpeg4videodefs.h"
 #include "nvdec.h"
 #include "decode.h"
 
-- 
2.34.1



More information about the ffmpeg-devel mailing list