[FFmpeg-devel] [PATCH 74/87] avcodec/codec, allcodecs: Constify the AVCodec API
James Almer
jamrial at gmail.com
Mon Apr 19 17:10:11 EEST 2021
From: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
---
doc/APIchanges | 5 +++++
libavcodec/allcodecs.c | 18 +++++++++---------
libavcodec/codec.h | 8 ++++----
tools/target_dec_fuzzer.c | 8 ++++----
4 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/doc/APIchanges b/doc/APIchanges
index 2522978952..a823a4419c 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -17,6 +17,11 @@ API changes, most recent first:
2021-04-17 - xxxxxxxxxx - lavu 56.73.100 - frame.h detection_bbox.h
Add AV_FRAME_DATA_DETECTION_BBOXES
+2021-04-14 - xxxxxxxxxx - lavc yyyyyyyyy - codec.h
+ avcodec_find_encoder_by_name(), avcodec_find_encoder(),
+ avcodec_find_decoder_by_name() and avcodec_find_decoder()
+ now return a pointer to const AVCodec.
+
2021-04-14 - xxxxxxxxxx - lavf yyyyyyyyy - avformat.h
Constified AVFormatContext.*_codec.
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index cf6fe2055b..e60ac5ce78 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -872,7 +872,7 @@ static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id)
}
}
-static AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *))
+static const AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *))
{
const AVCodec *p, *experimental = NULL;
void *i = 0;
@@ -886,24 +886,24 @@ static AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *))
if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) {
experimental = p;
} else
- return (AVCodec*)p;
+ return p;
}
}
- return (AVCodec*)experimental;
+ return experimental;
}
-AVCodec *avcodec_find_encoder(enum AVCodecID id)
+const AVCodec *avcodec_find_encoder(enum AVCodecID id)
{
return find_codec(id, av_codec_is_encoder);
}
-AVCodec *avcodec_find_decoder(enum AVCodecID id)
+const AVCodec *avcodec_find_decoder(enum AVCodecID id)
{
return find_codec(id, av_codec_is_decoder);
}
-static AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *))
+static const AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *))
{
void *i = 0;
const AVCodec *p;
@@ -915,18 +915,18 @@ static AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *))
if (!x(p))
continue;
if (strcmp(name, p->name) == 0)
- return (AVCodec*)p;
+ return p;
}
return NULL;
}
-AVCodec *avcodec_find_encoder_by_name(const char *name)
+const AVCodec *avcodec_find_encoder_by_name(const char *name)
{
return find_codec_by_name(name, av_codec_is_encoder);
}
-AVCodec *avcodec_find_decoder_by_name(const char *name)
+const AVCodec *avcodec_find_decoder_by_name(const char *name)
{
return find_codec_by_name(name, av_codec_is_decoder);
}
diff --git a/libavcodec/codec.h b/libavcodec/codec.h
index c95078491d..c8653e3b31 100644
--- a/libavcodec/codec.h
+++ b/libavcodec/codec.h
@@ -367,7 +367,7 @@ const AVCodec *av_codec_iterate(void **opaque);
* @param id AVCodecID of the requested decoder
* @return A decoder if one was found, NULL otherwise.
*/
-AVCodec *avcodec_find_decoder(enum AVCodecID id);
+const AVCodec *avcodec_find_decoder(enum AVCodecID id);
/**
* Find a registered decoder with the specified name.
@@ -375,7 +375,7 @@ AVCodec *avcodec_find_decoder(enum AVCodecID id);
* @param name name of the requested decoder
* @return A decoder if one was found, NULL otherwise.
*/
-AVCodec *avcodec_find_decoder_by_name(const char *name);
+const AVCodec *avcodec_find_decoder_by_name(const char *name);
/**
* Find a registered encoder with a matching codec ID.
@@ -383,7 +383,7 @@ AVCodec *avcodec_find_decoder_by_name(const char *name);
* @param id AVCodecID of the requested encoder
* @return An encoder if one was found, NULL otherwise.
*/
-AVCodec *avcodec_find_encoder(enum AVCodecID id);
+const AVCodec *avcodec_find_encoder(enum AVCodecID id);
/**
* Find a registered encoder with the specified name.
@@ -391,7 +391,7 @@ AVCodec *avcodec_find_encoder(enum AVCodecID id);
* @param name name of the requested encoder
* @return An encoder if one was found, NULL otherwise.
*/
-AVCodec *avcodec_find_encoder_by_name(const char *name);
+const AVCodec *avcodec_find_encoder_by_name(const char *name);
/**
* @return a non-zero number if codec is an encoder, zero otherwise
*/
diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c
index 334c47a2c8..f52eba92b1 100644
--- a/tools/target_dec_fuzzer.c
+++ b/tools/target_dec_fuzzer.c
@@ -59,7 +59,7 @@
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
-extern AVCodec * codec_list[];
+extern const AVCodec * codec_list[];
static void error(const char *err)
{
@@ -67,10 +67,10 @@ static void error(const char *err)
exit(1);
}
-static AVCodec *c = NULL;
-static AVCodec *AVCodecInitialize(enum AVCodecID codec_id)
+static const AVCodec *c = NULL;
+static const AVCodec *AVCodecInitialize(enum AVCodecID codec_id)
{
- AVCodec *res;
+ const AVCodec *res;
res = avcodec_find_decoder(codec_id);
if (!res)
--
2.31.1
More information about the ffmpeg-devel
mailing list