diff --git a/doc/APIchanges b/doc/APIchanges
index 63434ef635..9b7a2d4b99 100644
--- a/doc/APIchanges
+++ b/doc/APIchanges
@@ -14,6 +14,11 @@ libavutil: 2017-10-21
API changes, most recent first:
+2021-04-27 - 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-27 - xxxxxxxxxx - lavf yyyyyyyyy - avformat.h
Constified AVFormatContext.*_codec.
diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c
index db5e0cb951..55fdb2555c 100644
--- a/doc/examples/demuxing_decoding.c
+++ b/doc/examples/demuxing_decoding.c
@@ -149,7 +149,7 @@ static int open_codec_context(int *stream_idx,
{
int ret, stream_index;
AVStream *st;
- AVCodec *dec = NULL;
+ const AVCodec *dec = NULL;
AVDictionary *opts = NULL;
ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0);
diff --git a/doc/examples/muxing.c b/doc/examples/muxing.c
index 014359e2ca..fe1b9ded21 100644
--- a/doc/examples/muxing.c
+++ b/doc/examples/muxing.c
@@ -121,7 +121,7 @@ static int write_frame(AVFormatContext *fmt_ctx, AVCodecContext *c,
/* Add an output stream. */
static void add_stream(OutputStream *ost, AVFormatContext *oc,
- AVCodec **codec,
+ const AVCodec **codec,
enum AVCodecID codec_id)
{
AVCodecContext *c;
@@ -242,7 +242,8 @@ static AVFrame *alloc_audio_frame(enum AVSampleFormat sample_fmt,
return frame;
}
-static void open_audio(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
+static void open_audio(AVFormatContext *oc, const AVCodec *codec,
+ OutputStream *ost, AVDictionary *opt_arg)
{
AVCodecContext *c;
int nb_samples;
@@ -405,7 +406,8 @@ static AVFrame *alloc_picture(enum AVPixelFormat pix_fmt, int width, int height)
return picture;
}
-static void open_video(AVFormatContext *oc, AVCodec *codec, OutputStream *ost, AVDictionary *opt_arg)
+static void open_video(AVFormatContext *oc, const AVCodec *codec,
+ OutputStream *ost, AVDictionary *opt_arg)
{
int ret;
AVCodecContext *c = ost->enc;
@@ -539,7 +541,7 @@ int main(int argc, char **argv)
const AVOutputFormat *fmt;
const char *filename;
AVFormatContext *oc;
- AVCodec *audio_codec, *video_codec;
+ const AVCodec *audio_codec, *video_codec;
int ret;
int have_video = 0, have_audio = 0;
int encode_video = 0, encode_audio = 0;
diff --git a/doc/examples/transcode_aac.c b/doc/examples/transcode_aac.c
index 73786ab59b..711076b5a5 100644
--- a/doc/examples/transcode_aac.c
+++ b/doc/examples/transcode_aac.c
@@ -60,7 +60,7 @@ static int open_input_file(const char *filename,
AVCodecContext **input_codec_context)
{
AVCodecContext *avctx;
- AVCodec *input_codec;
+ const AVCodec *input_codec;
int error;
/* Open the input file to read from it. */
@@ -144,7 +144,7 @@ static int open_output_file(const char *filename,
AVCodecContext *avctx = NULL;
AVIOContext *output_io_context = NULL;
AVStream *stream = NULL;
- AVCodec *output_codec = NULL;
+ const AVCodec *output_codec = NULL;
int error;
/* Open the output file to write to it. */
diff --git a/doc/examples/transcoding.c b/doc/examples/transcoding.c
index 6ca3089330..3a97426e2c 100644
--- a/doc/examples/transcoding.c
+++ b/doc/examples/transcoding.c
@@ -77,7 +77,7 @@ static int open_input_file(const char *filename)
for (i = 0; i < ifmt_ctx->nb_streams; i++) {
AVStream *stream = ifmt_ctx->streams[i];
- AVCodec *dec = avcodec_find_decoder(stream->codecpar->codec_id);
+ const AVCodec *dec = avcodec_find_decoder(stream->codecpar->codec_id);
AVCodecContext *codec_ctx;
if (!dec) {
av_log(NULL, AV_LOG_ERROR, "Failed to find decoder for stream #%u\n", i);
@@ -122,7 +122,7 @@ static int open_output_file(const char *filename)
AVStream *out_stream;
AVStream *in_stream;
AVCodecContext *dec_ctx, *enc_ctx;
- AVCodec *encoder;
+ const AVCodec *encoder;
int ret;
unsigned int i;
diff --git a/doc/examples/vaapi_encode.c b/doc/examples/vaapi_encode.c
index 46bca1b3fe..e232fa579a 100644
--- a/doc/examples/vaapi_encode.c
+++ b/doc/examples/vaapi_encode.c
@@ -105,7 +105,7 @@ int main(int argc, char *argv[])
FILE *fin = NULL, *fout = NULL;
AVFrame *sw_frame = NULL, *hw_frame = NULL;
AVCodecContext *avctx = NULL;
- AVCodec *codec = NULL;
+ const AVCodec *codec = NULL;
const char *enc_name = "h264_vaapi";
if (argc < 5) {
diff --git a/doc/examples/vaapi_transcode.c b/doc/examples/vaapi_transcode.c
index 5a1a704a8e..e9b33eede0 100644
--- a/doc/examples/vaapi_transcode.c
+++ b/doc/examples/vaapi_transcode.c
@@ -142,7 +142,7 @@ end:
return ret;
}
-static int dec_enc(AVPacket *pkt, AVCodec *enc_codec)
+static int dec_enc(AVPacket *pkt, const AVCodec *enc_codec)
{
AVFrame *frame;
int ret = 0;
@@ -226,9 +226,9 @@ fail:
int main(int argc, char **argv)
{
+ const AVCodec *enc_codec;
int ret = 0;
AVPacket *dec_pkt;
- AVCodec *enc_codec;
if (argc != 4) {
fprintf(stderr, "Usage: %s