diff mbox series

[FFmpeg-devel,74/87] avcodec/codec, allcodecs: Constify the AVCodec API

Message ID 20210419141024.8174-75-jamrial@gmail.com
State New
Headers show
Series Major bump
Related show

Checks

Context Check Description
andriy/configure warning Failed to apply patch
andriy/configure warning Failed to apply patch

Commit Message

James Almer April 19, 2021, 2:10 p.m. UTC
From: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@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 mbox series

Patch

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)