[FFmpeg-devel] [PATCH 27/44] avformat/utils: Move ff_get_extradata to demux_utils.c
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Sat May 7 14:28:13 EEST 2022
It is only used by demuxers (although it is hypothetically
possible that some day e.g. a protocol might need it, but
that is unlikely given that they don't deal with AVCodecParameters).
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
libavformat/aaxdec.c | 1 +
libavformat/acm.c | 1 +
libavformat/adxdec.c | 1 +
libavformat/aiffdec.c | 1 +
libavformat/aixdec.c | 1 +
libavformat/anm.c | 1 +
libavformat/apc.c | 2 +-
libavformat/bfi.c | 1 +
libavformat/bink.c | 1 +
libavformat/cafdec.c | 1 +
libavformat/demux.h | 9 +++++++++
libavformat/demux_utils.c | 17 +++++++++++++++++
libavformat/internal.h | 9 ---------
libavformat/isom.c | 1 +
libavformat/mpc.c | 1 +
libavformat/nuv.c | 1 +
libavformat/riffdec.c | 1 +
libavformat/rl2.c | 1 +
libavformat/rsd.c | 1 +
libavformat/utils.c | 16 ----------------
libavformat/vc1test.c | 1 +
libavformat/westwood_vqa.c | 1 +
libavformat/yop.c | 1 +
23 files changed, 45 insertions(+), 26 deletions(-)
diff --git a/libavformat/aaxdec.c b/libavformat/aaxdec.c
index 0ae4057a53..e47ab3ad73 100644
--- a/libavformat/aaxdec.c
+++ b/libavformat/aaxdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
typedef struct AAXColumn {
diff --git a/libavformat/acm.c b/libavformat/acm.c
index c88152d525..28a040330f 100644
--- a/libavformat/acm.c
+++ b/libavformat/acm.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "rawdec.h"
#include "internal.h"
diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c
index 31eda4e8b8..982e825426 100644
--- a/libavformat/adxdec.c
+++ b/libavformat/adxdec.c
@@ -25,6 +25,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define BLOCK_SIZE 18
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 3634bb4960..a70899d765 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/dict.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "aiff.h"
diff --git a/libavformat/aixdec.c b/libavformat/aixdec.c
index 7cee80eb33..f7d8e17acd 100644
--- a/libavformat/aixdec.c
+++ b/libavformat/aixdec.c
@@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
static int aix_probe(const AVProbeData *p)
diff --git a/libavformat/anm.c b/libavformat/anm.c
index 1c29bbca29..7feba4ed1e 100644
--- a/libavformat/anm.c
+++ b/libavformat/anm.c
@@ -26,6 +26,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct Page {
diff --git a/libavformat/apc.c b/libavformat/apc.c
index 1bd5ccf710..b8b18c966c 100644
--- a/libavformat/apc.c
+++ b/libavformat/apc.c
@@ -23,7 +23,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
-#include "internal.h"
+#include "demux.h"
static int apc_probe(const AVProbeData *p)
{
diff --git a/libavformat/bfi.c b/libavformat/bfi.c
index a42b78b8c0..6c449a80eb 100644
--- a/libavformat/bfi.c
+++ b/libavformat/bfi.c
@@ -29,6 +29,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct BFIContext {
diff --git a/libavformat/bink.c b/libavformat/bink.c
index 4f413bd986..f4079dfb1d 100644
--- a/libavformat/bink.c
+++ b/libavformat/bink.c
@@ -33,6 +33,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
enum BinkAudFlags {
diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c
index f6c84e0dae..168f69f20b 100644
--- a/libavformat/cafdec.c
+++ b/libavformat/cafdec.c
@@ -28,6 +28,7 @@
#include <inttypes.h>
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "isom.h"
#include "mov_chan.h"
diff --git a/libavformat/demux.h b/libavformat/demux.h
index 64adaff07d..209cd813ab 100644
--- a/libavformat/demux.h
+++ b/libavformat/demux.h
@@ -217,4 +217,13 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels,
*/
int ff_generate_avci_extradata(AVStream *st);
+/**
+ * Allocate extradata with additional AV_INPUT_BUFFER_PADDING_SIZE at end
+ * which is always set to 0 and fill it from pb.
+ *
+ * @param size size of extradata
+ * @return >= 0 if OK, AVERROR_xxx on error
+ */
+int ff_get_extradata(void *logctx, AVCodecParameters *par, AVIOContext *pb, int size);
+
#endif /* AVFORMAT_DEMUX_H */
diff --git a/libavformat/demux_utils.c b/libavformat/demux_utils.c
index e42d2f3525..6e894ae28a 100644
--- a/libavformat/demux_utils.c
+++ b/libavformat/demux_utils.c
@@ -25,6 +25,7 @@
#include "libavcodec/bytestream.h"
#include "libavcodec/packet_internal.h"
#include "avformat.h"
+#include "avio_internal.h"
#include "demux.h"
#include "internal.h"
@@ -350,3 +351,19 @@ int ff_generate_avci_extradata(AVStream *st)
return 0;
}
+
+int ff_get_extradata(void *logctx, AVCodecParameters *par, AVIOContext *pb, int size)
+{
+ int ret = ff_alloc_extradata(par, size);
+ if (ret < 0)
+ return ret;
+ ret = ffio_read_size(pb, par->extradata, size);
+ if (ret < 0) {
+ av_freep(&par->extradata);
+ par->extradata_size = 0;
+ av_log(logctx, AV_LOG_ERROR, "Failed to read extradata of size %d\n", size);
+ return ret;
+ }
+
+ return ret;
+}
diff --git a/libavformat/internal.h b/libavformat/internal.h
index d46368228c..acda79821a 100644
--- a/libavformat/internal.h
+++ b/libavformat/internal.h
@@ -652,15 +652,6 @@ int ff_rename(const char *url_src, const char *url_dst, void *logctx);
*/
int ff_alloc_extradata(AVCodecParameters *par, int size);
-/**
- * Allocate extradata with additional AV_INPUT_BUFFER_PADDING_SIZE at end
- * which is always set to 0 and fill it from pb.
- *
- * @param size size of extradata
- * @return >= 0 if OK, AVERROR_xxx on error
- */
-int ff_get_extradata(void *logctx, AVCodecParameters *par, AVIOContext *pb, int size);
-
/**
* Copies the whilelists from one context to the other
*/
diff --git a/libavformat/isom.c b/libavformat/isom.c
index e6569dfb68..38f2f4f2b1 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -22,6 +22,7 @@
*/
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "isom.h"
#include "libavcodec/mpeg4audio.h"
diff --git a/libavformat/mpc.c b/libavformat/mpc.c
index f36768b5ff..ef16237ab6 100644
--- a/libavformat/mpc.c
+++ b/libavformat/mpc.c
@@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#include "apetag.h"
#include "id3v1.h"
diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index 942ad525d5..12c6c691ee 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -25,6 +25,7 @@
#include "libavutil/intfloat.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#include "riff.h"
diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
index 8cff699a8c..3946ecb72f 100644
--- a/libavformat/riffdec.c
+++ b/libavformat/riffdec.c
@@ -26,6 +26,7 @@
#include "libavutil/log.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "riff.h"
int ff_get_guid(AVIOContext *s, ff_asf_guid *g)
diff --git a/libavformat/rl2.c b/libavformat/rl2.c
index b8f0523325..669cb0400b 100644
--- a/libavformat/rl2.c
+++ b/libavformat/rl2.c
@@ -37,6 +37,7 @@
#include "libavutil/intreadwrite.h"
#include "libavutil/mathematics.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define EXTRADATA1_SIZE (6 + 256 * 3) ///< video base, clr, palette
diff --git a/libavformat/rsd.c b/libavformat/rsd.c
index c3b570da22..33aa0e2c0d 100644
--- a/libavformat/rsd.c
+++ b/libavformat/rsd.c
@@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio.h"
+#include "demux.h"
#include "internal.h"
static const AVCodecTag rsd_tags[] = {
diff --git a/libavformat/utils.c b/libavformat/utils.c
index 00c0751195..06401b767c 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -359,22 +359,6 @@ int ff_alloc_extradata(AVCodecParameters *par, int size)
return 0;
}
-int ff_get_extradata(void *logctx, AVCodecParameters *par, AVIOContext *pb, int size)
-{
- int ret = ff_alloc_extradata(par, size);
- if (ret < 0)
- return ret;
- ret = ffio_read_size(pb, par->extradata, size);
- if (ret < 0) {
- av_freep(&par->extradata);
- par->extradata_size = 0;
- av_log(logctx, AV_LOG_ERROR, "Failed to read extradata of size %d\n", size);
- return ret;
- }
-
- return ret;
-}
-
AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s)
{
for (unsigned i = 0; i < ic->nb_programs; i++) {
diff --git a/libavformat/vc1test.c b/libavformat/vc1test.c
index 90ea729e0b..67edc699c5 100644
--- a/libavformat/vc1test.c
+++ b/libavformat/vc1test.c
@@ -28,6 +28,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
#define VC1_EXTRADATA_SIZE 4
diff --git a/libavformat/westwood_vqa.c b/libavformat/westwood_vqa.c
index ed5c1a3416..e3d2e2668c 100644
--- a/libavformat/westwood_vqa.c
+++ b/libavformat/westwood_vqa.c
@@ -32,6 +32,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
+#include "demux.h"
#include "internal.h"
#define FORM_TAG MKBETAG('F', 'O', 'R', 'M')
diff --git a/libavformat/yop.c b/libavformat/yop.c
index b0aa0bb64b..8fdad6899b 100644
--- a/libavformat/yop.c
+++ b/libavformat/yop.c
@@ -25,6 +25,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
+#include "demux.h"
#include "internal.h"
typedef struct yop_dec_context {
--
2.32.0
More information about the ffmpeg-devel
mailing list