diff --git a/libavformat/3dostr.c b/libavformat/3dostr.c
index 534f205fc4..0c136c9ea0 100644
--- a/libavformat/3dostr.c
+++ b/libavformat/3dostr.c
@@ -191,7 +191,7 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_threedostr_demuxer = {
+const AVInputFormat ff_threedostr_demuxer = {
     .name           = "3dostr",
     .long_name      = NULL_IF_CONFIG_SMALL("3DO STR"),
     .read_probe     = threedostr_probe,
diff --git a/libavformat/4xm.c b/libavformat/4xm.c
index 30f1b05324..427eaaddd0 100644
--- a/libavformat/4xm.c
+++ b/libavformat/4xm.c
@@ -393,7 +393,7 @@ static int fourxm_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_fourxm_demuxer = {
+const AVInputFormat ff_fourxm_demuxer = {
     .name           = "4xm",
     .long_name      = NULL_IF_CONFIG_SMALL("4X Technologies"),
     .priv_data_size = sizeof(FourxmDemuxContext),
diff --git a/libavformat/a64.c b/libavformat/a64.c
index 2a0489dae4..e6018f06d3 100644
--- a/libavformat/a64.c
+++ b/libavformat/a64.c
@@ -58,7 +58,7 @@ static int a64_write_header(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_a64_muxer = {
+const AVOutputFormat ff_a64_muxer = {
     .name           = "a64",
     .long_name      = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"),
     .extensions     = "a64, A64",
diff --git a/libavformat/aacdec.c b/libavformat/aacdec.c
index ea3203df36..ba468909e9 100644
--- a/libavformat/aacdec.c
+++ b/libavformat/aacdec.c
@@ -206,7 +206,7 @@ retry:
     return ret;
 }
 
-AVInputFormat ff_aac_demuxer = {
+const AVInputFormat ff_aac_demuxer = {
     .name         = "aac",
     .long_name    = NULL_IF_CONFIG_SMALL("raw ADTS AAC (Advanced Audio Coding)"),
     .read_probe   = adts_aac_probe,
diff --git a/libavformat/aadec.c b/libavformat/aadec.c
index 2575e98153..21051d79b8 100644
--- a/libavformat/aadec.c
+++ b/libavformat/aadec.c
@@ -406,7 +406,7 @@ static const AVClass aa_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_aa_demuxer = {
+const AVInputFormat ff_aa_demuxer = {
     .name           = "aa",
     .long_name      = NULL_IF_CONFIG_SMALL("Audible AA format files"),
     .priv_class     = &aa_class,
diff --git a/libavformat/aaxdec.c b/libavformat/aaxdec.c
index c6d2d1c8d1..0cbf933dfd 100644
--- a/libavformat/aaxdec.c
+++ b/libavformat/aaxdec.c
@@ -402,7 +402,7 @@ static int aax_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_aax_demuxer = {
+const AVInputFormat ff_aax_demuxer = {
     .name           = "aax",
     .long_name      = NULL_IF_CONFIG_SMALL("CRI AAX"),
     .priv_data_size = sizeof(AAXContext),
diff --git a/libavformat/ac3dec.c b/libavformat/ac3dec.c
index 1f87939388..246c483671 100644
--- a/libavformat/ac3dec.c
+++ b/libavformat/ac3dec.c
@@ -103,7 +103,7 @@ static int ac3_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(ac3)
-AVInputFormat ff_ac3_demuxer = {
+const AVInputFormat ff_ac3_demuxer = {
     .name           = "ac3",
     .long_name      = NULL_IF_CONFIG_SMALL("raw AC-3"),
     .read_probe     = ac3_probe,
@@ -124,7 +124,7 @@ static int eac3_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(eac3)
-AVInputFormat ff_eac3_demuxer = {
+const AVInputFormat ff_eac3_demuxer = {
     .name           = "eac3",
     .long_name      = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
     .read_probe     = eac3_probe,
diff --git a/libavformat/acedec.c b/libavformat/acedec.c
index f1bc512d57..a52a0f0e54 100644
--- a/libavformat/acedec.c
+++ b/libavformat/acedec.c
@@ -104,7 +104,7 @@ static int ace_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_ace_demuxer = {
+const AVInputFormat ff_ace_demuxer = {
     .name           = "ace",
     .long_name      = NULL_IF_CONFIG_SMALL("tri-Ace Audio Container"),
     .read_probe     = ace_probe,
diff --git a/libavformat/acm.c b/libavformat/acm.c
index 5e03cf8bff..c78a408aa0 100644
--- a/libavformat/acm.c
+++ b/libavformat/acm.c
@@ -61,7 +61,7 @@ static int acm_read_header(AVFormatContext *s)
 }
 
 FF_RAW_DEMUXER_CLASS(acm)
-AVInputFormat ff_acm_demuxer = {
+const AVInputFormat ff_acm_demuxer = {
     .name           = "acm",
     .long_name      = NULL_IF_CONFIG_SMALL("Interplay ACM"),
     .read_probe     = acm_probe,
diff --git a/libavformat/act.c b/libavformat/act.c
index 26425ca1bb..5688952a31 100644
--- a/libavformat/act.c
+++ b/libavformat/act.c
@@ -197,7 +197,7 @@ static int read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_act_demuxer = {
+const AVInputFormat ff_act_demuxer = {
     .name           = "act",
     .long_name      = "ACT Voice file format",
     .priv_data_size = sizeof(ACTContext),
diff --git a/libavformat/adp.c b/libavformat/adp.c
index b0ee09753e..6d5f9d274e 100644
--- a/libavformat/adp.c
+++ b/libavformat/adp.c
@@ -83,7 +83,7 @@ static int adp_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_adp_demuxer = {
+const AVInputFormat ff_adp_demuxer = {
     .name           = "adp",
     .long_name      = NULL_IF_CONFIG_SMALL("ADP"),
     .read_probe     = adp_probe,
diff --git a/libavformat/ads.c b/libavformat/ads.c
index 544d652829..e7b419ce8d 100644
--- a/libavformat/ads.c
+++ b/libavformat/ads.c
@@ -80,7 +80,7 @@ static int ads_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_ads_demuxer = {
+const AVInputFormat ff_ads_demuxer = {
     .name           = "ads",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony PS2 ADS"),
     .read_probe     = ads_probe,
diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c
index 14214eb0b9..5de920894b 100644
--- a/libavformat/adtsenc.c
+++ b/libavformat/adtsenc.c
@@ -227,7 +227,7 @@ static const AVClass adts_muxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_adts_muxer = {
+const AVOutputFormat ff_adts_muxer = {
     .name              = "adts",
     .long_name         = NULL_IF_CONFIG_SMALL("ADTS AAC (Advanced Audio Coding)"),
     .mime_type         = "audio/aac",
diff --git a/libavformat/adxdec.c b/libavformat/adxdec.c
index a265c87dea..d91d43d114 100644
--- a/libavformat/adxdec.c
+++ b/libavformat/adxdec.c
@@ -129,7 +129,7 @@ static int adx_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_adx_demuxer = {
+const AVInputFormat ff_adx_demuxer = {
     .name           = "adx",
     .long_name      = NULL_IF_CONFIG_SMALL("CRI ADX"),
     .read_probe     = adx_probe,
diff --git a/libavformat/aea.c b/libavformat/aea.c
index bdeed64254..14d0840cf3 100644
--- a/libavformat/aea.c
+++ b/libavformat/aea.c
@@ -98,7 +98,7 @@ static int aea_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_aea_demuxer = {
+const AVInputFormat ff_aea_demuxer = {
     .name           = "aea",
     .long_name      = NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
     .read_probe     = aea_read_probe,
diff --git a/libavformat/afc.c b/libavformat/afc.c
index 2da04eb5dc..a99f65472d 100644
--- a/libavformat/afc.c
+++ b/libavformat/afc.c
@@ -69,7 +69,7 @@ static int afc_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_afc_demuxer = {
+const AVInputFormat ff_afc_demuxer = {
     .name           = "afc",
     .long_name      = NULL_IF_CONFIG_SMALL("AFC"),
     .priv_data_size = sizeof(AFCDemuxContext),
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 1b693b71a3..cade05a9d6 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -424,7 +424,7 @@ static int aiff_read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_aiff_demuxer = {
+const AVInputFormat ff_aiff_demuxer = {
     .name           = "aiff",
     .long_name      = NULL_IF_CONFIG_SMALL("Audio IFF"),
     .priv_data_size = sizeof(AIFFInputContext),
diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c
index 725e06b3bd..24bc17400e 100644
--- a/libavformat/aiffenc.c
+++ b/libavformat/aiffenc.c
@@ -285,7 +285,7 @@ static const AVClass aiff_muxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_aiff_muxer = {
+const AVOutputFormat ff_aiff_muxer = {
     .name              = "aiff",
     .long_name         = NULL_IF_CONFIG_SMALL("Audio IFF"),
     .mime_type         = "audio/aiff",
diff --git a/libavformat/aixdec.c b/libavformat/aixdec.c
index b536bc4b01..59c3d60da3 100644
--- a/libavformat/aixdec.c
+++ b/libavformat/aixdec.c
@@ -129,7 +129,7 @@ static int aix_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_aix_demuxer = {
+const AVInputFormat ff_aix_demuxer = {
     .name        = "aix",
     .long_name   = NULL_IF_CONFIG_SMALL("CRI AIX"),
     .read_probe  = aix_probe,
diff --git a/libavformat/allformats.c b/libavformat/allformats.c
index f450c1709b..101078df22 100644
--- a/libavformat/allformats.c
+++ b/libavformat/allformats.c
@@ -24,508 +24,508 @@
 #include "avformat.h"
 
 /* (de)muxers */
-extern AVOutputFormat ff_a64_muxer;
-extern AVInputFormat  ff_aa_demuxer;
-extern AVInputFormat  ff_aac_demuxer;
-extern AVInputFormat  ff_aax_demuxer;
-extern AVInputFormat  ff_ac3_demuxer;
-extern AVOutputFormat ff_ac3_muxer;
-extern AVInputFormat  ff_ace_demuxer;
-extern AVInputFormat  ff_acm_demuxer;
-extern AVInputFormat  ff_act_demuxer;
-extern AVInputFormat  ff_adf_demuxer;
-extern AVInputFormat  ff_adp_demuxer;
-extern AVInputFormat  ff_ads_demuxer;
-extern AVOutputFormat ff_adts_muxer;
-extern AVInputFormat  ff_adx_demuxer;
-extern AVOutputFormat ff_adx_muxer;
-extern AVInputFormat  ff_aea_demuxer;
-extern AVInputFormat  ff_afc_demuxer;
-extern AVInputFormat  ff_aiff_demuxer;
-extern AVOutputFormat ff_aiff_muxer;
-extern AVInputFormat  ff_aix_demuxer;
-extern AVInputFormat  ff_alp_demuxer;
-extern AVOutputFormat ff_alp_muxer;
-extern AVInputFormat  ff_amr_demuxer;
-extern AVOutputFormat ff_amr_muxer;
-extern AVInputFormat  ff_amrnb_demuxer;
-extern AVInputFormat  ff_amrwb_demuxer;
-extern AVOutputFormat ff_amv_muxer;
-extern AVInputFormat  ff_anm_demuxer;
-extern AVInputFormat  ff_apc_demuxer;
-extern AVInputFormat  ff_ape_demuxer;
-extern AVInputFormat  ff_apm_demuxer;
-extern AVOutputFormat ff_apm_muxer;
-extern AVInputFormat  ff_apng_demuxer;
-extern AVOutputFormat ff_apng_muxer;
-extern AVInputFormat  ff_aptx_demuxer;
-extern AVOutputFormat ff_aptx_muxer;
-extern AVInputFormat  ff_aptx_hd_demuxer;
-extern AVOutputFormat ff_aptx_hd_muxer;
-extern AVInputFormat  ff_aqtitle_demuxer;
-extern AVInputFormat  ff_argo_asf_demuxer;
-extern AVOutputFormat ff_argo_asf_muxer;
-extern AVInputFormat  ff_argo_brp_demuxer;
-extern AVInputFormat  ff_asf_demuxer;
-extern AVOutputFormat ff_asf_muxer;
-extern AVInputFormat  ff_asf_o_demuxer;
-extern AVInputFormat  ff_ass_demuxer;
-extern AVOutputFormat ff_ass_muxer;
-extern AVInputFormat  ff_ast_demuxer;
-extern AVOutputFormat ff_ast_muxer;
-extern AVOutputFormat ff_asf_stream_muxer;
-extern AVInputFormat  ff_au_demuxer;
-extern AVOutputFormat ff_au_muxer;
-extern AVInputFormat  ff_av1_demuxer;
-extern AVInputFormat  ff_avi_demuxer;
-extern AVOutputFormat ff_avi_muxer;
-extern AVInputFormat  ff_avisynth_demuxer;
-extern AVOutputFormat ff_avm2_muxer;
-extern AVInputFormat  ff_avr_demuxer;
-extern AVInputFormat  ff_avs_demuxer;
-extern AVInputFormat  ff_avs2_demuxer;
-extern AVOutputFormat ff_avs2_muxer;
-extern AVInputFormat  ff_avs3_demuxer;
-extern AVInputFormat  ff_bethsoftvid_demuxer;
-extern AVInputFormat  ff_bfi_demuxer;
-extern AVInputFormat  ff_bintext_demuxer;
-extern AVInputFormat  ff_bink_demuxer;
-extern AVInputFormat  ff_binka_demuxer;
-extern AVInputFormat  ff_bit_demuxer;
-extern AVOutputFormat ff_bit_muxer;
-extern AVInputFormat  ff_bmv_demuxer;
-extern AVInputFormat  ff_bfstm_demuxer;
-extern AVInputFormat  ff_brstm_demuxer;
-extern AVInputFormat  ff_boa_demuxer;
-extern AVInputFormat  ff_c93_demuxer;
-extern AVInputFormat  ff_caf_demuxer;
-extern AVOutputFormat ff_caf_muxer;
-extern AVInputFormat  ff_cavsvideo_demuxer;
-extern AVOutputFormat ff_cavsvideo_muxer;
-extern AVInputFormat  ff_cdg_demuxer;
-extern AVInputFormat  ff_cdxl_demuxer;
-extern AVInputFormat  ff_cine_demuxer;
-extern AVInputFormat  ff_codec2_demuxer;
-extern AVOutputFormat ff_codec2_muxer;
-extern AVInputFormat  ff_codec2raw_demuxer;
-extern AVOutputFormat ff_codec2raw_muxer;
-extern AVInputFormat  ff_concat_demuxer;
-extern AVOutputFormat ff_crc_muxer;
-extern AVInputFormat  ff_dash_demuxer;
-extern AVOutputFormat ff_dash_muxer;
-extern AVInputFormat  ff_data_demuxer;
-extern AVOutputFormat ff_data_muxer;
-extern AVInputFormat  ff_daud_demuxer;
-extern AVOutputFormat ff_daud_muxer;
-extern AVInputFormat  ff_dcstr_demuxer;
-extern AVInputFormat  ff_derf_demuxer;
-extern AVInputFormat  ff_dfa_demuxer;
-extern AVInputFormat  ff_dhav_demuxer;
-extern AVInputFormat  ff_dirac_demuxer;
-extern AVOutputFormat ff_dirac_muxer;
-extern AVInputFormat  ff_dnxhd_demuxer;
-extern AVOutputFormat ff_dnxhd_muxer;
-extern AVInputFormat  ff_dsf_demuxer;
-extern AVInputFormat  ff_dsicin_demuxer;
-extern AVInputFormat  ff_dss_demuxer;
-extern AVInputFormat  ff_dts_demuxer;
-extern AVOutputFormat ff_dts_muxer;
-extern AVInputFormat  ff_dtshd_demuxer;
-extern AVInputFormat  ff_dv_demuxer;
-extern AVOutputFormat ff_dv_muxer;
-extern AVInputFormat  ff_dvbsub_demuxer;
-extern AVInputFormat  ff_dvbtxt_demuxer;
-extern AVInputFormat  ff_dxa_demuxer;
-extern AVInputFormat  ff_ea_demuxer;
-extern AVInputFormat  ff_ea_cdata_demuxer;
-extern AVInputFormat  ff_eac3_demuxer;
-extern AVOutputFormat ff_eac3_muxer;
-extern AVInputFormat  ff_epaf_demuxer;
-extern AVOutputFormat ff_f4v_muxer;
-extern AVInputFormat  ff_ffmetadata_demuxer;
-extern AVOutputFormat ff_ffmetadata_muxer;
-extern AVOutputFormat ff_fifo_muxer;
-extern AVOutputFormat ff_fifo_test_muxer;
-extern AVInputFormat  ff_filmstrip_demuxer;
-extern AVOutputFormat ff_filmstrip_muxer;
-extern AVInputFormat  ff_fits_demuxer;
-extern AVOutputFormat ff_fits_muxer;
-extern AVInputFormat  ff_flac_demuxer;
-extern AVOutputFormat ff_flac_muxer;
-extern AVInputFormat  ff_flic_demuxer;
-extern AVInputFormat  ff_flv_demuxer;
-extern AVOutputFormat ff_flv_muxer;
-extern AVInputFormat  ff_live_flv_demuxer;
-extern AVInputFormat  ff_fourxm_demuxer;
-extern AVOutputFormat ff_framecrc_muxer;
-extern AVOutputFormat ff_framehash_muxer;
-extern AVOutputFormat ff_framemd5_muxer;
-extern AVInputFormat  ff_frm_demuxer;
-extern AVInputFormat  ff_fsb_demuxer;
-extern AVInputFormat  ff_fwse_demuxer;
-extern AVInputFormat  ff_g722_demuxer;
-extern AVOutputFormat ff_g722_muxer;
-extern AVInputFormat  ff_g723_1_demuxer;
-extern AVOutputFormat ff_g723_1_muxer;
-extern AVInputFormat  ff_g726_demuxer;
-extern AVOutputFormat ff_g726_muxer;
-extern AVInputFormat  ff_g726le_demuxer;
-extern AVOutputFormat ff_g726le_muxer;
-extern AVInputFormat  ff_g729_demuxer;
-extern AVInputFormat  ff_gdv_demuxer;
-extern AVInputFormat  ff_genh_demuxer;
-extern AVInputFormat  ff_gif_demuxer;
-extern AVOutputFormat ff_gif_muxer;
-extern AVInputFormat  ff_gsm_demuxer;
-extern AVOutputFormat ff_gsm_muxer;
-extern AVInputFormat  ff_gxf_demuxer;
-extern AVOutputFormat ff_gxf_muxer;
-extern AVInputFormat  ff_h261_demuxer;
-extern AVOutputFormat ff_h261_muxer;
-extern AVInputFormat  ff_h263_demuxer;
-extern AVOutputFormat ff_h263_muxer;
-extern AVInputFormat  ff_h264_demuxer;
-extern AVOutputFormat ff_h264_muxer;
-extern AVOutputFormat ff_hash_muxer;
-extern AVInputFormat  ff_hca_demuxer;
-extern AVInputFormat  ff_hcom_demuxer;
-extern AVOutputFormat ff_hds_muxer;
-extern AVInputFormat  ff_hevc_demuxer;
-extern AVOutputFormat ff_hevc_muxer;
-extern AVInputFormat  ff_hls_demuxer;
-extern AVOutputFormat ff_hls_muxer;
-extern AVInputFormat  ff_hnm_demuxer;
-extern AVInputFormat  ff_ico_demuxer;
-extern AVOutputFormat ff_ico_muxer;
-extern AVInputFormat  ff_idcin_demuxer;
-extern AVInputFormat  ff_idf_demuxer;
-extern AVInputFormat  ff_iff_demuxer;
-extern AVInputFormat  ff_ifv_demuxer;
-extern AVInputFormat  ff_ilbc_demuxer;
-extern AVOutputFormat ff_ilbc_muxer;
-extern AVInputFormat  ff_image2_demuxer;
-extern AVOutputFormat ff_image2_muxer;
-extern AVInputFormat  ff_image2pipe_demuxer;
-extern AVOutputFormat ff_image2pipe_muxer;
-extern AVInputFormat  ff_image2_alias_pix_demuxer;
-extern AVInputFormat  ff_image2_brender_pix_demuxer;
-extern AVInputFormat  ff_ingenient_demuxer;
-extern AVInputFormat  ff_ipmovie_demuxer;
-extern AVOutputFormat ff_ipod_muxer;
-extern AVInputFormat  ff_ipu_demuxer;
-extern AVInputFormat  ff_ircam_demuxer;
-extern AVOutputFormat ff_ircam_muxer;
-extern AVOutputFormat ff_ismv_muxer;
-extern AVInputFormat  ff_iss_demuxer;
-extern AVInputFormat  ff_iv8_demuxer;
-extern AVInputFormat  ff_ivf_demuxer;
-extern AVOutputFormat ff_ivf_muxer;
-extern AVInputFormat  ff_ivr_demuxer;
-extern AVInputFormat  ff_jacosub_demuxer;
-extern AVOutputFormat ff_jacosub_muxer;
-extern AVInputFormat  ff_jv_demuxer;
-extern AVInputFormat  ff_kux_demuxer;
-extern AVInputFormat  ff_kvag_demuxer;
-extern AVOutputFormat ff_kvag_muxer;
-extern AVOutputFormat ff_latm_muxer;
-extern AVInputFormat  ff_lmlm4_demuxer;
-extern AVInputFormat  ff_loas_demuxer;
-extern AVInputFormat  ff_luodat_demuxer;
-extern AVInputFormat  ff_lrc_demuxer;
-extern AVOutputFormat ff_lrc_muxer;
-extern AVInputFormat  ff_lvf_demuxer;
-extern AVInputFormat  ff_lxf_demuxer;
-extern AVInputFormat  ff_m4v_demuxer;
-extern AVOutputFormat ff_m4v_muxer;
-extern AVInputFormat  ff_mca_demuxer;
-extern AVInputFormat  ff_mcc_demuxer;
-extern AVOutputFormat ff_md5_muxer;
-extern AVInputFormat  ff_matroska_demuxer;
-extern AVOutputFormat ff_matroska_muxer;
-extern AVOutputFormat ff_matroska_audio_muxer;
-extern AVInputFormat  ff_mgsts_demuxer;
-extern AVInputFormat  ff_microdvd_demuxer;
-extern AVOutputFormat ff_microdvd_muxer;
-extern AVInputFormat  ff_mjpeg_demuxer;
-extern AVOutputFormat ff_mjpeg_muxer;
-extern AVInputFormat  ff_mjpeg_2000_demuxer;
-extern AVInputFormat  ff_mlp_demuxer;
-extern AVOutputFormat ff_mlp_muxer;
-extern AVInputFormat  ff_mlv_demuxer;
-extern AVInputFormat  ff_mm_demuxer;
-extern AVInputFormat  ff_mmf_demuxer;
-extern AVOutputFormat ff_mmf_muxer;
-extern AVInputFormat  ff_mods_demuxer;
-extern AVInputFormat  ff_moflex_demuxer;
-extern AVInputFormat  ff_mov_demuxer;
-extern AVOutputFormat ff_mov_muxer;
-extern AVOutputFormat ff_mp2_muxer;
-extern AVInputFormat  ff_mp3_demuxer;
-extern AVOutputFormat ff_mp3_muxer;
-extern AVOutputFormat ff_mp4_muxer;
-extern AVInputFormat  ff_mpc_demuxer;
-extern AVInputFormat  ff_mpc8_demuxer;
-extern AVOutputFormat ff_mpeg1system_muxer;
-extern AVOutputFormat ff_mpeg1vcd_muxer;
-extern AVOutputFormat ff_mpeg1video_muxer;
-extern AVOutputFormat ff_mpeg2dvd_muxer;
-extern AVOutputFormat ff_mpeg2svcd_muxer;
-extern AVOutputFormat ff_mpeg2video_muxer;
-extern AVOutputFormat ff_mpeg2vob_muxer;
-extern AVInputFormat  ff_mpegps_demuxer;
-extern AVInputFormat  ff_mpegts_demuxer;
-extern AVOutputFormat ff_mpegts_muxer;
-extern AVInputFormat  ff_mpegtsraw_demuxer;
-extern AVInputFormat  ff_mpegvideo_demuxer;
-extern AVInputFormat  ff_mpjpeg_demuxer;
-extern AVOutputFormat ff_mpjpeg_muxer;
-extern AVInputFormat  ff_mpl2_demuxer;
-extern AVInputFormat  ff_mpsub_demuxer;
-extern AVInputFormat  ff_msf_demuxer;
-extern AVInputFormat  ff_msnwc_tcp_demuxer;
-extern AVInputFormat  ff_msp_demuxer;
-extern AVInputFormat  ff_mtaf_demuxer;
-extern AVInputFormat  ff_mtv_demuxer;
-extern AVInputFormat  ff_musx_demuxer;
-extern AVInputFormat  ff_mv_demuxer;
-extern AVInputFormat  ff_mvi_demuxer;
-extern AVInputFormat  ff_mxf_demuxer;
-extern AVOutputFormat ff_mxf_muxer;
-extern AVOutputFormat ff_mxf_d10_muxer;
-extern AVOutputFormat ff_mxf_opatom_muxer;
-extern AVInputFormat  ff_mxg_demuxer;
-extern AVInputFormat  ff_nc_demuxer;
-extern AVInputFormat  ff_nistsphere_demuxer;
-extern AVInputFormat  ff_nsp_demuxer;
-extern AVInputFormat  ff_nsv_demuxer;
-extern AVOutputFormat ff_null_muxer;
-extern AVInputFormat  ff_nut_demuxer;
-extern AVOutputFormat ff_nut_muxer;
-extern AVInputFormat  ff_nuv_demuxer;
-extern AVInputFormat  ff_obu_demuxer;
-extern AVOutputFormat ff_oga_muxer;
-extern AVInputFormat  ff_ogg_demuxer;
-extern AVOutputFormat ff_ogg_muxer;
-extern AVOutputFormat ff_ogv_muxer;
-extern AVInputFormat  ff_oma_demuxer;
-extern AVOutputFormat ff_oma_muxer;
-extern AVOutputFormat ff_opus_muxer;
-extern AVInputFormat  ff_paf_demuxer;
-extern AVInputFormat  ff_pcm_alaw_demuxer;
-extern AVOutputFormat ff_pcm_alaw_muxer;
-extern AVInputFormat  ff_pcm_mulaw_demuxer;
-extern AVOutputFormat ff_pcm_mulaw_muxer;
-extern AVInputFormat  ff_pcm_vidc_demuxer;
-extern AVOutputFormat ff_pcm_vidc_muxer;
-extern AVInputFormat  ff_pcm_f64be_demuxer;
-extern AVOutputFormat ff_pcm_f64be_muxer;
-extern AVInputFormat  ff_pcm_f64le_demuxer;
-extern AVOutputFormat ff_pcm_f64le_muxer;
-extern AVInputFormat  ff_pcm_f32be_demuxer;
-extern AVOutputFormat ff_pcm_f32be_muxer;
-extern AVInputFormat  ff_pcm_f32le_demuxer;
-extern AVOutputFormat ff_pcm_f32le_muxer;
-extern AVInputFormat  ff_pcm_s32be_demuxer;
-extern AVOutputFormat ff_pcm_s32be_muxer;
-extern AVInputFormat  ff_pcm_s32le_demuxer;
-extern AVOutputFormat ff_pcm_s32le_muxer;
-extern AVInputFormat  ff_pcm_s24be_demuxer;
-extern AVOutputFormat ff_pcm_s24be_muxer;
-extern AVInputFormat  ff_pcm_s24le_demuxer;
-extern AVOutputFormat ff_pcm_s24le_muxer;
-extern AVInputFormat  ff_pcm_s16be_demuxer;
-extern AVOutputFormat ff_pcm_s16be_muxer;
-extern AVInputFormat  ff_pcm_s16le_demuxer;
-extern AVOutputFormat ff_pcm_s16le_muxer;
-extern AVInputFormat  ff_pcm_s8_demuxer;
-extern AVOutputFormat ff_pcm_s8_muxer;
-extern AVInputFormat  ff_pcm_u32be_demuxer;
-extern AVOutputFormat ff_pcm_u32be_muxer;
-extern AVInputFormat  ff_pcm_u32le_demuxer;
-extern AVOutputFormat ff_pcm_u32le_muxer;
-extern AVInputFormat  ff_pcm_u24be_demuxer;
-extern AVOutputFormat ff_pcm_u24be_muxer;
-extern AVInputFormat  ff_pcm_u24le_demuxer;
-extern AVOutputFormat ff_pcm_u24le_muxer;
-extern AVInputFormat  ff_pcm_u16be_demuxer;
-extern AVOutputFormat ff_pcm_u16be_muxer;
-extern AVInputFormat  ff_pcm_u16le_demuxer;
-extern AVOutputFormat ff_pcm_u16le_muxer;
-extern AVInputFormat  ff_pcm_u8_demuxer;
-extern AVOutputFormat ff_pcm_u8_muxer;
-extern AVInputFormat  ff_pjs_demuxer;
-extern AVInputFormat  ff_pmp_demuxer;
-extern AVInputFormat  ff_pp_bnk_demuxer;
-extern AVOutputFormat ff_psp_muxer;
-extern AVInputFormat  ff_pva_demuxer;
-extern AVInputFormat  ff_pvf_demuxer;
-extern AVInputFormat  ff_qcp_demuxer;
-extern AVInputFormat  ff_r3d_demuxer;
-extern AVInputFormat  ff_rawvideo_demuxer;
-extern AVOutputFormat ff_rawvideo_muxer;
-extern AVInputFormat  ff_realtext_demuxer;
-extern AVInputFormat  ff_redspark_demuxer;
-extern AVInputFormat  ff_rl2_demuxer;
-extern AVInputFormat  ff_rm_demuxer;
-extern AVOutputFormat ff_rm_muxer;
-extern AVInputFormat  ff_roq_demuxer;
-extern AVOutputFormat ff_roq_muxer;
-extern AVInputFormat  ff_rpl_demuxer;
-extern AVInputFormat  ff_rsd_demuxer;
-extern AVInputFormat  ff_rso_demuxer;
-extern AVOutputFormat ff_rso_muxer;
-extern AVInputFormat  ff_rtp_demuxer;
-extern AVOutputFormat ff_rtp_muxer;
-extern AVOutputFormat ff_rtp_mpegts_muxer;
-extern AVInputFormat  ff_rtsp_demuxer;
-extern AVOutputFormat ff_rtsp_muxer;
-extern AVInputFormat  ff_s337m_demuxer;
-extern AVInputFormat  ff_sami_demuxer;
-extern AVInputFormat  ff_sap_demuxer;
-extern AVOutputFormat ff_sap_muxer;
-extern AVInputFormat  ff_sbc_demuxer;
-extern AVOutputFormat ff_sbc_muxer;
-extern AVInputFormat  ff_sbg_demuxer;
-extern AVInputFormat  ff_scc_demuxer;
-extern AVOutputFormat ff_scc_muxer;
-extern AVInputFormat  ff_sdp_demuxer;
-extern AVInputFormat  ff_sdr2_demuxer;
-extern AVInputFormat  ff_sds_demuxer;
-extern AVInputFormat  ff_sdx_demuxer;
-extern AVInputFormat  ff_segafilm_demuxer;
-extern AVOutputFormat ff_segafilm_muxer;
-extern AVOutputFormat ff_segment_muxer;
-extern AVOutputFormat ff_stream_segment_muxer;
-extern AVInputFormat  ff_ser_demuxer;
-extern AVInputFormat  ff_sga_demuxer;
-extern AVInputFormat  ff_shorten_demuxer;
-extern AVInputFormat  ff_siff_demuxer;
-extern AVInputFormat  ff_simbiosis_imx_demuxer;
-extern AVInputFormat  ff_sln_demuxer;
-extern AVInputFormat  ff_smacker_demuxer;
-extern AVInputFormat  ff_smjpeg_demuxer;
-extern AVOutputFormat ff_smjpeg_muxer;
-extern AVOutputFormat ff_smoothstreaming_muxer;
-extern AVInputFormat  ff_smush_demuxer;
-extern AVInputFormat  ff_sol_demuxer;
-extern AVInputFormat  ff_sox_demuxer;
-extern AVOutputFormat ff_sox_muxer;
-extern AVOutputFormat ff_spx_muxer;
-extern AVInputFormat  ff_spdif_demuxer;
-extern AVOutputFormat ff_spdif_muxer;
-extern AVInputFormat  ff_srt_demuxer;
-extern AVOutputFormat ff_srt_muxer;
-extern AVInputFormat  ff_str_demuxer;
-extern AVInputFormat  ff_stl_demuxer;
-extern AVOutputFormat ff_streamhash_muxer;
-extern AVInputFormat  ff_subviewer1_demuxer;
-extern AVInputFormat  ff_subviewer_demuxer;
-extern AVInputFormat  ff_sup_demuxer;
-extern AVOutputFormat ff_sup_muxer;
-extern AVInputFormat  ff_svag_demuxer;
-extern AVInputFormat  ff_svs_demuxer;
-extern AVInputFormat  ff_swf_demuxer;
-extern AVOutputFormat ff_swf_muxer;
-extern AVInputFormat  ff_tak_demuxer;
-extern AVOutputFormat ff_tee_muxer;
-extern AVInputFormat  ff_tedcaptions_demuxer;
-extern AVOutputFormat ff_tg2_muxer;
-extern AVOutputFormat ff_tgp_muxer;
-extern AVInputFormat  ff_thp_demuxer;
-extern AVInputFormat  ff_threedostr_demuxer;
-extern AVInputFormat  ff_tiertexseq_demuxer;
-extern AVOutputFormat ff_mkvtimestamp_v2_muxer;
-extern AVInputFormat  ff_tmv_demuxer;
-extern AVInputFormat  ff_truehd_demuxer;
-extern AVOutputFormat ff_truehd_muxer;
-extern AVInputFormat  ff_tta_demuxer;
-extern AVOutputFormat ff_tta_muxer;
-extern AVOutputFormat ff_ttml_muxer;
-extern AVInputFormat  ff_txd_demuxer;
-extern AVInputFormat  ff_tty_demuxer;
-extern AVInputFormat  ff_ty_demuxer;
-extern AVOutputFormat ff_uncodedframecrc_muxer;
-extern AVInputFormat  ff_v210_demuxer;
-extern AVInputFormat  ff_v210x_demuxer;
-extern AVInputFormat  ff_vag_demuxer;
-extern AVInputFormat  ff_vc1_demuxer;
-extern AVOutputFormat ff_vc1_muxer;
-extern AVInputFormat  ff_vc1t_demuxer;
-extern AVOutputFormat ff_vc1t_muxer;
-extern AVInputFormat  ff_vividas_demuxer;
-extern AVInputFormat  ff_vivo_demuxer;
-extern AVInputFormat  ff_vmd_demuxer;
-extern AVInputFormat  ff_vobsub_demuxer;
-extern AVInputFormat  ff_voc_demuxer;
-extern AVOutputFormat ff_voc_muxer;
-extern AVInputFormat  ff_vpk_demuxer;
-extern AVInputFormat  ff_vplayer_demuxer;
-extern AVInputFormat  ff_vqf_demuxer;
-extern AVInputFormat  ff_w64_demuxer;
-extern AVOutputFormat ff_w64_muxer;
-extern AVInputFormat  ff_wav_demuxer;
-extern AVOutputFormat ff_wav_muxer;
-extern AVInputFormat  ff_wc3_demuxer;
-extern AVOutputFormat ff_webm_muxer;
-extern AVInputFormat  ff_webm_dash_manifest_demuxer;
-extern AVOutputFormat ff_webm_dash_manifest_muxer;
-extern AVOutputFormat ff_webm_chunk_muxer;
-extern AVOutputFormat ff_webp_muxer;
-extern AVInputFormat  ff_webvtt_demuxer;
-extern AVOutputFormat ff_webvtt_muxer;
-extern AVInputFormat  ff_wsaud_demuxer;
-extern AVInputFormat  ff_wsd_demuxer;
-extern AVInputFormat  ff_wsvqa_demuxer;
-extern AVInputFormat  ff_wtv_demuxer;
-extern AVOutputFormat ff_wtv_muxer;
-extern AVInputFormat  ff_wve_demuxer;
-extern AVInputFormat  ff_wv_demuxer;
-extern AVOutputFormat ff_wv_muxer;
-extern AVInputFormat  ff_xa_demuxer;
-extern AVInputFormat  ff_xbin_demuxer;
-extern AVInputFormat  ff_xmv_demuxer;
-extern AVInputFormat  ff_xvag_demuxer;
-extern AVInputFormat  ff_xwma_demuxer;
-extern AVInputFormat  ff_yop_demuxer;
-extern AVInputFormat  ff_yuv4mpegpipe_demuxer;
-extern AVOutputFormat ff_yuv4mpegpipe_muxer;
+extern const AVOutputFormat ff_a64_muxer;
+extern const AVInputFormat  ff_aa_demuxer;
+extern const AVInputFormat  ff_aac_demuxer;
+extern const AVInputFormat  ff_aax_demuxer;
+extern const AVInputFormat  ff_ac3_demuxer;
+extern const AVOutputFormat ff_ac3_muxer;
+extern const AVInputFormat  ff_ace_demuxer;
+extern const AVInputFormat  ff_acm_demuxer;
+extern const AVInputFormat  ff_act_demuxer;
+extern const AVInputFormat  ff_adf_demuxer;
+extern const AVInputFormat  ff_adp_demuxer;
+extern const AVInputFormat  ff_ads_demuxer;
+extern const AVOutputFormat ff_adts_muxer;
+extern const AVInputFormat  ff_adx_demuxer;
+extern const AVOutputFormat ff_adx_muxer;
+extern const AVInputFormat  ff_aea_demuxer;
+extern const AVInputFormat  ff_afc_demuxer;
+extern const AVInputFormat  ff_aiff_demuxer;
+extern const AVOutputFormat ff_aiff_muxer;
+extern const AVInputFormat  ff_aix_demuxer;
+extern const AVInputFormat  ff_alp_demuxer;
+extern const AVOutputFormat ff_alp_muxer;
+extern const AVInputFormat  ff_amr_demuxer;
+extern const AVOutputFormat ff_amr_muxer;
+extern const AVInputFormat  ff_amrnb_demuxer;
+extern const AVInputFormat  ff_amrwb_demuxer;
+extern const AVOutputFormat ff_amv_muxer;
+extern const AVInputFormat  ff_anm_demuxer;
+extern const AVInputFormat  ff_apc_demuxer;
+extern const AVInputFormat  ff_ape_demuxer;
+extern const AVInputFormat  ff_apm_demuxer;
+extern const AVOutputFormat ff_apm_muxer;
+extern const AVInputFormat  ff_apng_demuxer;
+extern const AVOutputFormat ff_apng_muxer;
+extern const AVInputFormat  ff_aptx_demuxer;
+extern const AVOutputFormat ff_aptx_muxer;
+extern const AVInputFormat  ff_aptx_hd_demuxer;
+extern const AVOutputFormat ff_aptx_hd_muxer;
+extern const AVInputFormat  ff_aqtitle_demuxer;
+extern const AVInputFormat  ff_argo_asf_demuxer;
+extern const AVOutputFormat ff_argo_asf_muxer;
+extern const AVInputFormat  ff_argo_brp_demuxer;
+extern const AVInputFormat  ff_asf_demuxer;
+extern const AVOutputFormat ff_asf_muxer;
+extern const AVInputFormat  ff_asf_o_demuxer;
+extern const AVInputFormat  ff_ass_demuxer;
+extern const AVOutputFormat ff_ass_muxer;
+extern const AVInputFormat  ff_ast_demuxer;
+extern const AVOutputFormat ff_ast_muxer;
+extern const AVOutputFormat ff_asf_stream_muxer;
+extern const AVInputFormat  ff_au_demuxer;
+extern const AVOutputFormat ff_au_muxer;
+extern const AVInputFormat  ff_av1_demuxer;
+extern const AVInputFormat  ff_avi_demuxer;
+extern const AVOutputFormat ff_avi_muxer;
+extern const AVInputFormat  ff_avisynth_demuxer;
+extern const AVOutputFormat ff_avm2_muxer;
+extern const AVInputFormat  ff_avr_demuxer;
+extern const AVInputFormat  ff_avs_demuxer;
+extern const AVInputFormat  ff_avs2_demuxer;
+extern const AVOutputFormat ff_avs2_muxer;
+extern const AVInputFormat  ff_avs3_demuxer;
+extern const AVInputFormat  ff_bethsoftvid_demuxer;
+extern const AVInputFormat  ff_bfi_demuxer;
+extern const AVInputFormat  ff_bintext_demuxer;
+extern const AVInputFormat  ff_bink_demuxer;
+extern const AVInputFormat  ff_binka_demuxer;
+extern const AVInputFormat  ff_bit_demuxer;
+extern const AVOutputFormat ff_bit_muxer;
+extern const AVInputFormat  ff_bmv_demuxer;
+extern const AVInputFormat  ff_bfstm_demuxer;
+extern const AVInputFormat  ff_brstm_demuxer;
+extern const AVInputFormat  ff_boa_demuxer;
+extern const AVInputFormat  ff_c93_demuxer;
+extern const AVInputFormat  ff_caf_demuxer;
+extern const AVOutputFormat ff_caf_muxer;
+extern const AVInputFormat  ff_cavsvideo_demuxer;
+extern const AVOutputFormat ff_cavsvideo_muxer;
+extern const AVInputFormat  ff_cdg_demuxer;
+extern const AVInputFormat  ff_cdxl_demuxer;
+extern const AVInputFormat  ff_cine_demuxer;
+extern const AVInputFormat  ff_codec2_demuxer;
+extern const AVOutputFormat ff_codec2_muxer;
+extern const AVInputFormat  ff_codec2raw_demuxer;
+extern const AVOutputFormat ff_codec2raw_muxer;
+extern const AVInputFormat  ff_concat_demuxer;
+extern const AVOutputFormat ff_crc_muxer;
+extern const AVInputFormat  ff_dash_demuxer;
+extern const AVOutputFormat ff_dash_muxer;
+extern const AVInputFormat  ff_data_demuxer;
+extern const AVOutputFormat ff_data_muxer;
+extern const AVInputFormat  ff_daud_demuxer;
+extern const AVOutputFormat ff_daud_muxer;
+extern const AVInputFormat  ff_dcstr_demuxer;
+extern const AVInputFormat  ff_derf_demuxer;
+extern const AVInputFormat  ff_dfa_demuxer;
+extern const AVInputFormat  ff_dhav_demuxer;
+extern const AVInputFormat  ff_dirac_demuxer;
+extern const AVOutputFormat ff_dirac_muxer;
+extern const AVInputFormat  ff_dnxhd_demuxer;
+extern const AVOutputFormat ff_dnxhd_muxer;
+extern const AVInputFormat  ff_dsf_demuxer;
+extern const AVInputFormat  ff_dsicin_demuxer;
+extern const AVInputFormat  ff_dss_demuxer;
+extern const AVInputFormat  ff_dts_demuxer;
+extern const AVOutputFormat ff_dts_muxer;
+extern const AVInputFormat  ff_dtshd_demuxer;
+extern const AVInputFormat  ff_dv_demuxer;
+extern const AVOutputFormat ff_dv_muxer;
+extern const AVInputFormat  ff_dvbsub_demuxer;
+extern const AVInputFormat  ff_dvbtxt_demuxer;
+extern const AVInputFormat  ff_dxa_demuxer;
+extern const AVInputFormat  ff_ea_demuxer;
+extern const AVInputFormat  ff_ea_cdata_demuxer;
+extern const AVInputFormat  ff_eac3_demuxer;
+extern const AVOutputFormat ff_eac3_muxer;
+extern const AVInputFormat  ff_epaf_demuxer;
+extern const AVOutputFormat ff_f4v_muxer;
+extern const AVInputFormat  ff_ffmetadata_demuxer;
+extern const AVOutputFormat ff_ffmetadata_muxer;
+extern const AVOutputFormat ff_fifo_muxer;
+extern const AVOutputFormat ff_fifo_test_muxer;
+extern const AVInputFormat  ff_filmstrip_demuxer;
+extern const AVOutputFormat ff_filmstrip_muxer;
+extern const AVInputFormat  ff_fits_demuxer;
+extern const AVOutputFormat ff_fits_muxer;
+extern const AVInputFormat  ff_flac_demuxer;
+extern const AVOutputFormat ff_flac_muxer;
+extern const AVInputFormat  ff_flic_demuxer;
+extern const AVInputFormat  ff_flv_demuxer;
+extern const AVOutputFormat ff_flv_muxer;
+extern const AVInputFormat  ff_live_flv_demuxer;
+extern const AVInputFormat  ff_fourxm_demuxer;
+extern const AVOutputFormat ff_framecrc_muxer;
+extern const AVOutputFormat ff_framehash_muxer;
+extern const AVOutputFormat ff_framemd5_muxer;
+extern const AVInputFormat  ff_frm_demuxer;
+extern const AVInputFormat  ff_fsb_demuxer;
+extern const AVInputFormat  ff_fwse_demuxer;
+extern const AVInputFormat  ff_g722_demuxer;
+extern const AVOutputFormat ff_g722_muxer;
+extern const AVInputFormat  ff_g723_1_demuxer;
+extern const AVOutputFormat ff_g723_1_muxer;
+extern const AVInputFormat  ff_g726_demuxer;
+extern const AVOutputFormat ff_g726_muxer;
+extern const AVInputFormat  ff_g726le_demuxer;
+extern const AVOutputFormat ff_g726le_muxer;
+extern const AVInputFormat  ff_g729_demuxer;
+extern const AVInputFormat  ff_gdv_demuxer;
+extern const AVInputFormat  ff_genh_demuxer;
+extern const AVInputFormat  ff_gif_demuxer;
+extern const AVOutputFormat ff_gif_muxer;
+extern const AVInputFormat  ff_gsm_demuxer;
+extern const AVOutputFormat ff_gsm_muxer;
+extern const AVInputFormat  ff_gxf_demuxer;
+extern const AVOutputFormat ff_gxf_muxer;
+extern const AVInputFormat  ff_h261_demuxer;
+extern const AVOutputFormat ff_h261_muxer;
+extern const AVInputFormat  ff_h263_demuxer;
+extern const AVOutputFormat ff_h263_muxer;
+extern const AVInputFormat  ff_h264_demuxer;
+extern const AVOutputFormat ff_h264_muxer;
+extern const AVOutputFormat ff_hash_muxer;
+extern const AVInputFormat  ff_hca_demuxer;
+extern const AVInputFormat  ff_hcom_demuxer;
+extern const AVOutputFormat ff_hds_muxer;
+extern const AVInputFormat  ff_hevc_demuxer;
+extern const AVOutputFormat ff_hevc_muxer;
+extern const AVInputFormat  ff_hls_demuxer;
+extern const AVOutputFormat ff_hls_muxer;
+extern const AVInputFormat  ff_hnm_demuxer;
+extern const AVInputFormat  ff_ico_demuxer;
+extern const AVOutputFormat ff_ico_muxer;
+extern const AVInputFormat  ff_idcin_demuxer;
+extern const AVInputFormat  ff_idf_demuxer;
+extern const AVInputFormat  ff_iff_demuxer;
+extern const AVInputFormat  ff_ifv_demuxer;
+extern const AVInputFormat  ff_ilbc_demuxer;
+extern const AVOutputFormat ff_ilbc_muxer;
+extern const AVInputFormat  ff_image2_demuxer;
+extern const AVOutputFormat ff_image2_muxer;
+extern const AVInputFormat  ff_image2pipe_demuxer;
+extern const AVOutputFormat ff_image2pipe_muxer;
+extern const AVInputFormat  ff_image2_alias_pix_demuxer;
+extern const AVInputFormat  ff_image2_brender_pix_demuxer;
+extern const AVInputFormat  ff_ingenient_demuxer;
+extern const AVInputFormat  ff_ipmovie_demuxer;
+extern const AVOutputFormat ff_ipod_muxer;
+extern const AVInputFormat  ff_ipu_demuxer;
+extern const AVInputFormat  ff_ircam_demuxer;
+extern const AVOutputFormat ff_ircam_muxer;
+extern const AVOutputFormat ff_ismv_muxer;
+extern const AVInputFormat  ff_iss_demuxer;
+extern const AVInputFormat  ff_iv8_demuxer;
+extern const AVInputFormat  ff_ivf_demuxer;
+extern const AVOutputFormat ff_ivf_muxer;
+extern const AVInputFormat  ff_ivr_demuxer;
+extern const AVInputFormat  ff_jacosub_demuxer;
+extern const AVOutputFormat ff_jacosub_muxer;
+extern const AVInputFormat  ff_jv_demuxer;
+extern const AVInputFormat  ff_kux_demuxer;
+extern const AVInputFormat  ff_kvag_demuxer;
+extern const AVOutputFormat ff_kvag_muxer;
+extern const AVOutputFormat ff_latm_muxer;
+extern const AVInputFormat  ff_lmlm4_demuxer;
+extern const AVInputFormat  ff_loas_demuxer;
+extern const AVInputFormat  ff_luodat_demuxer;
+extern const AVInputFormat  ff_lrc_demuxer;
+extern const AVOutputFormat ff_lrc_muxer;
+extern const AVInputFormat  ff_lvf_demuxer;
+extern const AVInputFormat  ff_lxf_demuxer;
+extern const AVInputFormat  ff_m4v_demuxer;
+extern const AVOutputFormat ff_m4v_muxer;
+extern const AVInputFormat  ff_mca_demuxer;
+extern const AVInputFormat  ff_mcc_demuxer;
+extern const AVOutputFormat ff_md5_muxer;
+extern const AVInputFormat  ff_matroska_demuxer;
+extern const AVOutputFormat ff_matroska_muxer;
+extern const AVOutputFormat ff_matroska_audio_muxer;
+extern const AVInputFormat  ff_mgsts_demuxer;
+extern const AVInputFormat  ff_microdvd_demuxer;
+extern const AVOutputFormat ff_microdvd_muxer;
+extern const AVInputFormat  ff_mjpeg_demuxer;
+extern const AVOutputFormat ff_mjpeg_muxer;
+extern const AVInputFormat  ff_mjpeg_2000_demuxer;
+extern const AVInputFormat  ff_mlp_demuxer;
+extern const AVOutputFormat ff_mlp_muxer;
+extern const AVInputFormat  ff_mlv_demuxer;
+extern const AVInputFormat  ff_mm_demuxer;
+extern const AVInputFormat  ff_mmf_demuxer;
+extern const AVOutputFormat ff_mmf_muxer;
+extern const AVInputFormat  ff_mods_demuxer;
+extern const AVInputFormat  ff_moflex_demuxer;
+extern const AVInputFormat  ff_mov_demuxer;
+extern const AVOutputFormat ff_mov_muxer;
+extern const AVOutputFormat ff_mp2_muxer;
+extern const AVInputFormat  ff_mp3_demuxer;
+extern const AVOutputFormat ff_mp3_muxer;
+extern const AVOutputFormat ff_mp4_muxer;
+extern const AVInputFormat  ff_mpc_demuxer;
+extern const AVInputFormat  ff_mpc8_demuxer;
+extern const AVOutputFormat ff_mpeg1system_muxer;
+extern const AVOutputFormat ff_mpeg1vcd_muxer;
+extern const AVOutputFormat ff_mpeg1video_muxer;
+extern const AVOutputFormat ff_mpeg2dvd_muxer;
+extern const AVOutputFormat ff_mpeg2svcd_muxer;
+extern const AVOutputFormat ff_mpeg2video_muxer;
+extern const AVOutputFormat ff_mpeg2vob_muxer;
+extern const AVInputFormat  ff_mpegps_demuxer;
+extern const AVInputFormat  ff_mpegts_demuxer;
+extern const AVOutputFormat ff_mpegts_muxer;
+extern const AVInputFormat  ff_mpegtsraw_demuxer;
+extern const AVInputFormat  ff_mpegvideo_demuxer;
+extern const AVInputFormat  ff_mpjpeg_demuxer;
+extern const AVOutputFormat ff_mpjpeg_muxer;
+extern const AVInputFormat  ff_mpl2_demuxer;
+extern const AVInputFormat  ff_mpsub_demuxer;
+extern const AVInputFormat  ff_msf_demuxer;
+extern const AVInputFormat  ff_msnwc_tcp_demuxer;
+extern const AVInputFormat  ff_msp_demuxer;
+extern const AVInputFormat  ff_mtaf_demuxer;
+extern const AVInputFormat  ff_mtv_demuxer;
+extern const AVInputFormat  ff_musx_demuxer;
+extern const AVInputFormat  ff_mv_demuxer;
+extern const AVInputFormat  ff_mvi_demuxer;
+extern const AVInputFormat  ff_mxf_demuxer;
+extern const AVOutputFormat ff_mxf_muxer;
+extern const AVOutputFormat ff_mxf_d10_muxer;
+extern const AVOutputFormat ff_mxf_opatom_muxer;
+extern const AVInputFormat  ff_mxg_demuxer;
+extern const AVInputFormat  ff_nc_demuxer;
+extern const AVInputFormat  ff_nistsphere_demuxer;
+extern const AVInputFormat  ff_nsp_demuxer;
+extern const AVInputFormat  ff_nsv_demuxer;
+extern const AVOutputFormat ff_null_muxer;
+extern const AVInputFormat  ff_nut_demuxer;
+extern const AVOutputFormat ff_nut_muxer;
+extern const AVInputFormat  ff_nuv_demuxer;
+extern const AVInputFormat  ff_obu_demuxer;
+extern const AVOutputFormat ff_oga_muxer;
+extern const AVInputFormat  ff_ogg_demuxer;
+extern const AVOutputFormat ff_ogg_muxer;
+extern const AVOutputFormat ff_ogv_muxer;
+extern const AVInputFormat  ff_oma_demuxer;
+extern const AVOutputFormat ff_oma_muxer;
+extern const AVOutputFormat ff_opus_muxer;
+extern const AVInputFormat  ff_paf_demuxer;
+extern const AVInputFormat  ff_pcm_alaw_demuxer;
+extern const AVOutputFormat ff_pcm_alaw_muxer;
+extern const AVInputFormat  ff_pcm_mulaw_demuxer;
+extern const AVOutputFormat ff_pcm_mulaw_muxer;
+extern const AVInputFormat  ff_pcm_vidc_demuxer;
+extern const AVOutputFormat ff_pcm_vidc_muxer;
+extern const AVInputFormat  ff_pcm_f64be_demuxer;
+extern const AVOutputFormat ff_pcm_f64be_muxer;
+extern const AVInputFormat  ff_pcm_f64le_demuxer;
+extern const AVOutputFormat ff_pcm_f64le_muxer;
+extern const AVInputFormat  ff_pcm_f32be_demuxer;
+extern const AVOutputFormat ff_pcm_f32be_muxer;
+extern const AVInputFormat  ff_pcm_f32le_demuxer;
+extern const AVOutputFormat ff_pcm_f32le_muxer;
+extern const AVInputFormat  ff_pcm_s32be_demuxer;
+extern const AVOutputFormat ff_pcm_s32be_muxer;
+extern const AVInputFormat  ff_pcm_s32le_demuxer;
+extern const AVOutputFormat ff_pcm_s32le_muxer;
+extern const AVInputFormat  ff_pcm_s24be_demuxer;
+extern const AVOutputFormat ff_pcm_s24be_muxer;
+extern const AVInputFormat  ff_pcm_s24le_demuxer;
+extern const AVOutputFormat ff_pcm_s24le_muxer;
+extern const AVInputFormat  ff_pcm_s16be_demuxer;
+extern const AVOutputFormat ff_pcm_s16be_muxer;
+extern const AVInputFormat  ff_pcm_s16le_demuxer;
+extern const AVOutputFormat ff_pcm_s16le_muxer;
+extern const AVInputFormat  ff_pcm_s8_demuxer;
+extern const AVOutputFormat ff_pcm_s8_muxer;
+extern const AVInputFormat  ff_pcm_u32be_demuxer;
+extern const AVOutputFormat ff_pcm_u32be_muxer;
+extern const AVInputFormat  ff_pcm_u32le_demuxer;
+extern const AVOutputFormat ff_pcm_u32le_muxer;
+extern const AVInputFormat  ff_pcm_u24be_demuxer;
+extern const AVOutputFormat ff_pcm_u24be_muxer;
+extern const AVInputFormat  ff_pcm_u24le_demuxer;
+extern const AVOutputFormat ff_pcm_u24le_muxer;
+extern const AVInputFormat  ff_pcm_u16be_demuxer;
+extern const AVOutputFormat ff_pcm_u16be_muxer;
+extern const AVInputFormat  ff_pcm_u16le_demuxer;
+extern const AVOutputFormat ff_pcm_u16le_muxer;
+extern const AVInputFormat  ff_pcm_u8_demuxer;
+extern const AVOutputFormat ff_pcm_u8_muxer;
+extern const AVInputFormat  ff_pjs_demuxer;
+extern const AVInputFormat  ff_pmp_demuxer;
+extern const AVInputFormat  ff_pp_bnk_demuxer;
+extern const AVOutputFormat ff_psp_muxer;
+extern const AVInputFormat  ff_pva_demuxer;
+extern const AVInputFormat  ff_pvf_demuxer;
+extern const AVInputFormat  ff_qcp_demuxer;
+extern const AVInputFormat  ff_r3d_demuxer;
+extern const AVInputFormat  ff_rawvideo_demuxer;
+extern const AVOutputFormat ff_rawvideo_muxer;
+extern const AVInputFormat  ff_realtext_demuxer;
+extern const AVInputFormat  ff_redspark_demuxer;
+extern const AVInputFormat  ff_rl2_demuxer;
+extern const AVInputFormat  ff_rm_demuxer;
+extern const AVOutputFormat ff_rm_muxer;
+extern const AVInputFormat  ff_roq_demuxer;
+extern const AVOutputFormat ff_roq_muxer;
+extern const AVInputFormat  ff_rpl_demuxer;
+extern const AVInputFormat  ff_rsd_demuxer;
+extern const AVInputFormat  ff_rso_demuxer;
+extern const AVOutputFormat ff_rso_muxer;
+extern const AVInputFormat  ff_rtp_demuxer;
+extern const AVOutputFormat ff_rtp_muxer;
+extern const AVOutputFormat ff_rtp_mpegts_muxer;
+extern const AVInputFormat  ff_rtsp_demuxer;
+extern const AVOutputFormat ff_rtsp_muxer;
+extern const AVInputFormat  ff_s337m_demuxer;
+extern const AVInputFormat  ff_sami_demuxer;
+extern const AVInputFormat  ff_sap_demuxer;
+extern const AVOutputFormat ff_sap_muxer;
+extern const AVInputFormat  ff_sbc_demuxer;
+extern const AVOutputFormat ff_sbc_muxer;
+extern const AVInputFormat  ff_sbg_demuxer;
+extern const AVInputFormat  ff_scc_demuxer;
+extern const AVOutputFormat ff_scc_muxer;
+extern const AVInputFormat  ff_sdp_demuxer;
+extern const AVInputFormat  ff_sdr2_demuxer;
+extern const AVInputFormat  ff_sds_demuxer;
+extern const AVInputFormat  ff_sdx_demuxer;
+extern const AVInputFormat  ff_segafilm_demuxer;
+extern const AVOutputFormat ff_segafilm_muxer;
+extern const AVOutputFormat ff_segment_muxer;
+extern const AVOutputFormat ff_stream_segment_muxer;
+extern const AVInputFormat  ff_ser_demuxer;
+extern const AVInputFormat  ff_sga_demuxer;
+extern const AVInputFormat  ff_shorten_demuxer;
+extern const AVInputFormat  ff_siff_demuxer;
+extern const AVInputFormat  ff_simbiosis_imx_demuxer;
+extern const AVInputFormat  ff_sln_demuxer;
+extern const AVInputFormat  ff_smacker_demuxer;
+extern const AVInputFormat  ff_smjpeg_demuxer;
+extern const AVOutputFormat ff_smjpeg_muxer;
+extern const AVOutputFormat ff_smoothstreaming_muxer;
+extern const AVInputFormat  ff_smush_demuxer;
+extern const AVInputFormat  ff_sol_demuxer;
+extern const AVInputFormat  ff_sox_demuxer;
+extern const AVOutputFormat ff_sox_muxer;
+extern const AVOutputFormat ff_spx_muxer;
+extern const AVInputFormat  ff_spdif_demuxer;
+extern const AVOutputFormat ff_spdif_muxer;
+extern const AVInputFormat  ff_srt_demuxer;
+extern const AVOutputFormat ff_srt_muxer;
+extern const AVInputFormat  ff_str_demuxer;
+extern const AVInputFormat  ff_stl_demuxer;
+extern const AVOutputFormat ff_streamhash_muxer;
+extern const AVInputFormat  ff_subviewer1_demuxer;
+extern const AVInputFormat  ff_subviewer_demuxer;
+extern const AVInputFormat  ff_sup_demuxer;
+extern const AVOutputFormat ff_sup_muxer;
+extern const AVInputFormat  ff_svag_demuxer;
+extern const AVInputFormat  ff_svs_demuxer;
+extern const AVInputFormat  ff_swf_demuxer;
+extern const AVOutputFormat ff_swf_muxer;
+extern const AVInputFormat  ff_tak_demuxer;
+extern const AVOutputFormat ff_tee_muxer;
+extern const AVInputFormat  ff_tedcaptions_demuxer;
+extern const AVOutputFormat ff_tg2_muxer;
+extern const AVOutputFormat ff_tgp_muxer;
+extern const AVInputFormat  ff_thp_demuxer;
+extern const AVInputFormat  ff_threedostr_demuxer;
+extern const AVInputFormat  ff_tiertexseq_demuxer;
+extern const AVOutputFormat ff_mkvtimestamp_v2_muxer;
+extern const AVInputFormat  ff_tmv_demuxer;
+extern const AVInputFormat  ff_truehd_demuxer;
+extern const AVOutputFormat ff_truehd_muxer;
+extern const AVInputFormat  ff_tta_demuxer;
+extern const AVOutputFormat ff_tta_muxer;
+extern const AVOutputFormat ff_ttml_muxer;
+extern const AVInputFormat  ff_txd_demuxer;
+extern const AVInputFormat  ff_tty_demuxer;
+extern const AVInputFormat  ff_ty_demuxer;
+extern const AVOutputFormat ff_uncodedframecrc_muxer;
+extern const AVInputFormat  ff_v210_demuxer;
+extern const AVInputFormat  ff_v210x_demuxer;
+extern const AVInputFormat  ff_vag_demuxer;
+extern const AVInputFormat  ff_vc1_demuxer;
+extern const AVOutputFormat ff_vc1_muxer;
+extern const AVInputFormat  ff_vc1t_demuxer;
+extern const AVOutputFormat ff_vc1t_muxer;
+extern const AVInputFormat  ff_vividas_demuxer;
+extern const AVInputFormat  ff_vivo_demuxer;
+extern const AVInputFormat  ff_vmd_demuxer;
+extern const AVInputFormat  ff_vobsub_demuxer;
+extern const AVInputFormat  ff_voc_demuxer;
+extern const AVOutputFormat ff_voc_muxer;
+extern const AVInputFormat  ff_vpk_demuxer;
+extern const AVInputFormat  ff_vplayer_demuxer;
+extern const AVInputFormat  ff_vqf_demuxer;
+extern const AVInputFormat  ff_w64_demuxer;
+extern const AVOutputFormat ff_w64_muxer;
+extern const AVInputFormat  ff_wav_demuxer;
+extern const AVOutputFormat ff_wav_muxer;
+extern const AVInputFormat  ff_wc3_demuxer;
+extern const AVOutputFormat ff_webm_muxer;
+extern const AVInputFormat  ff_webm_dash_manifest_demuxer;
+extern const AVOutputFormat ff_webm_dash_manifest_muxer;
+extern const AVOutputFormat ff_webm_chunk_muxer;
+extern const AVOutputFormat ff_webp_muxer;
+extern const AVInputFormat  ff_webvtt_demuxer;
+extern const AVOutputFormat ff_webvtt_muxer;
+extern const AVInputFormat  ff_wsaud_demuxer;
+extern const AVInputFormat  ff_wsd_demuxer;
+extern const AVInputFormat  ff_wsvqa_demuxer;
+extern const AVInputFormat  ff_wtv_demuxer;
+extern const AVOutputFormat ff_wtv_muxer;
+extern const AVInputFormat  ff_wve_demuxer;
+extern const AVInputFormat  ff_wv_demuxer;
+extern const AVOutputFormat ff_wv_muxer;
+extern const AVInputFormat  ff_xa_demuxer;
+extern const AVInputFormat  ff_xbin_demuxer;
+extern const AVInputFormat  ff_xmv_demuxer;
+extern const AVInputFormat  ff_xvag_demuxer;
+extern const AVInputFormat  ff_xwma_demuxer;
+extern const AVInputFormat  ff_yop_demuxer;
+extern const AVInputFormat  ff_yuv4mpegpipe_demuxer;
+extern const AVOutputFormat ff_yuv4mpegpipe_muxer;
 /* image demuxers */
-extern AVInputFormat  ff_image_bmp_pipe_demuxer;
-extern AVInputFormat  ff_image_cri_pipe_demuxer;
-extern AVInputFormat  ff_image_dds_pipe_demuxer;
-extern AVInputFormat  ff_image_dpx_pipe_demuxer;
-extern AVInputFormat  ff_image_exr_pipe_demuxer;
-extern AVInputFormat  ff_image_gif_pipe_demuxer;
-extern AVInputFormat  ff_image_j2k_pipe_demuxer;
-extern AVInputFormat  ff_image_jpeg_pipe_demuxer;
-extern AVInputFormat  ff_image_jpegls_pipe_demuxer;
-extern AVInputFormat  ff_image_pam_pipe_demuxer;
-extern AVInputFormat  ff_image_pbm_pipe_demuxer;
-extern AVInputFormat  ff_image_pcx_pipe_demuxer;
-extern AVInputFormat  ff_image_pgmyuv_pipe_demuxer;
-extern AVInputFormat  ff_image_pgm_pipe_demuxer;
-extern AVInputFormat  ff_image_pgx_pipe_demuxer;
-extern AVInputFormat  ff_image_photocd_pipe_demuxer;
-extern AVInputFormat  ff_image_pictor_pipe_demuxer;
-extern AVInputFormat  ff_image_png_pipe_demuxer;
-extern AVInputFormat  ff_image_ppm_pipe_demuxer;
-extern AVInputFormat  ff_image_psd_pipe_demuxer;
-extern AVInputFormat  ff_image_qdraw_pipe_demuxer;
-extern AVInputFormat  ff_image_sgi_pipe_demuxer;
-extern AVInputFormat  ff_image_svg_pipe_demuxer;
-extern AVInputFormat  ff_image_sunrast_pipe_demuxer;
-extern AVInputFormat  ff_image_tiff_pipe_demuxer;
-extern AVInputFormat  ff_image_webp_pipe_demuxer;
-extern AVInputFormat  ff_image_xbm_pipe_demuxer;
-extern AVInputFormat  ff_image_xpm_pipe_demuxer;
-extern AVInputFormat  ff_image_xwd_pipe_demuxer;
+extern const AVInputFormat  ff_image_bmp_pipe_demuxer;
+extern const AVInputFormat  ff_image_cri_pipe_demuxer;
+extern const AVInputFormat  ff_image_dds_pipe_demuxer;
+extern const AVInputFormat  ff_image_dpx_pipe_demuxer;
+extern const AVInputFormat  ff_image_exr_pipe_demuxer;
+extern const AVInputFormat  ff_image_gif_pipe_demuxer;
+extern const AVInputFormat  ff_image_j2k_pipe_demuxer;
+extern const AVInputFormat  ff_image_jpeg_pipe_demuxer;
+extern const AVInputFormat  ff_image_jpegls_pipe_demuxer;
+extern const AVInputFormat  ff_image_pam_pipe_demuxer;
+extern const AVInputFormat  ff_image_pbm_pipe_demuxer;
+extern const AVInputFormat  ff_image_pcx_pipe_demuxer;
+extern const AVInputFormat  ff_image_pgmyuv_pipe_demuxer;
+extern const AVInputFormat  ff_image_pgm_pipe_demuxer;
+extern const AVInputFormat  ff_image_pgx_pipe_demuxer;
+extern const AVInputFormat  ff_image_photocd_pipe_demuxer;
+extern const AVInputFormat  ff_image_pictor_pipe_demuxer;
+extern const AVInputFormat  ff_image_png_pipe_demuxer;
+extern const AVInputFormat  ff_image_ppm_pipe_demuxer;
+extern const AVInputFormat  ff_image_psd_pipe_demuxer;
+extern const AVInputFormat  ff_image_qdraw_pipe_demuxer;
+extern const AVInputFormat  ff_image_sgi_pipe_demuxer;
+extern const AVInputFormat  ff_image_svg_pipe_demuxer;
+extern const AVInputFormat  ff_image_sunrast_pipe_demuxer;
+extern const AVInputFormat  ff_image_tiff_pipe_demuxer;
+extern const AVInputFormat  ff_image_webp_pipe_demuxer;
+extern const AVInputFormat  ff_image_xbm_pipe_demuxer;
+extern const AVInputFormat  ff_image_xpm_pipe_demuxer;
+extern const AVInputFormat  ff_image_xwd_pipe_demuxer;
 
 /* external libraries */
-extern AVOutputFormat ff_chromaprint_muxer;
-extern AVInputFormat  ff_libgme_demuxer;
-extern AVInputFormat  ff_libmodplug_demuxer;
-extern AVInputFormat  ff_libopenmpt_demuxer;
-extern AVInputFormat  ff_vapoursynth_demuxer;
+extern const AVOutputFormat ff_chromaprint_muxer;
+extern const AVInputFormat  ff_libgme_demuxer;
+extern const AVInputFormat  ff_libmodplug_demuxer;
+extern const AVInputFormat  ff_libopenmpt_demuxer;
+extern const AVInputFormat  ff_vapoursynth_demuxer;
 
 #include "libavformat/muxer_list.c"
 #include "libavformat/demuxer_list.c"
diff --git a/libavformat/alp.c b/libavformat/alp.c
index 222cc246a2..bc19f02083 100644
--- a/libavformat/alp.c
+++ b/libavformat/alp.c
@@ -163,7 +163,7 @@ static int alp_seek(AVFormatContext *s, int stream_index,
     return avio_seek(s->pb, hdr->header_size + 8, SEEK_SET);
 }
 
-AVInputFormat ff_alp_demuxer = {
+const AVInputFormat ff_alp_demuxer = {
     .name           = "alp",
     .long_name      = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
     .priv_data_size = sizeof(ALPHeader),
@@ -291,7 +291,7 @@ static const AVClass alp_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT
 };
 
-AVOutputFormat ff_alp_muxer = {
+const AVOutputFormat ff_alp_muxer = {
     .name           = "alp",
     .long_name      = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
     .extensions     = "tun,pcm",
diff --git a/libavformat/amr.c b/libavformat/amr.c
index e4f8e4d860..836b276fd5 100644
--- a/libavformat/amr.c
+++ b/libavformat/amr.c
@@ -159,7 +159,7 @@ static int amr_read_packet(AVFormatContext *s, AVPacket *pkt)
 }
 
 #if CONFIG_AMR_DEMUXER
-AVInputFormat ff_amr_demuxer = {
+const AVInputFormat ff_amr_demuxer = {
     .name           = "amr",
     .long_name      = NULL_IF_CONFIG_SMALL("3GPP AMR"),
     .priv_data_size = sizeof(AMRContext),
@@ -215,7 +215,7 @@ static int amrnb_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_amrnb_demuxer = {
+const AVInputFormat ff_amrnb_demuxer = {
     .name           = "amrnb",
     .long_name      = NULL_IF_CONFIG_SMALL("raw AMR-NB"),
     .priv_data_size = sizeof(AMRContext),
@@ -271,7 +271,7 @@ static int amrwb_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_amrwb_demuxer = {
+const AVInputFormat ff_amrwb_demuxer = {
     .name           = "amrwb",
     .long_name      = NULL_IF_CONFIG_SMALL("raw AMR-WB"),
     .priv_data_size = sizeof(AMRContext),
@@ -283,7 +283,7 @@ AVInputFormat ff_amrwb_demuxer = {
 #endif
 
 #if CONFIG_AMR_MUXER
-AVOutputFormat ff_amr_muxer = {
+const AVOutputFormat ff_amr_muxer = {
     .name              = "amr",
     .long_name         = NULL_IF_CONFIG_SMALL("3GPP AMR"),
     .mime_type         = "audio/amr",
diff --git a/libavformat/amvenc.c b/libavformat/amvenc.c
index 362b474fa6..cb03f00ed7 100644
--- a/libavformat/amvenc.c
+++ b/libavformat/amvenc.c
@@ -404,7 +404,7 @@ static int amv_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_amv_muxer = {
+const AVOutputFormat ff_amv_muxer = {
     .name           = "amv",
     .long_name      = NULL_IF_CONFIG_SMALL("AMV"),
     .mime_type      = "video/amv",
diff --git a/libavformat/anm.c b/libavformat/anm.c
index 9af3a41794..1c29bbca29 100644
--- a/libavformat/anm.c
+++ b/libavformat/anm.c
@@ -214,7 +214,7 @@ repeat:
     return 0;
 }
 
-AVInputFormat ff_anm_demuxer = {
+const AVInputFormat ff_anm_demuxer = {
     .name           = "anm",
     .long_name      = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
     .priv_data_size = sizeof(AnmDemuxContext),
diff --git a/libavformat/apc.c b/libavformat/apc.c
index 7210bfbb56..56151bb59a 100644
--- a/libavformat/apc.c
+++ b/libavformat/apc.c
@@ -83,7 +83,7 @@ static int apc_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_apc_demuxer = {
+const AVInputFormat ff_apc_demuxer = {
     .name           = "apc",
     .long_name      = NULL_IF_CONFIG_SMALL("CRYO APC"),
     .read_probe     = apc_probe,
diff --git a/libavformat/ape.c b/libavformat/ape.c
index 4c161235fe..a4cfd01807 100644
--- a/libavformat/ape.c
+++ b/libavformat/ape.c
@@ -450,7 +450,7 @@ static int ape_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
     return 0;
 }
 
-AVInputFormat ff_ape_demuxer = {
+const AVInputFormat ff_ape_demuxer = {
     .name           = "ape",
     .long_name      = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
     .priv_data_size = sizeof(APEContext),
diff --git a/libavformat/apm.c b/libavformat/apm.c
index 38a0f6382a..6ae53b8712 100644
--- a/libavformat/apm.c
+++ b/libavformat/apm.c
@@ -201,7 +201,7 @@ static int apm_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_apm_demuxer = {
+const AVInputFormat ff_apm_demuxer = {
     .name           = "apm",
     .long_name      = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
     .read_probe     = apm_probe,
@@ -303,7 +303,7 @@ static int apm_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_apm_muxer = {
+const AVOutputFormat ff_apm_muxer = {
     .name           = "apm",
     .long_name      = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
     .extensions     = "apm",
diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c
index bf8343faf3..e84f74e9d0 100644
--- a/libavformat/apngdec.c
+++ b/libavformat/apngdec.c
@@ -421,7 +421,7 @@ static const AVClass demuxer_class = {
     .category   = AV_CLASS_CATEGORY_DEMUXER,
 };
 
-AVInputFormat ff_apng_demuxer = {
+const AVInputFormat ff_apng_demuxer = {
     .name           = "apng",
     .long_name      = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
     .priv_data_size = sizeof(APNGDemuxContext),
diff --git a/libavformat/apngenc.c b/libavformat/apngenc.c
index 643bf73300..c97c475274 100644
--- a/libavformat/apngenc.c
+++ b/libavformat/apngenc.c
@@ -294,7 +294,7 @@ static const AVClass apng_muxer_class = {
     .option     = options,
 };
 
-AVOutputFormat ff_apng_muxer = {
+const AVOutputFormat ff_apng_muxer = {
     .name           = "apng",
     .long_name      = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
     .mime_type      = "image/png",
diff --git a/libavformat/aptxdec.c b/libavformat/aptxdec.c
index a262cd9ebe..489194f49d 100644
--- a/libavformat/aptxdec.c
+++ b/libavformat/aptxdec.c
@@ -95,7 +95,7 @@ static const AVClass aptx_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_aptx_demuxer = {
+const AVInputFormat ff_aptx_demuxer = {
     .name           = "aptx",
     .long_name      = NULL_IF_CONFIG_SMALL("raw aptX"),
     .extensions     = "aptx",
@@ -115,7 +115,7 @@ static const AVClass aptx_hd_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_aptx_hd_demuxer = {
+const AVInputFormat ff_aptx_hd_demuxer = {
     .name           = "aptx_hd",
     .long_name      = NULL_IF_CONFIG_SMALL("raw aptX HD"),
     .extensions     = "aptxhd",
diff --git a/libavformat/aqtitledec.c b/libavformat/aqtitledec.c
index 81630d73b0..de28097f2f 100644
--- a/libavformat/aqtitledec.c
+++ b/libavformat/aqtitledec.c
@@ -137,7 +137,7 @@ static const AVClass aqt_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_aqtitle_demuxer = {
+const AVInputFormat ff_aqtitle_demuxer = {
     .name           = "aqtitle",
     .long_name      = NULL_IF_CONFIG_SMALL("AQTitle subtitles"),
     .priv_data_size = sizeof(AQTitleContext),
diff --git a/libavformat/argo_asf.c b/libavformat/argo_asf.c
index 8e2bf21c71..c3ac49fdc2 100644
--- a/libavformat/argo_asf.c
+++ b/libavformat/argo_asf.c
@@ -271,7 +271,7 @@ static int argo_asf_seek(AVFormatContext *s, int stream_index,
  * - Argonaut Sound File?
  * - Audio Stream File?
  */
-AVInputFormat ff_argo_asf_demuxer = {
+const AVInputFormat ff_argo_asf_demuxer = {
     .name           = "argo_asf",
     .long_name      = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
     .priv_data_size = sizeof(ArgoASFDemuxContext),
@@ -468,7 +468,7 @@ static const AVClass argo_asf_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT
 };
 
-AVOutputFormat ff_argo_asf_muxer = {
+const AVOutputFormat ff_argo_asf_muxer = {
     .name           = "argo_asf",
     .long_name      = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
     /*
diff --git a/libavformat/argo_brp.c b/libavformat/argo_brp.c
index 6d6da851e9..059418cd1d 100644
--- a/libavformat/argo_brp.c
+++ b/libavformat/argo_brp.c
@@ -413,7 +413,7 @@ static int argo_brp_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_argo_brp_demuxer = {
+const AVInputFormat ff_argo_brp_demuxer = {
     .name           = "argo_brp",
     .long_name      = NULL_IF_CONFIG_SMALL("Argonaut Games BRP"),
     .priv_data_size = sizeof(ArgoBRPDemuxContext),
diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c
index 27162e9559..2e806dd452 100644
--- a/libavformat/asfdec_f.c
+++ b/libavformat/asfdec_f.c
@@ -1606,7 +1606,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_asf_demuxer = {
+const AVInputFormat ff_asf_demuxer = {
     .name           = "asf",
     .long_name      = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
     .priv_data_size = sizeof(ASFContext),
diff --git a/libavformat/asfdec_o.c b/libavformat/asfdec_o.c
index 6cfcd8b088..16d911dc25 100644
--- a/libavformat/asfdec_o.c
+++ b/libavformat/asfdec_o.c
@@ -1671,7 +1671,7 @@ failed:
     return ret;
 }
 
-AVInputFormat ff_asf_o_demuxer = {
+const AVInputFormat ff_asf_o_demuxer = {
     .name           = "asf_o",
     .long_name      = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
     .priv_data_size = sizeof(ASFContext),
diff --git a/libavformat/asfenc.c b/libavformat/asfenc.c
index 23a09efe05..8e29a3b733 100644
--- a/libavformat/asfenc.c
+++ b/libavformat/asfenc.c
@@ -1162,7 +1162,7 @@ static const AVClass asf_muxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_asf_muxer = {
+const AVOutputFormat ff_asf_muxer = {
     .name           = "asf",
     .long_name      = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
     .mime_type      = "video/x-ms-asf",
@@ -1187,7 +1187,7 @@ static const AVClass asf_stream_muxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_asf_stream_muxer = {
+const AVOutputFormat ff_asf_stream_muxer = {
     .name           = "asf_stream",
     .long_name      = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
     .mime_type      = "video/x-ms-asf",
diff --git a/libavformat/assdec.c b/libavformat/assdec.c
index 8fb9e8e501..4a9650fe76 100644
--- a/libavformat/assdec.c
+++ b/libavformat/assdec.c
@@ -182,7 +182,7 @@ static int ass_read_seek(AVFormatContext *s, int stream_index,
                                    min_ts, ts, max_ts, flags);
 }
 
-AVInputFormat ff_ass_demuxer = {
+const AVInputFormat ff_ass_demuxer = {
     .name           = "ass",
     .long_name      = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
     .priv_data_size = sizeof(ASSContext),
diff --git a/libavformat/assenc.c b/libavformat/assenc.c
index 68c3396e5a..1600f0a02b 100644
--- a/libavformat/assenc.c
+++ b/libavformat/assenc.c
@@ -226,7 +226,7 @@ static const AVClass ass_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_ass_muxer = {
+const AVOutputFormat ff_ass_muxer = {
     .name           = "ass",
     .long_name      = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
     .mime_type      = "text/x-ass",
diff --git a/libavformat/astdec.c b/libavformat/astdec.c
index 610c9385aa..629372acf1 100644
--- a/libavformat/astdec.c
+++ b/libavformat/astdec.c
@@ -110,7 +110,7 @@ static int ast_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_ast_demuxer = {
+const AVInputFormat ff_ast_demuxer = {
     .name           = "ast",
     .long_name      = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
     .read_probe     = ast_probe,
diff --git a/libavformat/astenc.c b/libavformat/astenc.c
index 69541bc0ca..cf75b48b21 100644
--- a/libavformat/astenc.c
+++ b/libavformat/astenc.c
@@ -196,7 +196,7 @@ static const AVClass ast_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_ast_muxer = {
+const AVOutputFormat ff_ast_muxer = {
     .name              = "ast",
     .long_name         = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
     .extensions        = "ast",
diff --git a/libavformat/au.c b/libavformat/au.c
index c2c1b7a3a3..ff8f841cce 100644
--- a/libavformat/au.c
+++ b/libavformat/au.c
@@ -226,7 +226,7 @@ static int au_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_au_demuxer = {
+const AVInputFormat ff_au_demuxer = {
     .name        = "au",
     .long_name   = NULL_IF_CONFIG_SMALL("Sun AU"),
     .read_probe  = au_probe,
@@ -328,7 +328,7 @@ static int au_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_au_muxer = {
+const AVOutputFormat ff_au_muxer = {
     .name          = "au",
     .long_name     = NULL_IF_CONFIG_SMALL("Sun AU"),
     .mime_type     = "audio/basic",
diff --git a/libavformat/av1dec.c b/libavformat/av1dec.c
index 5ae81b34d4..b71d5d0e19 100644
--- a/libavformat/av1dec.c
+++ b/libavformat/av1dec.c
@@ -281,7 +281,7 @@ static const AVClass annexb_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_av1_demuxer = {
+const AVInputFormat ff_av1_demuxer = {
     .name           = "av1",
     .long_name      = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
     .priv_data_size = sizeof(AnnexBContext),
@@ -468,7 +468,7 @@ static const AVClass obu_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_obu_demuxer = {
+const AVInputFormat ff_obu_demuxer = {
     .name           = "obu",
     .long_name      = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
     .priv_data_size = sizeof(ObuContext),
diff --git a/libavformat/avidec.c b/libavformat/avidec.c
index ac020109c6..d5dcab6193 100644
--- a/libavformat/avidec.c
+++ b/libavformat/avidec.c
@@ -1969,7 +1969,7 @@ static int avi_probe(const AVProbeData *p)
     return 0;
 }
 
-AVInputFormat ff_avi_demuxer = {
+const AVInputFormat ff_avi_demuxer = {
     .name           = "avi",
     .long_name      = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
     .priv_data_size = sizeof(AVIContext),
diff --git a/libavformat/avienc.c b/libavformat/avienc.c
index ac11dd9cb2..9eb072ce12 100644
--- a/libavformat/avienc.c
+++ b/libavformat/avienc.c
@@ -1011,7 +1011,7 @@ static const AVClass avi_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_avi_muxer = {
+const AVOutputFormat ff_avi_muxer = {
     .name           = "avi",
     .long_name      = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
     .mime_type      = "video/x-msvideo",
diff --git a/libavformat/avisynth.c b/libavformat/avisynth.c
index 21ae8c183a..350ac6d11d 100644
--- a/libavformat/avisynth.c
+++ b/libavformat/avisynth.c
@@ -878,7 +878,7 @@ static int avisynth_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_avisynth_demuxer = {
+const AVInputFormat ff_avisynth_demuxer = {
     .name           = "avisynth",
     .long_name      = NULL_IF_CONFIG_SMALL("AviSynth script"),
     .priv_data_size = sizeof(AviSynthContext),
diff --git a/libavformat/avr.c b/libavformat/avr.c
index c4ce70142a..6fdcf68952 100644
--- a/libavformat/avr.c
+++ b/libavformat/avr.c
@@ -87,7 +87,7 @@ static int avr_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_avr_demuxer = {
+const AVInputFormat ff_avr_demuxer = {
     .name           = "avr",
     .long_name      = NULL_IF_CONFIG_SMALL("AVR (Audio Visual Research)"),
     .read_probe     = avr_probe,
diff --git a/libavformat/avs.c b/libavformat/avs.c
index 097c171908..ab47980a11 100644
--- a/libavformat/avs.c
+++ b/libavformat/avs.c
@@ -224,7 +224,7 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt)
     }
 }
 
-AVInputFormat ff_avs_demuxer = {
+const AVInputFormat ff_avs_demuxer = {
     .name           = "avs",
     .long_name      = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"),
     .priv_data_size = sizeof(AvsFormat),
diff --git a/libavformat/bethsoftvid.c b/libavformat/bethsoftvid.c
index 709603daf5..65aab11ad6 100644
--- a/libavformat/bethsoftvid.c
+++ b/libavformat/bethsoftvid.c
@@ -291,7 +291,7 @@ static int vid_read_packet(AVFormatContext *s,
     }
 }
 
-AVInputFormat ff_bethsoftvid_demuxer = {
+const AVInputFormat ff_bethsoftvid_demuxer = {
     .name           = "bethsoftvid",
     .long_name      = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"),
     .priv_data_size = sizeof(BVID_DemuxContext),
diff --git a/libavformat/bfi.c b/libavformat/bfi.c
index 2dab986f3a..bff6f0154e 100644
--- a/libavformat/bfi.c
+++ b/libavformat/bfi.c
@@ -174,7 +174,7 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)
     return ret;
 }
 
-AVInputFormat ff_bfi_demuxer = {
+const AVInputFormat ff_bfi_demuxer = {
     .name           = "bfi",
     .long_name      = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
     .priv_data_size = sizeof(BFIContext),
diff --git a/libavformat/bink.c b/libavformat/bink.c
index 99bbd27ef3..2488aeae2f 100644
--- a/libavformat/bink.c
+++ b/libavformat/bink.c
@@ -323,7 +323,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
     return 0;
 }
 
-AVInputFormat ff_bink_demuxer = {
+const AVInputFormat ff_bink_demuxer = {
     .name           = "bink",
     .long_name      = NULL_IF_CONFIG_SMALL("Bink"),
     .priv_data_size = sizeof(BinkDemuxContext),
diff --git a/libavformat/binka.c b/libavformat/binka.c
index 13ca9ca4b5..d4cfee0368 100644
--- a/libavformat/binka.c
+++ b/libavformat/binka.c
@@ -89,7 +89,7 @@ static int binka_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_binka_demuxer = {
+const AVInputFormat ff_binka_demuxer = {
     .name           = "binka",
     .long_name      = NULL_IF_CONFIG_SMALL("Bink Audio"),
     .read_probe     = binka_probe,
diff --git a/libavformat/bintext.c b/libavformat/bintext.c
index bc0f6bd099..1270c7fb2c 100644
--- a/libavformat/bintext.c
+++ b/libavformat/bintext.c
@@ -394,7 +394,7 @@ static const AVOption options[] = {
 }}
 
 #if CONFIG_BINTEXT_DEMUXER
-AVInputFormat ff_bintext_demuxer = {
+const AVInputFormat ff_bintext_demuxer = {
     .name           = "bin",
     .long_name      = NULL_IF_CONFIG_SMALL("Binary text"),
     .priv_data_size = sizeof(BinDemuxContext),
@@ -406,7 +406,7 @@ AVInputFormat ff_bintext_demuxer = {
 #endif
 
 #if CONFIG_XBIN_DEMUXER
-AVInputFormat ff_xbin_demuxer = {
+const AVInputFormat ff_xbin_demuxer = {
     .name           = "xbin",
     .long_name      = NULL_IF_CONFIG_SMALL("eXtended BINary text (XBIN)"),
     .priv_data_size = sizeof(BinDemuxContext),
@@ -418,7 +418,7 @@ AVInputFormat ff_xbin_demuxer = {
 #endif
 
 #if CONFIG_ADF_DEMUXER
-AVInputFormat ff_adf_demuxer = {
+const AVInputFormat ff_adf_demuxer = {
     .name           = "adf",
     .long_name      = NULL_IF_CONFIG_SMALL("Artworx Data Format"),
     .priv_data_size = sizeof(BinDemuxContext),
@@ -430,7 +430,7 @@ AVInputFormat ff_adf_demuxer = {
 #endif
 
 #if CONFIG_IDF_DEMUXER
-AVInputFormat ff_idf_demuxer = {
+const AVInputFormat ff_idf_demuxer = {
     .name           = "idf",
     .long_name      = NULL_IF_CONFIG_SMALL("iCE Draw File"),
     .priv_data_size = sizeof(BinDemuxContext),
diff --git a/libavformat/bit.c b/libavformat/bit.c
index 2dc7d4f3f7..380cbd37cd 100644
--- a/libavformat/bit.c
+++ b/libavformat/bit.c
@@ -109,7 +109,7 @@ static int read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_bit_demuxer = {
+const AVInputFormat ff_bit_demuxer = {
     .name        = "bit",
     .long_name   = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
     .read_probe  = probe,
@@ -155,7 +155,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_bit_muxer = {
+const AVOutputFormat ff_bit_muxer = {
     .name         = "bit",
     .long_name    = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
     .mime_type    = "audio/bit",
diff --git a/libavformat/bmv.c b/libavformat/bmv.c
index 9f03fba058..873ecb027c 100644
--- a/libavformat/bmv.c
+++ b/libavformat/bmv.c
@@ -125,7 +125,7 @@ static int bmv_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_bmv_demuxer = {
+const AVInputFormat ff_bmv_demuxer = {
     .name           = "bmv",
     .long_name      = NULL_IF_CONFIG_SMALL("Discworld II BMV"),
     .priv_data_size = sizeof(BMVContext),
diff --git a/libavformat/boadec.c b/libavformat/boadec.c
index 74a6ceecb1..69d17763ef 100644
--- a/libavformat/boadec.c
+++ b/libavformat/boadec.c
@@ -75,7 +75,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, st->codecpar->block_align);
 }
 
-AVInputFormat ff_boa_demuxer = {
+const AVInputFormat ff_boa_demuxer = {
     .name           = "boa",
     .long_name      = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
     .read_probe     = probe,
diff --git a/libavformat/brstm.c b/libavformat/brstm.c
index 6754c1712e..f1f0f86ed5 100644
--- a/libavformat/brstm.c
+++ b/libavformat/brstm.c
@@ -481,7 +481,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_brstm_demuxer = {
+const AVInputFormat ff_brstm_demuxer = {
     .name           = "brstm",
     .long_name      = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"),
     .priv_data_size = sizeof(BRSTMDemuxContext),
@@ -493,7 +493,7 @@ AVInputFormat ff_brstm_demuxer = {
     .extensions     = "brstm",
 };
 
-AVInputFormat ff_bfstm_demuxer = {
+const AVInputFormat ff_bfstm_demuxer = {
     .name           = "bfstm",
     .long_name      = NULL_IF_CONFIG_SMALL("BFSTM (Binary Cafe Stream)"),
     .priv_data_size = sizeof(BRSTMDemuxContext),
diff --git a/libavformat/c93.c b/libavformat/c93.c
index 256b9800ca..9ecf1427a9 100644
--- a/libavformat/c93.c
+++ b/libavformat/c93.c
@@ -185,7 +185,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_c93_demuxer = {
+const AVInputFormat ff_c93_demuxer = {
     .name           = "c93",
     .long_name      = NULL_IF_CONFIG_SMALL("Interplay C93"),
     .priv_data_size = sizeof(C93DemuxContext),
diff --git a/libavformat/cafdec.c b/libavformat/cafdec.c
index 2a9299d777..958e8098c6 100644
--- a/libavformat/cafdec.c
+++ b/libavformat/cafdec.c
@@ -457,7 +457,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_caf_demuxer = {
+const AVInputFormat ff_caf_demuxer = {
     .name           = "caf",
     .long_name      = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
     .priv_data_size = sizeof(CafContext),
diff --git a/libavformat/cafenc.c b/libavformat/cafenc.c
index 7e44797a52..422beaf93d 100644
--- a/libavformat/cafenc.c
+++ b/libavformat/cafenc.c
@@ -263,7 +263,7 @@ static int caf_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_caf_muxer = {
+const AVOutputFormat ff_caf_muxer = {
     .name           = "caf",
     .long_name      = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
     .mime_type      = "audio/x-caf",
diff --git a/libavformat/cdg.c b/libavformat/cdg.c
index 8fb287a998..36f25e7f66 100644
--- a/libavformat/cdg.c
+++ b/libavformat/cdg.c
@@ -67,7 +67,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_cdg_demuxer = {
+const AVInputFormat ff_cdg_demuxer = {
     .name           = "cdg",
     .long_name      = NULL_IF_CONFIG_SMALL("CD Graphics"),
     .read_header    = read_header,
diff --git a/libavformat/cdxl.c b/libavformat/cdxl.c
index 33b6d5cbad..c42e0d3545 100644
--- a/libavformat/cdxl.c
+++ b/libavformat/cdxl.c
@@ -258,7 +258,7 @@ static const AVClass cdxl_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_cdxl_demuxer = {
+const AVInputFormat ff_cdxl_demuxer = {
     .name           = "cdxl",
     .long_name      = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
     .priv_data_size = sizeof(CDXLDemuxContext),
diff --git a/libavformat/chromaprint.c b/libavformat/chromaprint.c
index 423f5b7d61..399de725d3 100644
--- a/libavformat/chromaprint.c
+++ b/libavformat/chromaprint.c
@@ -179,7 +179,7 @@ static const AVClass chromaprint_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_chromaprint_muxer = {
+const AVOutputFormat ff_chromaprint_muxer = {
     .name              = "chromaprint",
     .long_name         = NULL_IF_CONFIG_SMALL("Chromaprint"),
     .priv_data_size    = sizeof(ChromaprintMuxContext),
diff --git a/libavformat/cinedec.c b/libavformat/cinedec.c
index e5c6468c39..f1fae6e5db 100644
--- a/libavformat/cinedec.c
+++ b/libavformat/cinedec.c
@@ -322,7 +322,7 @@ static int cine_read_seek(AVFormatContext *avctx, int stream_index, int64_t time
     return 0;
 }
 
-AVInputFormat ff_cine_demuxer = {
+const AVInputFormat ff_cine_demuxer = {
     .name           = "cine",
     .long_name      = NULL_IF_CONFIG_SMALL("Phantom Cine"),
     .priv_data_size = sizeof(CineDemuxContext),
diff --git a/libavformat/codec2.c b/libavformat/codec2.c
index 0c2ad3aa01..ce249d4470 100644
--- a/libavformat/codec2.c
+++ b/libavformat/codec2.c
@@ -300,7 +300,7 @@ static const AVClass codec2raw_demux_class = {
 };
 
 #if CONFIG_CODEC2_DEMUXER
-AVInputFormat ff_codec2_demuxer = {
+const AVInputFormat ff_codec2_demuxer = {
     .name           = "codec2",
     .long_name      = NULL_IF_CONFIG_SMALL("codec2 .c2 demuxer"),
     .priv_data_size = sizeof(Codec2Context),
@@ -316,7 +316,7 @@ AVInputFormat ff_codec2_demuxer = {
 #endif
 
 #if CONFIG_CODEC2_MUXER
-AVOutputFormat ff_codec2_muxer = {
+const AVOutputFormat ff_codec2_muxer = {
     .name           = "codec2",
     .long_name      = NULL_IF_CONFIG_SMALL("codec2 .c2 muxer"),
     .priv_data_size = sizeof(Codec2Context),
@@ -331,7 +331,7 @@ AVOutputFormat ff_codec2_muxer = {
 #endif
 
 #if CONFIG_CODEC2RAW_DEMUXER
-AVInputFormat ff_codec2raw_demuxer = {
+const AVInputFormat ff_codec2raw_demuxer = {
     .name           = "codec2raw",
     .long_name      = NULL_IF_CONFIG_SMALL("raw codec2 demuxer"),
     .priv_data_size = sizeof(Codec2Context),
diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c
index fb70c21dc2..65fbe0a854 100644
--- a/libavformat/concatdec.c
+++ b/libavformat/concatdec.c
@@ -775,7 +775,7 @@ static const AVClass concat_class = {
 };
 
 
-AVInputFormat ff_concat_demuxer = {
+const AVInputFormat ff_concat_demuxer = {
     .name           = "concat",
     .long_name      = NULL_IF_CONFIG_SMALL("Virtual concatenation script"),
     .priv_data_size = sizeof(ConcatContext),
diff --git a/libavformat/crcenc.c b/libavformat/crcenc.c
index 3fdfea5207..4fdc448141 100644
--- a/libavformat/crcenc.c
+++ b/libavformat/crcenc.c
@@ -56,7 +56,7 @@ static int crc_write_trailer(struct AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_crc_muxer = {
+const AVOutputFormat ff_crc_muxer = {
     .name              = "crc",
     .long_name         = NULL_IF_CONFIG_SMALL("CRC testing"),
     .priv_data_size    = sizeof(CRCState),
diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index 39e7810e42..bc27c96c97 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -2397,7 +2397,7 @@ static const AVClass dash_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_dash_demuxer = {
+const AVInputFormat ff_dash_demuxer = {
     .name           = "dash",
     .long_name      = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
     .priv_class     = &dash_class,
diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
index 0ceaa5fdfd..07f191e2a2 100644
--- a/libavformat/dashenc.c
+++ b/libavformat/dashenc.c
@@ -2383,7 +2383,7 @@ static const AVClass dash_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_dash_muxer = {
+const AVOutputFormat ff_dash_muxer = {
     .name           = "dash",
     .long_name      = NULL_IF_CONFIG_SMALL("DASH Muxer"),
     .extensions     = "mpd",
diff --git a/libavformat/dauddec.c b/libavformat/dauddec.c
index 69196b0a1a..6a5962c238 100644
--- a/libavformat/dauddec.c
+++ b/libavformat/dauddec.c
@@ -50,7 +50,7 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) {
     return ret;
 }
 
-AVInputFormat ff_daud_demuxer = {
+const AVInputFormat ff_daud_demuxer = {
     .name           = "daud",
     .long_name      = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
     .read_header    = daud_header,
diff --git a/libavformat/daudenc.c b/libavformat/daudenc.c
index b489659a80..183a08ba30 100644
--- a/libavformat/daudenc.c
+++ b/libavformat/daudenc.c
@@ -42,7 +42,7 @@ static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_daud_muxer = {
+const AVOutputFormat ff_daud_muxer = {
     .name         = "daud",
     .long_name    = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
     .extensions   = "302",
diff --git a/libavformat/dcstr.c b/libavformat/dcstr.c
index 9ddccc7f2d..71dce08bf7 100644
--- a/libavformat/dcstr.c
+++ b/libavformat/dcstr.c
@@ -78,7 +78,7 @@ static int dcstr_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_dcstr_demuxer = {
+const AVInputFormat ff_dcstr_demuxer = {
     .name           = "dcstr",
     .long_name      = NULL_IF_CONFIG_SMALL("Sega DC STR"),
     .read_probe     = dcstr_probe,
diff --git a/libavformat/derf.c b/libavformat/derf.c
index 58bbf5b791..a09433ba07 100644
--- a/libavformat/derf.c
+++ b/libavformat/derf.c
@@ -68,7 +68,7 @@ static int derf_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_derf_demuxer = {
+const AVInputFormat ff_derf_demuxer = {
     .name           = "derf",
     .long_name      = NULL_IF_CONFIG_SMALL("Xilam DERF"),
     .read_probe     = derf_probe,
diff --git a/libavformat/dfa.c b/libavformat/dfa.c
index bd4ef2dafe..9808c9b617 100644
--- a/libavformat/dfa.c
+++ b/libavformat/dfa.c
@@ -120,7 +120,7 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_dfa_demuxer = {
+const AVInputFormat ff_dfa_demuxer = {
     .name           = "dfa",
     .long_name      = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
     .read_probe     = dfa_probe,
diff --git a/libavformat/dhav.c b/libavformat/dhav.c
index 526331ae4c..92bbfab7c5 100644
--- a/libavformat/dhav.c
+++ b/libavformat/dhav.c
@@ -451,7 +451,7 @@ static int dhav_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_dhav_demuxer = {
+const AVInputFormat ff_dhav_demuxer = {
     .name           = "dhav",
     .long_name      = NULL_IF_CONFIG_SMALL("Video DAV"),
     .priv_data_size = sizeof(DHAVContext),
diff --git a/libavformat/dsfdec.c b/libavformat/dsfdec.c
index 2fca25ef32..690fd02bb3 100644
--- a/libavformat/dsfdec.c
+++ b/libavformat/dsfdec.c
@@ -199,7 +199,7 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_dsf_demuxer = {
+const AVInputFormat ff_dsf_demuxer = {
     .name           = "dsf",
     .long_name      = NULL_IF_CONFIG_SMALL("DSD Stream File (DSF)"),
     .priv_data_size = sizeof(DSFContext),
diff --git a/libavformat/dsicin.c b/libavformat/dsicin.c
index b18f43b9a0..5693b11e8c 100644
--- a/libavformat/dsicin.c
+++ b/libavformat/dsicin.c
@@ -223,7 +223,7 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_dsicin_demuxer = {
+const AVInputFormat ff_dsicin_demuxer = {
     .name           = "dsicin",
     .long_name      = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"),
     .priv_data_size = sizeof(CinDemuxContext),
diff --git a/libavformat/dss.c b/libavformat/dss.c
index 463ecd909a..ee3a099a95 100644
--- a/libavformat/dss.c
+++ b/libavformat/dss.c
@@ -354,7 +354,7 @@ static int dss_read_seek(AVFormatContext *s, int stream_index,
 }
 
 
-AVInputFormat ff_dss_demuxer = {
+const AVInputFormat ff_dss_demuxer = {
     .name           = "dss",
     .long_name      = NULL_IF_CONFIG_SMALL("Digital Speech Standard (DSS)"),
     .priv_data_size = sizeof(DSSDemuxContext),
diff --git a/libavformat/dtsdec.c b/libavformat/dtsdec.c
index 0215ee18bd..7f8f73fe05 100644
--- a/libavformat/dtsdec.c
+++ b/libavformat/dtsdec.c
@@ -133,7 +133,7 @@ static int dts_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(dts)
-AVInputFormat ff_dts_demuxer = {
+const AVInputFormat ff_dts_demuxer = {
     .name           = "dts",
     .long_name      = NULL_IF_CONFIG_SMALL("raw DTS"),
     .read_probe     = dts_probe,
diff --git a/libavformat/dtshddec.c b/libavformat/dtshddec.c
index b1eb7ffb2c..48d3afbebd 100644
--- a/libavformat/dtshddec.c
+++ b/libavformat/dtshddec.c
@@ -159,7 +159,7 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_dtshd_demuxer = {
+const AVInputFormat ff_dtshd_demuxer = {
     .name           = "dtshd",
     .long_name      = NULL_IF_CONFIG_SMALL("raw DTS-HD"),
     .priv_data_size = sizeof(DTSHDDemuxContext),
diff --git a/libavformat/dv.c b/libavformat/dv.c
index 26a78139f5..cbb38cbd7d 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -614,7 +614,7 @@ static int dv_probe(const AVProbeData *p)
     return 0;
 }
 
-AVInputFormat ff_dv_demuxer = {
+const AVInputFormat ff_dv_demuxer = {
     .name           = "dv",
     .long_name      = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
     .priv_data_size = sizeof(RawDVContext),
diff --git a/libavformat/dvenc.c b/libavformat/dvenc.c
index 320f8479f0..9a853ba7ce 100644
--- a/libavformat/dvenc.c
+++ b/libavformat/dvenc.c
@@ -436,7 +436,7 @@ static void dv_deinit(AVFormatContext *s)
         av_fifo_freep(&c->audio_data[i]);
 }
 
-AVOutputFormat ff_dv_muxer = {
+const AVOutputFormat ff_dv_muxer = {
     .name              = "dv",
     .long_name         = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
     .extensions        = "dv",
diff --git a/libavformat/dxa.c b/libavformat/dxa.c
index 909c5ba2ba..9e5d163db7 100644
--- a/libavformat/dxa.c
+++ b/libavformat/dxa.c
@@ -226,7 +226,7 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_dxa_demuxer = {
+const AVInputFormat ff_dxa_demuxer = {
     .name           = "dxa",
     .long_name      = NULL_IF_CONFIG_SMALL("DXA"),
     .priv_data_size = sizeof(DXAContext),
diff --git a/libavformat/eacdata.c b/libavformat/eacdata.c
index b05d5c88b9..86b1101d6b 100644
--- a/libavformat/eacdata.c
+++ b/libavformat/eacdata.c
@@ -94,7 +94,7 @@ static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_ea_cdata_demuxer = {
+const AVInputFormat ff_ea_cdata_demuxer = {
     .name           = "ea_cdata",
     .long_name      = NULL_IF_CONFIG_SMALL("Electronic Arts cdata"),
     .priv_data_size = sizeof(CdataDemuxContext),
diff --git a/libavformat/electronicarts.c b/libavformat/electronicarts.c
index 7c0d6a2e37..8080ee7e41 100644
--- a/libavformat/electronicarts.c
+++ b/libavformat/electronicarts.c
@@ -752,7 +752,7 @@ get_video_packet:
     return ret;
 }
 
-AVInputFormat ff_ea_demuxer = {
+const AVInputFormat ff_ea_demuxer = {
     .name           = "ea",
     .long_name      = NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia"),
     .priv_data_size = sizeof(EaDemuxContext),
diff --git a/libavformat/epafdec.c b/libavformat/epafdec.c
index 16239ee4af..8b94278c01 100644
--- a/libavformat/epafdec.c
+++ b/libavformat/epafdec.c
@@ -93,7 +93,7 @@ static int epaf_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_epaf_demuxer = {
+const AVInputFormat ff_epaf_demuxer = {
     .name           = "epaf",
     .long_name      = NULL_IF_CONFIG_SMALL("Ensoniq Paris Audio File"),
     .read_probe     = epaf_probe,
diff --git a/libavformat/ffmetadec.c b/libavformat/ffmetadec.c
index 9fcba08490..93ec6f5899 100644
--- a/libavformat/ffmetadec.c
+++ b/libavformat/ffmetadec.c
@@ -222,7 +222,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_ffmetadata_demuxer = {
+const AVInputFormat ff_ffmetadata_demuxer = {
     .name        = "ffmetadata",
     .long_name   = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"),
     .read_probe  = probe,
diff --git a/libavformat/ffmetaenc.c b/libavformat/ffmetaenc.c
index 800fb1887c..edd66e1a04 100644
--- a/libavformat/ffmetaenc.c
+++ b/libavformat/ffmetaenc.c
@@ -87,7 +87,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_ffmetadata_muxer = {
+const AVOutputFormat ff_ffmetadata_muxer = {
     .name          = "ffmetadata",
     .long_name     = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text"),
     .extensions    = "ffmeta",
diff --git a/libavformat/fifo.c b/libavformat/fifo.c
index 78afaff197..620fffa032 100644
--- a/libavformat/fifo.c
+++ b/libavformat/fifo.c
@@ -697,7 +697,7 @@ static const AVClass fifo_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_fifo_muxer = {
+const AVOutputFormat ff_fifo_muxer = {
     .name           = "fifo",
     .long_name      = NULL_IF_CONFIG_SMALL("FIFO queue pseudo-muxer"),
     .priv_data_size = sizeof(FifoContext),
diff --git a/libavformat/fifo_test.c b/libavformat/fifo_test.c
index 02ec215cbb..62670d6d5d 100644
--- a/libavformat/fifo_test.c
+++ b/libavformat/fifo_test.c
@@ -138,7 +138,7 @@ static const AVClass failing_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_fifo_test_muxer = {
+const AVOutputFormat ff_fifo_test_muxer = {
     .name           = "fifo_test",
     .long_name      = NULL_IF_CONFIG_SMALL("Fifo test muxer"),
     .priv_data_size = sizeof(FailingMuxerContext),
diff --git a/libavformat/filmstripdec.c b/libavformat/filmstripdec.c
index 0bf5a80830..2b6ba63fcf 100644
--- a/libavformat/filmstripdec.c
+++ b/libavformat/filmstripdec.c
@@ -104,7 +104,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
     return 0;
 }
 
-AVInputFormat ff_filmstrip_demuxer = {
+const AVInputFormat ff_filmstrip_demuxer = {
     .name           = "filmstrip",
     .long_name      = NULL_IF_CONFIG_SMALL("Adobe Filmstrip"),
     .priv_data_size = sizeof(FilmstripDemuxContext),
diff --git a/libavformat/filmstripenc.c b/libavformat/filmstripenc.c
index 83faf29556..48f483bc90 100644
--- a/libavformat/filmstripenc.c
+++ b/libavformat/filmstripenc.c
@@ -60,7 +60,7 @@ static int write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_filmstrip_muxer = {
+const AVOutputFormat ff_filmstrip_muxer = {
     .name              = "filmstrip",
     .long_name         = NULL_IF_CONFIG_SMALL("Adobe Filmstrip"),
     .extensions        = "flm",
diff --git a/libavformat/fitsdec.c b/libavformat/fitsdec.c
index df757e868b..54412c60ff 100644
--- a/libavformat/fitsdec.c
+++ b/libavformat/fitsdec.c
@@ -223,7 +223,7 @@ static const AVClass fits_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_fits_demuxer = {
+const AVInputFormat ff_fits_demuxer = {
     .name           = "fits",
     .long_name      = NULL_IF_CONFIG_SMALL("Flexible Image Transport System"),
     .priv_data_size = sizeof(FITSContext),
diff --git a/libavformat/fitsenc.c b/libavformat/fitsenc.c
index 212c769df1..5cf34ef067 100644
--- a/libavformat/fitsenc.c
+++ b/libavformat/fitsenc.c
@@ -194,7 +194,7 @@ static int fits_write_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_fits_muxer = {
+const AVOutputFormat ff_fits_muxer = {
     .name         = "fits",
     .long_name    = NULL_IF_CONFIG_SMALL("Flexible Image Transport System"),
     .extensions   = "fits",
diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c
index f7b21986dc..4ed523f309 100644
--- a/libavformat/flacdec.c
+++ b/libavformat/flacdec.c
@@ -330,7 +330,7 @@ static int flac_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
 }
 
 FF_RAW_DEMUXER_CLASS(flac)
-AVInputFormat ff_flac_demuxer = {
+const AVInputFormat ff_flac_demuxer = {
     .name           = "flac",
     .long_name      = NULL_IF_CONFIG_SMALL("raw FLAC"),
     .read_probe     = flac_probe,
diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c
index cdd25b817f..d8cf3ea4db 100644
--- a/libavformat/flacenc.c
+++ b/libavformat/flacenc.c
@@ -411,7 +411,7 @@ static const AVClass flac_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_flac_muxer = {
+const AVOutputFormat ff_flac_muxer = {
     .name              = "flac",
     .long_name         = NULL_IF_CONFIG_SMALL("raw FLAC"),
     .priv_data_size    = sizeof(FlacMuxerContext),
diff --git a/libavformat/flic.c b/libavformat/flic.c
index 9a7b8081ed..efd9e54308 100644
--- a/libavformat/flic.c
+++ b/libavformat/flic.c
@@ -285,7 +285,7 @@ static int flic_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_flic_demuxer = {
+const AVInputFormat ff_flic_demuxer = {
     .name           = "flic",
     .long_name      = NULL_IF_CONFIG_SMALL("FLI/FLC/FLX animation"),
     .priv_data_size = sizeof(FlicDemuxContext),
diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c
index fca6f82f5c..718d690421 100644
--- a/libavformat/flvdec.c
+++ b/libavformat/flvdec.c
@@ -1372,7 +1372,7 @@ static const AVClass flv_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_flv_demuxer = {
+const AVInputFormat ff_flv_demuxer = {
     .name           = "flv",
     .long_name      = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"),
     .priv_data_size = sizeof(FLVContext),
@@ -1392,7 +1392,7 @@ static const AVClass live_flv_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_live_flv_demuxer = {
+const AVInputFormat ff_live_flv_demuxer = {
     .name           = "live_flv",
     .long_name      = NULL_IF_CONFIG_SMALL("live RTMP FLV (Flash Video)"),
     .priv_data_size = sizeof(FLVContext),
@@ -1413,7 +1413,7 @@ static const AVClass kux_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_kux_demuxer = {
+const AVInputFormat ff_kux_demuxer = {
     .name           = "kux",
     .long_name      = NULL_IF_CONFIG_SMALL("KUX (YouKu)"),
     .priv_data_size = sizeof(FLVContext),
diff --git a/libavformat/flvenc.c b/libavformat/flvenc.c
index 711b94c5bc..3f24c7e192 100644
--- a/libavformat/flvenc.c
+++ b/libavformat/flvenc.c
@@ -1112,7 +1112,7 @@ static const AVClass flv_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_flv_muxer = {
+const AVOutputFormat ff_flv_muxer = {
     .name           = "flv",
     .long_name      = NULL_IF_CONFIG_SMALL("FLV (Flash Video)"),
     .mime_type      = "video/x-flv",
diff --git a/libavformat/framecrcenc.c b/libavformat/framecrcenc.c
index 4e62049305..eb58d251d2 100644
--- a/libavformat/framecrcenc.c
+++ b/libavformat/framecrcenc.c
@@ -129,7 +129,7 @@ static int framecrc_write_packet(struct AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_framecrc_muxer = {
+const AVOutputFormat ff_framecrc_muxer = {
     .name              = "framecrc",
     .long_name         = NULL_IF_CONFIG_SMALL("framecrc testing"),
     .audio_codec       = AV_CODEC_ID_PCM_S16LE,
diff --git a/libavformat/frmdec.c b/libavformat/frmdec.c
index 1bc3a83e11..478656b037 100644
--- a/libavformat/frmdec.c
+++ b/libavformat/frmdec.c
@@ -103,7 +103,7 @@ static int frm_read_packet(AVFormatContext *avctx, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_frm_demuxer = {
+const AVInputFormat ff_frm_demuxer = {
     .name           = "frm",
     .priv_data_size = sizeof(FrmContext),
     .long_name      = NULL_IF_CONFIG_SMALL("Megalux Frame"),
diff --git a/libavformat/fsb.c b/libavformat/fsb.c
index fd3e484371..f145d10fd3 100644
--- a/libavformat/fsb.c
+++ b/libavformat/fsb.c
@@ -200,7 +200,7 @@ static int fsb_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_fsb_demuxer = {
+const AVInputFormat ff_fsb_demuxer = {
     .name        = "fsb",
     .long_name   = NULL_IF_CONFIG_SMALL("FMOD Sample Bank"),
     .read_probe  = fsb_probe,
diff --git a/libavformat/fwse.c b/libavformat/fwse.c
index 00e2e13b11..970d5ffe89 100644
--- a/libavformat/fwse.c
+++ b/libavformat/fwse.c
@@ -78,7 +78,7 @@ static int fwse_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_fwse_demuxer = {
+const AVInputFormat ff_fwse_demuxer = {
     .name           = "fwse",
     .long_name      = NULL_IF_CONFIG_SMALL("Capcom's MT Framework sound"),
     .read_probe     = fwse_probe,
diff --git a/libavformat/g722.c b/libavformat/g722.c
index fe8c4ae7bb..360ced7172 100644
--- a/libavformat/g722.c
+++ b/libavformat/g722.c
@@ -47,7 +47,7 @@ static int g722_read_header(AVFormatContext *s)
 }
 
 FF_RAW_DEMUXER_CLASS(g722)
-AVInputFormat ff_g722_demuxer = {
+const AVInputFormat ff_g722_demuxer = {
     .name           = "g722",
     .long_name      = NULL_IF_CONFIG_SMALL("raw G.722"),
     .read_header    = g722_read_header,
diff --git a/libavformat/g723_1.c b/libavformat/g723_1.c
index 3af4809347..f38064b5b2 100644
--- a/libavformat/g723_1.c
+++ b/libavformat/g723_1.c
@@ -75,7 +75,7 @@ static int g723_1_read_packet(AVFormatContext *s, AVPacket *pkt)
     return pkt->size;
 }
 
-AVInputFormat ff_g723_1_demuxer = {
+const AVInputFormat ff_g723_1_demuxer = {
     .name        = "g723_1",
     .long_name   = NULL_IF_CONFIG_SMALL("G.723.1"),
     .read_header = g723_1_init,
diff --git a/libavformat/g726.c b/libavformat/g726.c
index eca9404866..01d92e1d6d 100644
--- a/libavformat/g726.c
+++ b/libavformat/g726.c
@@ -73,7 +73,7 @@ static const AVClass g726le_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_g726_demuxer = {
+const AVInputFormat ff_g726_demuxer = {
     .name           = "g726",
     .long_name      = NULL_IF_CONFIG_SMALL("raw big-endian G.726 (\"left aligned\")"),
     .read_header    = g726_read_header,
@@ -92,7 +92,7 @@ static const AVClass g726_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_g726le_demuxer = {
+const AVInputFormat ff_g726le_demuxer = {
     .name           = "g726le",
     .long_name      = NULL_IF_CONFIG_SMALL("raw little-endian G.726 (\"right aligned\")"),
     .read_header    = g726_read_header,
diff --git a/libavformat/g729dec.c b/libavformat/g729dec.c
index c58855cb99..51112f5618 100644
--- a/libavformat/g729dec.c
+++ b/libavformat/g729dec.c
@@ -93,7 +93,7 @@ static const AVClass g729_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_g729_demuxer = {
+const AVInputFormat ff_g729_demuxer = {
     .name           = "g729",
     .long_name      = NULL_IF_CONFIG_SMALL("G.729 raw format demuxer"),
     .priv_data_size = sizeof(G729DemuxerContext),
diff --git a/libavformat/gdv.c b/libavformat/gdv.c
index 2ecbb535e7..b20691a2a4 100644
--- a/libavformat/gdv.c
+++ b/libavformat/gdv.c
@@ -193,7 +193,7 @@ static int gdv_read_packet(AVFormatContext *ctx, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_gdv_demuxer = {
+const AVInputFormat ff_gdv_demuxer = {
     .name           = "gdv",
     .long_name      = NULL_IF_CONFIG_SMALL("Gremlin Digital Video"),
     .priv_data_size = sizeof(GDVContext),
diff --git a/libavformat/genh.c b/libavformat/genh.c
index 698104a9d6..6d36e5f5fc 100644
--- a/libavformat/genh.c
+++ b/libavformat/genh.c
@@ -189,7 +189,7 @@ static int genh_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_genh_demuxer = {
+const AVInputFormat ff_genh_demuxer = {
     .name           = "genh",
     .long_name      = NULL_IF_CONFIG_SMALL("GENeric Header"),
     .priv_data_size = sizeof(GENHDemuxContext),
diff --git a/libavformat/gif.c b/libavformat/gif.c
index e125d386bd..e4f2249083 100644
--- a/libavformat/gif.c
+++ b/libavformat/gif.c
@@ -203,7 +203,7 @@ static const AVClass gif_muxer_class = {
     .option     = options,
 };
 
-AVOutputFormat ff_gif_muxer = {
+const AVOutputFormat ff_gif_muxer = {
     .name           = "gif",
     .long_name      = NULL_IF_CONFIG_SMALL("CompuServe Graphics Interchange Format (GIF)"),
     .mime_type      = "image/gif",
diff --git a/libavformat/gifdec.c b/libavformat/gifdec.c
index d617de5f41..c20bde1781 100644
--- a/libavformat/gifdec.c
+++ b/libavformat/gifdec.c
@@ -397,7 +397,7 @@ static const AVClass demuxer_class = {
     .category   = AV_CLASS_CATEGORY_DEMUXER,
 };
 
-AVInputFormat ff_gif_demuxer = {
+const AVInputFormat ff_gif_demuxer = {
     .name           = "gif",
     .long_name      = NULL_IF_CONFIG_SMALL("CompuServe Graphics Interchange Format (GIF)"),
     .priv_data_size = sizeof(GIFDemuxContext),
diff --git a/libavformat/gsmdec.c b/libavformat/gsmdec.c
index ec6b2e924f..e14e9aa217 100644
--- a/libavformat/gsmdec.c
+++ b/libavformat/gsmdec.c
@@ -103,7 +103,7 @@ static const AVClass gsm_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_gsm_demuxer = {
+const AVInputFormat ff_gsm_demuxer = {
     .name           = "gsm",
     .long_name      = NULL_IF_CONFIG_SMALL("raw GSM"),
     .priv_data_size = sizeof(GSMDemuxerContext),
diff --git a/libavformat/gxf.c b/libavformat/gxf.c
index b787d4f521..53fa302828 100644
--- a/libavformat/gxf.c
+++ b/libavformat/gxf.c
@@ -599,7 +599,7 @@ static int64_t gxf_read_timestamp(AVFormatContext *s, int stream_index,
     return res;
 }
 
-AVInputFormat ff_gxf_demuxer = {
+const AVInputFormat ff_gxf_demuxer = {
     .name           = "gxf",
     .long_name      = NULL_IF_CONFIG_SMALL("GXF (General eXchange Format)"),
     .priv_data_size = sizeof(struct gxf_stream_info),
diff --git a/libavformat/gxfenc.c b/libavformat/gxfenc.c
index 6d4df894f6..1a80ecb603 100644
--- a/libavformat/gxfenc.c
+++ b/libavformat/gxfenc.c
@@ -1025,7 +1025,7 @@ static int gxf_interleave_packet(AVFormatContext *s, AVPacket *out, AVPacket *pk
     return ff_interleave_packet_per_dts(s, out, NULL, flush);
 }
 
-AVOutputFormat ff_gxf_muxer = {
+const AVOutputFormat ff_gxf_muxer = {
     .name              = "gxf",
     .long_name         = NULL_IF_CONFIG_SMALL("GXF (General eXchange Format)"),
     .extensions        = "gxf",
diff --git a/libavformat/hashenc.c b/libavformat/hashenc.c
index ec4e44ef12..a1e98eda89 100644
--- a/libavformat/hashenc.c
+++ b/libavformat/hashenc.c
@@ -171,7 +171,7 @@ static const AVClass hashenc_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_hash_muxer = {
+const AVOutputFormat ff_hash_muxer = {
     .name              = "hash",
     .long_name         = NULL_IF_CONFIG_SMALL("Hash testing"),
     .priv_data_size    = sizeof(struct HashContext),
@@ -195,7 +195,7 @@ static const AVClass md5enc_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_md5_muxer = {
+const AVOutputFormat ff_md5_muxer = {
     .name              = "md5",
     .long_name         = NULL_IF_CONFIG_SMALL("MD5 testing"),
     .priv_data_size    = sizeof(struct HashContext),
@@ -219,7 +219,7 @@ static const AVClass streamhashenc_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_streamhash_muxer = {
+const AVOutputFormat ff_streamhash_muxer = {
     .name              = "streamhash",
     .long_name         = NULL_IF_CONFIG_SMALL("Per-stream hash testing"),
     .priv_data_size    = sizeof(struct HashContext),
@@ -330,7 +330,7 @@ static const AVClass framehash_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_framehash_muxer = {
+const AVOutputFormat ff_framehash_muxer = {
     .name              = "framehash",
     .long_name         = NULL_IF_CONFIG_SMALL("Per-frame hash testing"),
     .priv_data_size    = sizeof(struct HashContext),
@@ -354,7 +354,7 @@ static const AVClass framemd5_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_framemd5_muxer = {
+const AVOutputFormat ff_framemd5_muxer = {
     .name              = "framemd5",
     .long_name         = NULL_IF_CONFIG_SMALL("Per-frame MD5 testing"),
     .priv_data_size    = sizeof(struct HashContext),
diff --git a/libavformat/hca.c b/libavformat/hca.c
index 8f55e07204..86be5b1345 100644
--- a/libavformat/hca.c
+++ b/libavformat/hca.c
@@ -113,7 +113,7 @@ static int hca_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_hca_demuxer = {
+const AVInputFormat ff_hca_demuxer = {
     .name           = "hca",
     .long_name      = NULL_IF_CONFIG_SMALL("CRI HCA"),
     .read_probe     = hca_probe,
diff --git a/libavformat/hcom.c b/libavformat/hcom.c
index 3e1e8da236..b7fb7314c8 100644
--- a/libavformat/hcom.c
+++ b/libavformat/hcom.c
@@ -82,7 +82,7 @@ static int hcom_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_hcom_demuxer = {
+const AVInputFormat ff_hcom_demuxer = {
     .name           = "hcom",
     .long_name      = NULL_IF_CONFIG_SMALL("Macintosh HCOM"),
     .read_probe     = hcom_probe,
diff --git a/libavformat/hdsenc.c b/libavformat/hdsenc.c
index 98156afafa..202855392e 100644
--- a/libavformat/hdsenc.c
+++ b/libavformat/hdsenc.c
@@ -566,7 +566,7 @@ static const AVClass hds_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_hds_muxer = {
+const AVOutputFormat ff_hds_muxer = {
     .name           = "hds",
     .long_name      = NULL_IF_CONFIG_SMALL("HDS Muxer"),
     .priv_data_size = sizeof(HDSContext),
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 83acbb0aa6..584f658fe4 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2413,7 +2413,7 @@ static const AVClass hls_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_hls_demuxer = {
+const AVInputFormat ff_hls_demuxer = {
     .name           = "hls",
     .long_name      = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming"),
     .priv_class     = &hls_class,
diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c
index 6e7d6d554b..9d9f0c03d4 100644
--- a/libavformat/hlsenc.c
+++ b/libavformat/hlsenc.c
@@ -3159,7 +3159,7 @@ static const AVClass hls_class = {
 };
 
 
-AVOutputFormat ff_hls_muxer = {
+const AVOutputFormat ff_hls_muxer = {
     .name           = "hls",
     .long_name      = NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming"),
     .extensions     = "m3u8",
diff --git a/libavformat/hnm.c b/libavformat/hnm.c
index f06add5cf8..97990b2673 100644
--- a/libavformat/hnm.c
+++ b/libavformat/hnm.c
@@ -158,7 +158,7 @@ static int hnm_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_hnm_demuxer = {
+const AVInputFormat ff_hnm_demuxer = {
     .name           = "hnm",
     .long_name      = NULL_IF_CONFIG_SMALL("Cryo HNM v4"),
     .priv_data_size = sizeof(Hnm4DemuxContext),
diff --git a/libavformat/icodec.c b/libavformat/icodec.c
index 93179bb41e..9349582ffc 100644
--- a/libavformat/icodec.c
+++ b/libavformat/icodec.c
@@ -220,7 +220,7 @@ static int ico_read_close(AVFormatContext * s)
     return 0;
 }
 
-AVInputFormat ff_ico_demuxer = {
+const AVInputFormat ff_ico_demuxer = {
     .name           = "ico",
     .long_name      = NULL_IF_CONFIG_SMALL("Microsoft Windows ICO"),
     .priv_data_size = sizeof(IcoDemuxContext),
diff --git a/libavformat/icoenc.c b/libavformat/icoenc.c
index a7df8b72bc..39e92a41b7 100644
--- a/libavformat/icoenc.c
+++ b/libavformat/icoenc.c
@@ -191,7 +191,7 @@ static void ico_deinit(AVFormatContext *s)
     av_freep(&ico->images);
 }
 
-AVOutputFormat ff_ico_muxer = {
+const AVOutputFormat ff_ico_muxer = {
     .name           = "ico",
     .long_name      = NULL_IF_CONFIG_SMALL("Microsoft Windows ICO"),
     .priv_data_size = sizeof(IcoMuxContext),
diff --git a/libavformat/idcin.c b/libavformat/idcin.c
index 5a6a15aa81..0c38d880f4 100644
--- a/libavformat/idcin.c
+++ b/libavformat/idcin.c
@@ -366,7 +366,7 @@ static int idcin_read_seek(AVFormatContext *s, int stream_index,
     return -1;
 }
 
-AVInputFormat ff_idcin_demuxer = {
+const AVInputFormat ff_idcin_demuxer = {
     .name           = "idcin",
     .long_name      = NULL_IF_CONFIG_SMALL("id Cinematic"),
     .priv_data_size = sizeof(IdcinDemuxContext),
diff --git a/libavformat/idroqdec.c b/libavformat/idroqdec.c
index 519f31d61a..0c8b7278e9 100644
--- a/libavformat/idroqdec.c
+++ b/libavformat/idroqdec.c
@@ -239,7 +239,7 @@ static int roq_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_roq_demuxer = {
+const AVInputFormat ff_roq_demuxer = {
     .name           = "roq",
     .long_name      = NULL_IF_CONFIG_SMALL("id RoQ"),
     .priv_data_size = sizeof(RoqDemuxContext),
diff --git a/libavformat/idroqenc.c b/libavformat/idroqenc.c
index 261f21939c..57dd7f024e 100644
--- a/libavformat/idroqenc.c
+++ b/libavformat/idroqenc.c
@@ -59,7 +59,7 @@ static int roq_write_header(struct AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_roq_muxer = {
+const AVOutputFormat ff_roq_muxer = {
     .name         = "roq",
     .long_name    = NULL_IF_CONFIG_SMALL("raw id RoQ"),
     .extensions   = "roq",
diff --git a/libavformat/iff.c b/libavformat/iff.c
index 27b5581cc3..74d96988a7 100644
--- a/libavformat/iff.c
+++ b/libavformat/iff.c
@@ -896,7 +896,7 @@ static int iff_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_iff_demuxer = {
+const AVInputFormat ff_iff_demuxer = {
     .name           = "iff",
     .long_name      = NULL_IF_CONFIG_SMALL("IFF (Interchange File Format)"),
     .priv_data_size = sizeof(IffDemuxContext),
diff --git a/libavformat/ifv.c b/libavformat/ifv.c
index bca8f85d09..f82328ada0 100644
--- a/libavformat/ifv.c
+++ b/libavformat/ifv.c
@@ -305,7 +305,7 @@ static int ifv_read_seek(AVFormatContext *s, int stream_index, int64_t ts, int f
     return 0;
 }
 
-AVInputFormat ff_ifv_demuxer = {
+const AVInputFormat ff_ifv_demuxer = {
     .name           = "ifv",
     .long_name      = NULL_IF_CONFIG_SMALL("IFV CCTV DVR"),
     .priv_data_size = sizeof(IFVContext),
diff --git a/libavformat/ilbc.c b/libavformat/ilbc.c
index 188c0f091a..efa5339089 100644
--- a/libavformat/ilbc.c
+++ b/libavformat/ilbc.c
@@ -112,7 +112,7 @@ static int ilbc_read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_ilbc_demuxer = {
+const AVInputFormat ff_ilbc_demuxer = {
     .name         = "ilbc",
     .long_name    = NULL_IF_CONFIG_SMALL("iLBC storage"),
     .read_probe   = ilbc_probe,
@@ -122,7 +122,7 @@ AVInputFormat ff_ilbc_demuxer = {
 };
 
 #if CONFIG_ILBC_MUXER
-AVOutputFormat ff_ilbc_muxer = {
+const AVOutputFormat ff_ilbc_muxer = {
     .name         = "ilbc",
     .long_name    = NULL_IF_CONFIG_SMALL("iLBC storage"),
     .mime_type    = "audio/iLBC",
diff --git a/libavformat/img2_alias_pix.c b/libavformat/img2_alias_pix.c
index 2fa3b28e7c..d0aac83924 100644
--- a/libavformat/img2_alias_pix.c
+++ b/libavformat/img2_alias_pix.c
@@ -61,7 +61,7 @@ static const AVClass image2_alias_pix_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_image2_alias_pix_demuxer = {
+const AVInputFormat ff_image2_alias_pix_demuxer = {
     .name           = "alias_pix",
     .long_name      = NULL_IF_CONFIG_SMALL("Alias/Wavefront PIX image"),
     .priv_data_size = sizeof(VideoDemuxData),
diff --git a/libavformat/img2_brender_pix.c b/libavformat/img2_brender_pix.c
index b8ac3d2abd..9d9a7c0819 100644
--- a/libavformat/img2_brender_pix.c
+++ b/libavformat/img2_brender_pix.c
@@ -45,7 +45,7 @@ static const AVClass image2_brender_pix_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_image2_brender_pix_demuxer = {
+const AVInputFormat ff_image2_brender_pix_demuxer = {
     .name           = "brender_pix",
     .long_name      = NULL_IF_CONFIG_SMALL("BRender PIX image"),
     .priv_data_size = sizeof(VideoDemuxData),
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c
index 84ce9ea093..d7a7cdaa16 100644
--- a/libavformat/img2dec.c
+++ b/libavformat/img2dec.c
@@ -633,7 +633,7 @@ static const AVClass img2_class = {
     .option     = ff_img_options,
     .version    = LIBAVUTIL_VERSION_INT,
 };
-AVInputFormat ff_image2_demuxer = {
+const AVInputFormat ff_image2_demuxer = {
     .name           = "image2",
     .long_name      = NULL_IF_CONFIG_SMALL("image2 sequence"),
     .priv_data_size = sizeof(VideoDemuxData),
@@ -659,7 +659,7 @@ static const AVClass img2pipe_class = {
     .option     = ff_img2pipe_options,
     .version    = LIBAVUTIL_VERSION_INT,
 };
-AVInputFormat ff_image2pipe_demuxer = {
+const AVInputFormat ff_image2pipe_demuxer = {
     .name           = "image2pipe",
     .long_name      = NULL_IF_CONFIG_SMALL("piped image2 sequence"),
     .priv_data_size = sizeof(VideoDemuxData),
@@ -1112,7 +1112,7 @@ static const AVClass imgname ## _class = {\
     .option     = ff_img2pipe_options,\
     .version    = LIBAVUTIL_VERSION_INT,\
 };\
-AVInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\
+const AVInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\
     .name           = AV_STRINGIFY(imgname) "_pipe",\
     .long_name      = NULL_IF_CONFIG_SMALL("piped " AV_STRINGIFY(imgname) " sequence"),\
     .priv_data_size = sizeof(VideoDemuxData),\
diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c
index 0f7a21ffa0..7b5133d300 100644
--- a/libavformat/img2enc.c
+++ b/libavformat/img2enc.c
@@ -257,7 +257,7 @@ static const AVClass img2mux_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_image2_muxer = {
+const AVOutputFormat ff_image2_muxer = {
     .name           = "image2",
     .long_name      = NULL_IF_CONFIG_SMALL("image2 sequence"),
     .extensions     = "bmp,dpx,exr,jls,jpeg,jpg,ljpg,pam,pbm,pcx,pfm,pgm,pgmyuv,png,"
@@ -273,7 +273,7 @@ AVOutputFormat ff_image2_muxer = {
 };
 #endif
 #if CONFIG_IMAGE2PIPE_MUXER
-AVOutputFormat ff_image2pipe_muxer = {
+const AVOutputFormat ff_image2pipe_muxer = {
     .name           = "image2pipe",
     .long_name      = NULL_IF_CONFIG_SMALL("piped image2 sequence"),
     .priv_data_size = sizeof(VideoMuxData),
diff --git a/libavformat/imx.c b/libavformat/imx.c
index 22fca0bdc0..e26f3728ff 100644
--- a/libavformat/imx.c
+++ b/libavformat/imx.c
@@ -156,7 +156,7 @@ retry:
     return ret;
 }
 
-AVInputFormat ff_simbiosis_imx_demuxer = {
+const AVInputFormat ff_simbiosis_imx_demuxer = {
     .name           = "simbiosis_imx",
     .long_name      = NULL_IF_CONFIG_SMALL("Simbiosis Interactive IMX"),
     .priv_data_size = sizeof(SimbiosisIMXDemuxContext),
diff --git a/libavformat/ingenientdec.c b/libavformat/ingenientdec.c
index 1b437b48f9..9848e12e9e 100644
--- a/libavformat/ingenientdec.c
+++ b/libavformat/ingenientdec.c
@@ -63,7 +63,7 @@ static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
 
 FF_RAWVIDEO_DEMUXER_CLASS(ingenient)
 
-AVInputFormat ff_ingenient_demuxer = {
+const AVInputFormat ff_ingenient_demuxer = {
     .name           = "ingenient",
     .long_name      = NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
     .priv_data_size = sizeof(FFRawVideoDemuxerContext),
diff --git a/libavformat/ipmovie.c b/libavformat/ipmovie.c
index 9118d7d807..c2505c6faf 100644
--- a/libavformat/ipmovie.c
+++ b/libavformat/ipmovie.c
@@ -701,7 +701,7 @@ static int ipmovie_read_packet(AVFormatContext *s,
     }
 }
 
-AVInputFormat ff_ipmovie_demuxer = {
+const AVInputFormat ff_ipmovie_demuxer = {
     .name           = "ipmovie",
     .long_name      = NULL_IF_CONFIG_SMALL("Interplay MVE"),
     .priv_data_size = sizeof(IPMVEContext),
diff --git a/libavformat/ipudec.c b/libavformat/ipudec.c
index df53df00d9..283c798751 100644
--- a/libavformat/ipudec.c
+++ b/libavformat/ipudec.c
@@ -75,7 +75,7 @@ static const AVClass ipu_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_ipu_demuxer = {
+const AVInputFormat ff_ipu_demuxer = {
     .name           = "ipu",
     .long_name      = NULL_IF_CONFIG_SMALL("raw IPU Video"),
     .read_probe     = ipu_read_probe,
diff --git a/libavformat/ircamdec.c b/libavformat/ircamdec.c
index db09f606c6..a05ca5c9c7 100644
--- a/libavformat/ircamdec.c
+++ b/libavformat/ircamdec.c
@@ -106,7 +106,7 @@ static int ircam_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_ircam_demuxer = {
+const AVInputFormat ff_ircam_demuxer = {
     .name           = "ircam",
     .long_name      = NULL_IF_CONFIG_SMALL("Berkeley/IRCAM/CARL Sound Format"),
     .read_probe     = ircam_probe,
diff --git a/libavformat/ircamenc.c b/libavformat/ircamenc.c
index 323ecb37ee..d49a427b25 100644
--- a/libavformat/ircamenc.c
+++ b/libavformat/ircamenc.c
@@ -50,7 +50,7 @@ static int ircam_write_header(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_ircam_muxer = {
+const AVOutputFormat ff_ircam_muxer = {
     .name           = "ircam",
     .extensions     = "sf,ircam",
     .long_name      = NULL_IF_CONFIG_SMALL("Berkeley/IRCAM/CARL Sound Format"),
diff --git a/libavformat/iss.c b/libavformat/iss.c
index 6d6aec2cec..c58c5923ba 100644
--- a/libavformat/iss.c
+++ b/libavformat/iss.c
@@ -143,7 +143,7 @@ static int iss_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_iss_demuxer = {
+const AVInputFormat ff_iss_demuxer = {
     .name           = "iss",
     .long_name      = NULL_IF_CONFIG_SMALL("Funcom ISS"),
     .priv_data_size = sizeof(IssDemuxContext),
diff --git a/libavformat/iv8.c b/libavformat/iv8.c
index e25f24eeb9..7237e16172 100644
--- a/libavformat/iv8.c
+++ b/libavformat/iv8.c
@@ -107,7 +107,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_iv8_demuxer = {
+const AVInputFormat ff_iv8_demuxer = {
     .name           = "iv8",
     .long_name      = NULL_IF_CONFIG_SMALL("IndigoVision 8000 video"),
     .read_probe     = probe,
diff --git a/libavformat/ivfdec.c b/libavformat/ivfdec.c
index 4a802573e7..3e1ea52cbf 100644
--- a/libavformat/ivfdec.c
+++ b/libavformat/ivfdec.c
@@ -81,7 +81,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_ivf_demuxer = {
+const AVInputFormat ff_ivf_demuxer = {
     .name           = "ivf",
     .long_name      = NULL_IF_CONFIG_SMALL("On2 IVF"),
     .read_probe     = probe,
diff --git a/libavformat/ivfenc.c b/libavformat/ivfenc.c
index 889c00438c..5aa8bd1257 100644
--- a/libavformat/ivfenc.c
+++ b/libavformat/ivfenc.c
@@ -121,7 +121,7 @@ static const AVCodecTag codec_ivf_tags[] = {
     { AV_CODEC_ID_NONE, 0 }
 };
 
-AVOutputFormat ff_ivf_muxer = {
+const AVOutputFormat ff_ivf_muxer = {
     .priv_data_size = sizeof(IVFEncContext),
     .name         = "ivf",
     .long_name    = NULL_IF_CONFIG_SMALL("On2 IVF"),
diff --git a/libavformat/jacosubdec.c b/libavformat/jacosubdec.c
index 9c6640eef8..c8bded02fe 100644
--- a/libavformat/jacosubdec.c
+++ b/libavformat/jacosubdec.c
@@ -276,7 +276,7 @@ static int jacosub_read_seek(AVFormatContext *s, int stream_index,
                                    min_ts, ts, max_ts, flags);
 }
 
-AVInputFormat ff_jacosub_demuxer = {
+const AVInputFormat ff_jacosub_demuxer = {
     .name           = "jacosub",
     .long_name      = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"),
     .priv_data_size = sizeof(JACOsubContext),
diff --git a/libavformat/jacosubenc.c b/libavformat/jacosubenc.c
index 77575c6b3c..324f2957fb 100644
--- a/libavformat/jacosubenc.c
+++ b/libavformat/jacosubenc.c
@@ -29,7 +29,7 @@ static int jacosub_write_header(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_jacosub_muxer = {
+const AVOutputFormat ff_jacosub_muxer = {
     .name           = "jacosub",
     .long_name      = NULL_IF_CONFIG_SMALL("JACOsub subtitle format"),
     .mime_type      = "text/x-jacosub",
diff --git a/libavformat/jvdec.c b/libavformat/jvdec.c
index 47d18e2beb..948cab37e5 100644
--- a/libavformat/jvdec.c
+++ b/libavformat/jvdec.c
@@ -254,7 +254,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_jv_demuxer = {
+const AVInputFormat ff_jv_demuxer = {
     .name           = "jv",
     .long_name      = NULL_IF_CONFIG_SMALL("Bitmap Brothers JV"),
     .priv_data_size = sizeof(JVDemuxContext),
diff --git a/libavformat/kvag.c b/libavformat/kvag.c
index 91d1d8a518..94dc1ddc04 100644
--- a/libavformat/kvag.c
+++ b/libavformat/kvag.c
@@ -119,7 +119,7 @@ static int kvag_seek(AVFormatContext *s, int stream_index,
     return avio_seek(s->pb, KVAG_HEADER_SIZE, SEEK_SET);
 }
 
-AVInputFormat ff_kvag_demuxer = {
+const AVInputFormat ff_kvag_demuxer = {
     .name           = "kvag",
     .long_name      = NULL_IF_CONFIG_SMALL("Simon & Schuster Interactive VAG"),
     .read_probe     = kvag_probe,
@@ -193,7 +193,7 @@ static int kvag_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_kvag_muxer = {
+const AVOutputFormat ff_kvag_muxer = {
     .name           = "kvag",
     .long_name      = NULL_IF_CONFIG_SMALL("Simon & Schuster Interactive VAG"),
     .extensions     = "vag",
diff --git a/libavformat/latmenc.c b/libavformat/latmenc.c
index 80fd2dfe27..87a6b81798 100644
--- a/libavformat/latmenc.c
+++ b/libavformat/latmenc.c
@@ -256,7 +256,7 @@ static int latm_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)
     return ret;
 }
 
-AVOutputFormat ff_latm_muxer = {
+const AVOutputFormat ff_latm_muxer = {
     .name           = "latm",
     .long_name      = NULL_IF_CONFIG_SMALL("LOAS/LATM"),
     .mime_type      = "audio/MP4A-LATM",
diff --git a/libavformat/libgme.c b/libavformat/libgme.c
index a9c487bdb4..95323002e6 100644
--- a/libavformat/libgme.c
+++ b/libavformat/libgme.c
@@ -197,7 +197,7 @@ static const AVClass class_gme = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_libgme_demuxer = {
+const AVInputFormat ff_libgme_demuxer = {
     .name           = "libgme",
     .long_name      = NULL_IF_CONFIG_SMALL("Game Music Emu demuxer"),
     .priv_data_size = sizeof(GMEContext),
diff --git a/libavformat/libmodplug.c b/libavformat/libmodplug.c
index b85269341b..8f8d0e9740 100644
--- a/libavformat/libmodplug.c
+++ b/libavformat/libmodplug.c
@@ -380,7 +380,7 @@ static const AVClass modplug_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_libmodplug_demuxer = {
+const AVInputFormat ff_libmodplug_demuxer = {
     .name           = "libmodplug",
     .long_name      = NULL_IF_CONFIG_SMALL("ModPlug demuxer"),
     .priv_data_size = sizeof(ModPlugContext),
diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c
index b07da5f078..628b0939dc 100644
--- a/libavformat/libopenmpt.c
+++ b/libavformat/libopenmpt.c
@@ -281,7 +281,7 @@ static const AVClass class_openmpt = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_libopenmpt_demuxer = {
+const AVInputFormat ff_libopenmpt_demuxer = {
     .name           = "libopenmpt",
     .long_name      = NULL_IF_CONFIG_SMALL("Tracker formats (libopenmpt)"),
     .priv_data_size = sizeof(OpenMPTContext),
diff --git a/libavformat/lmlm4.c b/libavformat/lmlm4.c
index 79d703a8fc..99cba73a00 100644
--- a/libavformat/lmlm4.c
+++ b/libavformat/lmlm4.c
@@ -121,7 +121,7 @@ static int lmlm4_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_lmlm4_demuxer = {
+const AVInputFormat ff_lmlm4_demuxer = {
     .name           = "lmlm4",
     .long_name      = NULL_IF_CONFIG_SMALL("raw lmlm4"),
     .read_probe     = lmlm4_probe,
diff --git a/libavformat/loasdec.c b/libavformat/loasdec.c
index e166a5928a..490dd68ee0 100644
--- a/libavformat/loasdec.c
+++ b/libavformat/loasdec.c
@@ -84,7 +84,7 @@ static int loas_read_header(AVFormatContext *s)
 }
 
 FF_RAW_DEMUXER_CLASS(loas)
-AVInputFormat ff_loas_demuxer = {
+const AVInputFormat ff_loas_demuxer = {
     .name           = "loas",
     .long_name      = NULL_IF_CONFIG_SMALL("LOAS AudioSyncStream"),
     .read_probe     = loas_probe,
diff --git a/libavformat/lrcdec.c b/libavformat/lrcdec.c
index ca23a60f84..678b618498 100644
--- a/libavformat/lrcdec.c
+++ b/libavformat/lrcdec.c
@@ -241,7 +241,7 @@ static int lrc_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_lrc_demuxer = {
+const AVInputFormat ff_lrc_demuxer = {
     .name           = "lrc",
     .long_name      = NULL_IF_CONFIG_SMALL("LRC lyrics"),
     .priv_data_size = sizeof (LRCContext),
diff --git a/libavformat/lrcenc.c b/libavformat/lrcenc.c
index c5fda64738..5d107cd49a 100644
--- a/libavformat/lrcenc.c
+++ b/libavformat/lrcenc.c
@@ -140,7 +140,7 @@ static int lrc_write_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_lrc_muxer = {
+const AVOutputFormat ff_lrc_muxer = {
     .name           = "lrc",
     .long_name      = NULL_IF_CONFIG_SMALL("LRC lyrics"),
     .extensions     = "lrc",
diff --git a/libavformat/luodatdec.c b/libavformat/luodatdec.c
index 3ec494a911..fbd621dae6 100644
--- a/libavformat/luodatdec.c
+++ b/libavformat/luodatdec.c
@@ -115,7 +115,7 @@ static int dat_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_luodat_demuxer = {
+const AVInputFormat ff_luodat_demuxer = {
     .name           = "luodat",
     .long_name      = NULL_IF_CONFIG_SMALL("Video CCTV DAT"),
     .read_probe     = dat_probe,
diff --git a/libavformat/lvfdec.c b/libavformat/lvfdec.c
index 4c87728def..cd64fb9aee 100644
--- a/libavformat/lvfdec.c
+++ b/libavformat/lvfdec.c
@@ -145,7 +145,7 @@ static int lvf_read_packet(AVFormatContext *s, AVPacket *pkt)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_lvf_demuxer = {
+const AVInputFormat ff_lvf_demuxer = {
     .name        = "lvf",
     .long_name   = NULL_IF_CONFIG_SMALL("LVF"),
     .read_probe  = lvf_probe,
diff --git a/libavformat/lxfdec.c b/libavformat/lxfdec.c
index 509d19fe7f..ebb745d360 100644
--- a/libavformat/lxfdec.c
+++ b/libavformat/lxfdec.c
@@ -334,7 +334,7 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_lxf_demuxer = {
+const AVInputFormat ff_lxf_demuxer = {
     .name           = "lxf",
     .long_name      = NULL_IF_CONFIG_SMALL("VR native stream (LXF)"),
     .priv_data_size = sizeof(LXFDemuxContext),
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 116e331215..63faea4e35 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -4306,7 +4306,7 @@ static const AVClass webm_dash_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_matroska_demuxer = {
+const AVInputFormat ff_matroska_demuxer = {
     .name           = "matroska,webm",
     .long_name      = NULL_IF_CONFIG_SMALL("Matroska / WebM"),
     .extensions     = "mkv,mk3d,mka,mks,webm",
@@ -4319,7 +4319,7 @@ AVInputFormat ff_matroska_demuxer = {
     .mime_type      = "audio/webm,audio/x-matroska,video/webm,video/x-matroska"
 };
 
-AVInputFormat ff_webm_dash_manifest_demuxer = {
+const AVInputFormat ff_webm_dash_manifest_demuxer = {
     .name           = "webm_dash_manifest",
     .long_name      = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"),
     .priv_data_size = sizeof(MatroskaDemuxContext),
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 5ac4db458b..186a25d920 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -2837,7 +2837,7 @@ static const AVClass matroska_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_matroska_muxer = {
+const AVOutputFormat ff_matroska_muxer = {
     .name              = "matroska",
     .long_name         = NULL_IF_CONFIG_SMALL("Matroska"),
     .mime_type         = "video/x-matroska",
@@ -2873,7 +2873,7 @@ static const AVClass webm_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_webm_muxer = {
+const AVOutputFormat ff_webm_muxer = {
     .name              = "webm",
     .long_name         = NULL_IF_CONFIG_SMALL("WebM"),
     .mime_type         = "video/webm",
@@ -2902,7 +2902,7 @@ static const AVClass mka_class = {
     .option     = options,
     .version    = LIBAVUTIL_VERSION_INT,
 };
-AVOutputFormat ff_matroska_audio_muxer = {
+const AVOutputFormat ff_matroska_audio_muxer = {
     .name              = "matroska",
     .long_name         = NULL_IF_CONFIG_SMALL("Matroska Audio"),
     .mime_type         = "audio/x-matroska",
diff --git a/libavformat/mca.c b/libavformat/mca.c
index 27cfb1c777..0fd5ce8aaf 100644
--- a/libavformat/mca.c
+++ b/libavformat/mca.c
@@ -217,7 +217,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_mca_demuxer = {
+const AVInputFormat ff_mca_demuxer = {
     .name           = "mca",
     .long_name      = NULL_IF_CONFIG_SMALL("MCA Audio Format"),
     .priv_data_size = sizeof(MCADemuxContext),
diff --git a/libavformat/mccdec.c b/libavformat/mccdec.c
index 2a0b7905a0..a096ac6e93 100644
--- a/libavformat/mccdec.c
+++ b/libavformat/mccdec.c
@@ -225,7 +225,7 @@ static int mcc_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_mcc_demuxer = {
+const AVInputFormat ff_mcc_demuxer = {
     .name           = "mcc",
     .long_name      = NULL_IF_CONFIG_SMALL("MacCaption"),
     .priv_data_size = sizeof(MCCContext),
diff --git a/libavformat/mgsts.c b/libavformat/mgsts.c
index 415e052725..02f65e7b1b 100644
--- a/libavformat/mgsts.c
+++ b/libavformat/mgsts.c
@@ -96,7 +96,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_mgsts_demuxer = {
+const AVInputFormat ff_mgsts_demuxer = {
     .name        = "mgsts",
     .long_name   = NULL_IF_CONFIG_SMALL("Metal Gear Solid: The Twin Snakes"),
     .read_probe  = read_probe,
diff --git a/libavformat/microdvddec.c b/libavformat/microdvddec.c
index ecebff101c..3c45c72595 100644
--- a/libavformat/microdvddec.c
+++ b/libavformat/microdvddec.c
@@ -203,7 +203,7 @@ static const AVClass microdvd_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_microdvd_demuxer = {
+const AVInputFormat ff_microdvd_demuxer = {
     .name           = "microdvd",
     .long_name      = NULL_IF_CONFIG_SMALL("MicroDVD subtitle format"),
     .priv_data_size = sizeof(MicroDVDContext),
diff --git a/libavformat/microdvdenc.c b/libavformat/microdvdenc.c
index 1cd215d8de..4db5e70161 100644
--- a/libavformat/microdvdenc.c
+++ b/libavformat/microdvdenc.c
@@ -55,7 +55,7 @@ static int microdvd_write_packet(AVFormatContext *avf, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_microdvd_muxer = {
+const AVOutputFormat ff_microdvd_muxer = {
     .name           = "microdvd",
     .long_name      = NULL_IF_CONFIG_SMALL("MicroDVD subtitle format"),
     .mime_type      = "text/x-microdvd",
diff --git a/libavformat/mkvtimestamp_v2.c b/libavformat/mkvtimestamp_v2.c
index 7ba6691952..27c7d7a68b 100644
--- a/libavformat/mkvtimestamp_v2.c
+++ b/libavformat/mkvtimestamp_v2.c
@@ -40,7 +40,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_mkvtimestamp_v2_muxer = {
+const AVOutputFormat ff_mkvtimestamp_v2_muxer = {
     .name         = "mkvtimestamp_v2",
     .long_name    = NULL_IF_CONFIG_SMALL("extract pts as timecode v2 format, as defined by mkvtoolnix"),
     .audio_codec  = AV_CODEC_ID_NONE,
diff --git a/libavformat/mlpdec.c b/libavformat/mlpdec.c
index 40b1833761..6f2ba5d874 100644
--- a/libavformat/mlpdec.c
+++ b/libavformat/mlpdec.c
@@ -57,7 +57,7 @@ static int mlp_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(mlp)
-AVInputFormat ff_mlp_demuxer = {
+const AVInputFormat ff_mlp_demuxer = {
     .name           = "mlp",
     .long_name      = NULL_IF_CONFIG_SMALL("raw MLP"),
     .read_probe     = mlp_probe,
@@ -78,7 +78,7 @@ static int thd_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(truehd)
-AVInputFormat ff_truehd_demuxer = {
+const AVInputFormat ff_truehd_demuxer = {
     .name           = "truehd",
     .long_name      = NULL_IF_CONFIG_SMALL("raw TrueHD"),
     .read_probe     = thd_probe,
diff --git a/libavformat/mlvdec.c b/libavformat/mlvdec.c
index 1ddef3461e..998bf42dd6 100644
--- a/libavformat/mlvdec.c
+++ b/libavformat/mlvdec.c
@@ -481,7 +481,7 @@ static int read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_mlv_demuxer = {
+const AVInputFormat ff_mlv_demuxer = {
     .name           = "mlv",
     .long_name      = NULL_IF_CONFIG_SMALL("Magic Lantern Video (MLV)"),
     .priv_data_size = sizeof(MlvContext),
diff --git a/libavformat/mm.c b/libavformat/mm.c
index 02ffbcd824..d1acfef445 100644
--- a/libavformat/mm.c
+++ b/libavformat/mm.c
@@ -190,7 +190,7 @@ static int read_packet(AVFormatContext *s,
     }
 }
 
-AVInputFormat ff_mm_demuxer = {
+const AVInputFormat ff_mm_demuxer = {
     .name           = "mm",
     .long_name      = NULL_IF_CONFIG_SMALL("American Laser Games MM"),
     .priv_data_size = sizeof(MmDemuxContext),
diff --git a/libavformat/mmf.c b/libavformat/mmf.c
index e4768db064..0c067a1025 100644
--- a/libavformat/mmf.c
+++ b/libavformat/mmf.c
@@ -295,7 +295,7 @@ static int mmf_read_packet(AVFormatContext *s, AVPacket *pkt)
 }
 
 #if CONFIG_MMF_DEMUXER
-AVInputFormat ff_mmf_demuxer = {
+const AVInputFormat ff_mmf_demuxer = {
     .name           = "mmf",
     .long_name      = NULL_IF_CONFIG_SMALL("Yamaha SMAF"),
     .priv_data_size = sizeof(MMFContext),
@@ -307,7 +307,7 @@ AVInputFormat ff_mmf_demuxer = {
 #endif
 
 #if CONFIG_MMF_MUXER
-AVOutputFormat ff_mmf_muxer = {
+const AVOutputFormat ff_mmf_muxer = {
     .name           = "mmf",
     .long_name      = NULL_IF_CONFIG_SMALL("Yamaha SMAF"),
     .mime_type      = "application/vnd.smaf",
diff --git a/libavformat/mods.c b/libavformat/mods.c
index a26db87e6c..34524a19d8 100644
--- a/libavformat/mods.c
+++ b/libavformat/mods.c
@@ -91,7 +91,7 @@ static int mods_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_mods_demuxer = {
+const AVInputFormat ff_mods_demuxer = {
     .name           = "mods",
     .long_name      = NULL_IF_CONFIG_SMALL("MobiClip MODS"),
     .read_probe     = mods_probe,
diff --git a/libavformat/moflex.c b/libavformat/moflex.c
index dabe113e6b..0adb5f4864 100644
--- a/libavformat/moflex.c
+++ b/libavformat/moflex.c
@@ -375,7 +375,7 @@ static int moflex_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_moflex_demuxer = {
+const AVInputFormat ff_moflex_demuxer = {
     .name           = "moflex",
     .long_name      = NULL_IF_CONFIG_SMALL("MobiClip MOFLEX"),
     .priv_data_size = sizeof(MOFLEXDemuxContext),
diff --git a/libavformat/mov.c b/libavformat/mov.c
index f6e96f31eb..81e2395f12 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -8218,7 +8218,7 @@ static const AVClass mov_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_mov_demuxer = {
+const AVInputFormat ff_mov_demuxer = {
     .name           = "mov,mp4,m4a,3gp,3g2,mj2",
     .long_name      = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
     .priv_class     = &mov_class,
diff --git a/libavformat/movenc.c b/libavformat/movenc.c
index b3d1fda435..f33792661b 100644
--- a/libavformat/movenc.c
+++ b/libavformat/movenc.c
@@ -7209,7 +7209,7 @@ static const AVCodecTag codec_f4v_tags[] = {
 
 #if CONFIG_MOV_MUXER
 MOV_CLASS(mov)
-AVOutputFormat ff_mov_muxer = {
+const AVOutputFormat ff_mov_muxer = {
     .name              = "mov",
     .long_name         = NULL_IF_CONFIG_SMALL("QuickTime / MOV"),
     .extensions        = "mov",
@@ -7232,7 +7232,7 @@ AVOutputFormat ff_mov_muxer = {
 #endif
 #if CONFIG_TGP_MUXER
 MOV_CLASS(tgp)
-AVOutputFormat ff_tgp_muxer = {
+const AVOutputFormat ff_tgp_muxer = {
     .name              = "3gp",
     .long_name         = NULL_IF_CONFIG_SMALL("3GP (3GPP file format)"),
     .extensions        = "3gp",
@@ -7252,7 +7252,7 @@ AVOutputFormat ff_tgp_muxer = {
 #endif
 #if CONFIG_MP4_MUXER
 MOV_CLASS(mp4)
-AVOutputFormat ff_mp4_muxer = {
+const AVOutputFormat ff_mp4_muxer = {
     .name              = "mp4",
     .long_name         = NULL_IF_CONFIG_SMALL("MP4 (MPEG-4 Part 14)"),
     .mime_type         = "video/mp4",
@@ -7274,7 +7274,7 @@ AVOutputFormat ff_mp4_muxer = {
 #endif
 #if CONFIG_PSP_MUXER
 MOV_CLASS(psp)
-AVOutputFormat ff_psp_muxer = {
+const AVOutputFormat ff_psp_muxer = {
     .name              = "psp",
     .long_name         = NULL_IF_CONFIG_SMALL("PSP MP4 (MPEG-4 Part 14)"),
     .extensions        = "mp4,psp",
@@ -7295,7 +7295,7 @@ AVOutputFormat ff_psp_muxer = {
 #endif
 #if CONFIG_TG2_MUXER
 MOV_CLASS(tg2)
-AVOutputFormat ff_tg2_muxer = {
+const AVOutputFormat ff_tg2_muxer = {
     .name              = "3g2",
     .long_name         = NULL_IF_CONFIG_SMALL("3GP2 (3GPP2 file format)"),
     .extensions        = "3g2",
@@ -7315,7 +7315,7 @@ AVOutputFormat ff_tg2_muxer = {
 #endif
 #if CONFIG_IPOD_MUXER
 MOV_CLASS(ipod)
-AVOutputFormat ff_ipod_muxer = {
+const AVOutputFormat ff_ipod_muxer = {
     .name              = "ipod",
     .long_name         = NULL_IF_CONFIG_SMALL("iPod H.264 MP4 (MPEG-4 Part 14)"),
     .mime_type         = "video/mp4",
@@ -7336,7 +7336,7 @@ AVOutputFormat ff_ipod_muxer = {
 #endif
 #if CONFIG_ISMV_MUXER
 MOV_CLASS(ismv)
-AVOutputFormat ff_ismv_muxer = {
+const AVOutputFormat ff_ismv_muxer = {
     .name              = "ismv",
     .long_name         = NULL_IF_CONFIG_SMALL("ISMV/ISMA (Smooth Streaming)"),
     .mime_type         = "video/mp4",
@@ -7358,7 +7358,7 @@ AVOutputFormat ff_ismv_muxer = {
 #endif
 #if CONFIG_F4V_MUXER
 MOV_CLASS(f4v)
-AVOutputFormat ff_f4v_muxer = {
+const AVOutputFormat ff_f4v_muxer = {
     .name              = "f4v",
     .long_name         = NULL_IF_CONFIG_SMALL("F4V Adobe Flash Video"),
     .mime_type         = "application/f4v",
diff --git a/libavformat/mp3dec.c b/libavformat/mp3dec.c
index 53f803ef55..611b423aea 100644
--- a/libavformat/mp3dec.c
+++ b/libavformat/mp3dec.c
@@ -606,7 +606,7 @@ static const AVClass demuxer_class = {
     .category   = AV_CLASS_CATEGORY_DEMUXER,
 };
 
-AVInputFormat ff_mp3_demuxer = {
+const AVInputFormat ff_mp3_demuxer = {
     .name           = "mp3",
     .long_name      = NULL_IF_CONFIG_SMALL("MP2/3 (MPEG audio layer 2/3)"),
     .read_probe     = mp3_read_probe,
diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c
index 6607560086..c8328b8b9d 100644
--- a/libavformat/mp3enc.c
+++ b/libavformat/mp3enc.c
@@ -636,7 +636,7 @@ static void mp3_deinit(struct AVFormatContext *s)
     av_freep(&mp3->xing_frame);
 }
 
-AVOutputFormat ff_mp3_muxer = {
+const AVOutputFormat ff_mp3_muxer = {
     .name              = "mp3",
     .long_name         = NULL_IF_CONFIG_SMALL("MP3 (MPEG audio layer 3)"),
     .mime_type         = "audio/mpeg",
diff --git a/libavformat/mpc.c b/libavformat/mpc.c
index 31a2072406..9eaf7de0bc 100644
--- a/libavformat/mpc.c
+++ b/libavformat/mpc.c
@@ -218,7 +218,7 @@ static int mpc_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
 }
 
 
-AVInputFormat ff_mpc_demuxer = {
+const AVInputFormat ff_mpc_demuxer = {
     .name           = "mpc",
     .long_name      = NULL_IF_CONFIG_SMALL("Musepack"),
     .priv_data_size = sizeof(MPCContext),
diff --git a/libavformat/mpc8.c b/libavformat/mpc8.c
index b12a417f63..ff6f43231c 100644
--- a/libavformat/mpc8.c
+++ b/libavformat/mpc8.c
@@ -325,7 +325,7 @@ static int mpc8_read_seek(AVFormatContext *s, int stream_index, int64_t timestam
 }
 
 
-AVInputFormat ff_mpc8_demuxer = {
+const AVInputFormat ff_mpc8_demuxer = {
     .name           = "mpc8",
     .long_name      = NULL_IF_CONFIG_SMALL("Musepack SV8"),
     .priv_data_size = sizeof(MPCContext),
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 0ddeaa9fb8..fb1d54e52f 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -681,7 +681,7 @@ static int64_t mpegps_read_dts(AVFormatContext *s, int stream_index,
     return dts;
 }
 
-AVInputFormat ff_mpegps_demuxer = {
+const AVInputFormat ff_mpegps_demuxer = {
     .name           = "mpeg",
     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-PS (MPEG-2 Program Stream)"),
     .priv_data_size = sizeof(MpegDemuxContext),
@@ -1040,7 +1040,7 @@ static const AVClass vobsub_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_vobsub_demuxer = {
+const AVInputFormat ff_vobsub_demuxer = {
     .name           = "vobsub",
     .long_name      = NULL_IF_CONFIG_SMALL("VobSub subtitle format"),
     .priv_data_size = sizeof(VobSubDemuxContext),
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index d37f181eaa..93c4920904 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -83,10 +83,10 @@ typedef struct MpegMuxContext {
     int preload;
 } MpegMuxContext;
 
-extern AVOutputFormat ff_mpeg1vcd_muxer;
-extern AVOutputFormat ff_mpeg2dvd_muxer;
-extern AVOutputFormat ff_mpeg2svcd_muxer;
-extern AVOutputFormat ff_mpeg2vob_muxer;
+extern const AVOutputFormat ff_mpeg1vcd_muxer;
+extern const AVOutputFormat ff_mpeg2dvd_muxer;
+extern const AVOutputFormat ff_mpeg2svcd_muxer;
+extern const AVOutputFormat ff_mpeg2vob_muxer;
 
 static int put_pack_header(AVFormatContext *ctx, uint8_t *buf,
                            int64_t timestamp)
@@ -1290,7 +1290,7 @@ static const AVClass flavor ## _class = {       \
 
 #if CONFIG_MPEG1SYSTEM_MUXER
 MPEGENC_CLASS(mpeg)
-AVOutputFormat ff_mpeg1system_muxer = {
+const AVOutputFormat ff_mpeg1system_muxer = {
     .name              = "mpeg",
     .long_name         = NULL_IF_CONFIG_SMALL("MPEG-1 Systems / MPEG program stream"),
     .mime_type         = "video/mpeg",
@@ -1308,7 +1308,7 @@ AVOutputFormat ff_mpeg1system_muxer = {
 
 #if CONFIG_MPEG1VCD_MUXER
 MPEGENC_CLASS(vcd)
-AVOutputFormat ff_mpeg1vcd_muxer = {
+const AVOutputFormat ff_mpeg1vcd_muxer = {
     .name              = "vcd",
     .long_name         = NULL_IF_CONFIG_SMALL("MPEG-1 Systems / MPEG program stream (VCD)"),
     .mime_type         = "video/mpeg",
@@ -1325,7 +1325,7 @@ AVOutputFormat ff_mpeg1vcd_muxer = {
 
 #if CONFIG_MPEG2VOB_MUXER
 MPEGENC_CLASS(vob)
-AVOutputFormat ff_mpeg2vob_muxer = {
+const AVOutputFormat ff_mpeg2vob_muxer = {
     .name              = "vob",
     .long_name         = NULL_IF_CONFIG_SMALL("MPEG-2 PS (VOB)"),
     .mime_type         = "video/mpeg",
@@ -1344,7 +1344,7 @@ AVOutputFormat ff_mpeg2vob_muxer = {
 /* Same as mpeg2vob_mux except that the pack size is 2324 */
 #if CONFIG_MPEG2SVCD_MUXER
 MPEGENC_CLASS(svcd)
-AVOutputFormat ff_mpeg2svcd_muxer = {
+const AVOutputFormat ff_mpeg2svcd_muxer = {
     .name              = "svcd",
     .long_name         = NULL_IF_CONFIG_SMALL("MPEG-2 PS (SVCD)"),
     .mime_type         = "video/mpeg",
@@ -1363,7 +1363,7 @@ AVOutputFormat ff_mpeg2svcd_muxer = {
 /*  Same as mpeg2vob_mux except the 'is_dvd' flag is set to produce NAV pkts */
 #if CONFIG_MPEG2DVD_MUXER
 MPEGENC_CLASS(dvd)
-AVOutputFormat ff_mpeg2dvd_muxer = {
+const AVOutputFormat ff_mpeg2dvd_muxer = {
     .name              = "dvd",
     .long_name         = NULL_IF_CONFIG_SMALL("MPEG-2 PS (DVD VOB)"),
     .mime_type         = "video/mpeg",
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index f947e2cbb1..9092dbce72 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -266,7 +266,7 @@ typedef struct PESContext {
     int merged_st;
 } PESContext;
 
-extern AVInputFormat ff_mpegts_demuxer;
+extern const AVInputFormat ff_mpegts_demuxer;
 
 static struct Program * get_program(MpegTSContext *ts, unsigned int programid)
 {
@@ -3389,7 +3389,7 @@ void avpriv_mpegts_parse_close(MpegTSContext *ts)
     av_free(ts);
 }
 
-AVInputFormat ff_mpegts_demuxer = {
+const AVInputFormat ff_mpegts_demuxer = {
     .name           = "mpegts",
     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-TS (MPEG-2 Transport Stream)"),
     .priv_data_size = sizeof(MpegTSContext),
@@ -3402,7 +3402,7 @@ AVInputFormat ff_mpegts_demuxer = {
     .priv_class     = &mpegts_class,
 };
 
-AVInputFormat ff_mpegtsraw_demuxer = {
+const AVInputFormat ff_mpegtsraw_demuxer = {
     .name           = "mpegtsraw",
     .long_name      = NULL_IF_CONFIG_SMALL("raw MPEG-TS (MPEG-2 Transport Stream)"),
     .priv_data_size = sizeof(MpegTSContext),
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 51da325e90..3fafce0090 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -2134,7 +2134,7 @@ static const AVClass mpegts_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_mpegts_muxer = {
+const AVOutputFormat ff_mpegts_muxer = {
     .name           = "mpegts",
     .long_name      = NULL_IF_CONFIG_SMALL("MPEG-TS (MPEG-2 Transport Stream)"),
     .mime_type      = "video/MP2T",
diff --git a/libavformat/mpjpeg.c b/libavformat/mpjpeg.c
index 0404e86d7f..c5e5d1e286 100644
--- a/libavformat/mpjpeg.c
+++ b/libavformat/mpjpeg.c
@@ -61,7 +61,7 @@ static const AVClass mpjpeg_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_mpjpeg_muxer = {
+const AVOutputFormat ff_mpjpeg_muxer = {
     .name              = "mpjpeg",
     .long_name         = NULL_IF_CONFIG_SMALL("MIME multipart JPEG"),
     .mime_type         = "multipart/x-mixed-replace;boundary=" BOUNDARY_TAG,
diff --git a/libavformat/mpjpegdec.c b/libavformat/mpjpegdec.c
index 5fe00fd162..28a24184a2 100644
--- a/libavformat/mpjpegdec.c
+++ b/libavformat/mpjpegdec.c
@@ -380,7 +380,7 @@ static const AVClass mpjpeg_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_mpjpeg_demuxer = {
+const AVInputFormat ff_mpjpeg_demuxer = {
     .name              = "mpjpeg",
     .long_name         = NULL_IF_CONFIG_SMALL("MIME multipart JPEG"),
     .mime_type         = "multipart/x-mixed-replace",
diff --git a/libavformat/mpl2dec.c b/libavformat/mpl2dec.c
index 38445c7aad..b99acff157 100644
--- a/libavformat/mpl2dec.c
+++ b/libavformat/mpl2dec.c
@@ -145,7 +145,7 @@ static int mpl2_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_mpl2_demuxer = {
+const AVInputFormat ff_mpl2_demuxer = {
     .name           = "mpl2",
     .long_name      = NULL_IF_CONFIG_SMALL("MPL2 subtitles"),
     .priv_data_size = sizeof(MPL2Context),
diff --git a/libavformat/mpsubdec.c b/libavformat/mpsubdec.c
index c113be5eba..ee53be17d6 100644
--- a/libavformat/mpsubdec.c
+++ b/libavformat/mpsubdec.c
@@ -193,7 +193,7 @@ static int mpsub_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_mpsub_demuxer = {
+const AVInputFormat ff_mpsub_demuxer = {
     .name           = "mpsub",
     .long_name      = NULL_IF_CONFIG_SMALL("MPlayer subtitles"),
     .priv_data_size = sizeof(MPSubContext),
diff --git a/libavformat/msf.c b/libavformat/msf.c
index 155f488e44..ca2b3a3bf5 100644
--- a/libavformat/msf.c
+++ b/libavformat/msf.c
@@ -100,7 +100,7 @@ static int msf_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align ? par->block_align : 1024 * par->channels);
 }
 
-AVInputFormat ff_msf_demuxer = {
+const AVInputFormat ff_msf_demuxer = {
     .name           = "msf",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony PS3 MSF"),
     .read_probe     = msf_probe,
diff --git a/libavformat/msnwc_tcp.c b/libavformat/msnwc_tcp.c
index 650f0d2713..95d4e2bd33 100644
--- a/libavformat/msnwc_tcp.c
+++ b/libavformat/msnwc_tcp.c
@@ -136,7 +136,7 @@ static int msnwc_tcp_read_packet(AVFormatContext *ctx, AVPacket *pkt)
     return HEADER_SIZE + size;
 }
 
-AVInputFormat ff_msnwc_tcp_demuxer = {
+const AVInputFormat ff_msnwc_tcp_demuxer = {
     .name        = "msnwctcp",
     .long_name   = NULL_IF_CONFIG_SMALL("MSN TCP Webcam stream"),
     .read_probe  = msnwc_tcp_probe,
diff --git a/libavformat/mspdec.c b/libavformat/mspdec.c
index 4845eb3729..44854e99c2 100644
--- a/libavformat/mspdec.c
+++ b/libavformat/mspdec.c
@@ -106,7 +106,7 @@ static int msp_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_msp_demuxer = {
+const AVInputFormat ff_msp_demuxer = {
     .name         = "msp",
     .long_name    = NULL_IF_CONFIG_SMALL("Microsoft Paint (MSP))"),
     .read_probe   = msp_probe,
diff --git a/libavformat/mtaf.c b/libavformat/mtaf.c
index 8764a43a79..5da82e713b 100644
--- a/libavformat/mtaf.c
+++ b/libavformat/mtaf.c
@@ -71,7 +71,7 @@ static int mtaf_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_mtaf_demuxer = {
+const AVInputFormat ff_mtaf_demuxer = {
     .name           = "mtaf",
     .long_name      = NULL_IF_CONFIG_SMALL("Konami PS2 MTAF"),
     .read_probe     = mtaf_probe,
diff --git a/libavformat/mtv.c b/libavformat/mtv.c
index e731d91077..26a0fd0ea4 100644
--- a/libavformat/mtv.c
+++ b/libavformat/mtv.c
@@ -225,7 +225,7 @@ static int mtv_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_mtv_demuxer = {
+const AVInputFormat ff_mtv_demuxer = {
     .name           = "mtv",
     .long_name      = NULL_IF_CONFIG_SMALL("MTV"),
     .priv_data_size = sizeof(MTVDemuxContext),
diff --git a/libavformat/musx.c b/libavformat/musx.c
index 9dd721182a..fd5a9297f9 100644
--- a/libavformat/musx.c
+++ b/libavformat/musx.c
@@ -178,7 +178,7 @@ static int musx_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_musx_demuxer = {
+const AVInputFormat ff_musx_demuxer = {
     .name           = "musx",
     .long_name      = NULL_IF_CONFIG_SMALL("Eurocom MUSX"),
     .read_probe     = musx_probe,
diff --git a/libavformat/mvdec.c b/libavformat/mvdec.c
index 2aef93a735..2f72f9eb4f 100644
--- a/libavformat/mvdec.c
+++ b/libavformat/mvdec.c
@@ -498,7 +498,7 @@ static int mv_read_seek(AVFormatContext *avctx, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_mv_demuxer = {
+const AVInputFormat ff_mv_demuxer = {
     .name           = "mv",
     .long_name      = NULL_IF_CONFIG_SMALL("Silicon Graphics Movie"),
     .priv_data_size = sizeof(MvContext),
diff --git a/libavformat/mvi.c b/libavformat/mvi.c
index d005001f5a..4c67e3569d 100644
--- a/libavformat/mvi.c
+++ b/libavformat/mvi.c
@@ -143,7 +143,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_mvi_demuxer = {
+const AVInputFormat ff_mvi_demuxer = {
     .name           = "mvi",
     .long_name      = NULL_IF_CONFIG_SMALL("Motion Pixels MVI"),
     .priv_data_size = sizeof(MviDemuxContext),
diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c
index 1f372affcb..a9d4944e09 100644
--- a/libavformat/mxfdec.c
+++ b/libavformat/mxfdec.c
@@ -3911,7 +3911,7 @@ static const AVClass demuxer_class = {
     .category   = AV_CLASS_CATEGORY_DEMUXER,
 };
 
-AVInputFormat ff_mxf_demuxer = {
+const AVInputFormat ff_mxf_demuxer = {
     .name           = "mxf",
     .long_name      = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format)"),
     .flags          = AVFMT_SEEK_TO_PTS,
diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
index 7a16bf9155..5ec619675b 100644
--- a/libavformat/mxfenc.c
+++ b/libavformat/mxfenc.c
@@ -61,8 +61,8 @@
 #include "mxf.h"
 #include "config.h"
 
-extern AVOutputFormat ff_mxf_d10_muxer;
-extern AVOutputFormat ff_mxf_opatom_muxer;
+extern const AVOutputFormat ff_mxf_d10_muxer;
+extern const AVOutputFormat ff_mxf_opatom_muxer;
 
 #define EDIT_UNITS_PER_BODY 250
 #define KAG_SIZE 512
@@ -3239,7 +3239,7 @@ static const AVClass mxf_opatom_muxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_mxf_muxer = {
+const AVOutputFormat ff_mxf_muxer = {
     .name              = "mxf",
     .long_name         = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format)"),
     .mime_type         = "application/mxf",
@@ -3256,7 +3256,7 @@ AVOutputFormat ff_mxf_muxer = {
     .priv_class        = &mxf_muxer_class,
 };
 
-AVOutputFormat ff_mxf_d10_muxer = {
+const AVOutputFormat ff_mxf_d10_muxer = {
     .name              = "mxf_d10",
     .long_name         = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format) D-10 Mapping"),
     .mime_type         = "application/mxf",
@@ -3272,7 +3272,7 @@ AVOutputFormat ff_mxf_d10_muxer = {
     .priv_class        = &mxf_d10_muxer_class,
 };
 
-AVOutputFormat ff_mxf_opatom_muxer = {
+const AVOutputFormat ff_mxf_opatom_muxer = {
     .name              = "mxf_opatom",
     .long_name         = NULL_IF_CONFIG_SMALL("MXF (Material eXchange Format) Operational Pattern Atom"),
     .mime_type         = "application/mxf",
diff --git a/libavformat/mxg.c b/libavformat/mxg.c
index fe5879ecf0..d5c1d666fc 100644
--- a/libavformat/mxg.c
+++ b/libavformat/mxg.c
@@ -249,7 +249,7 @@ static int mxg_close(struct AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_mxg_demuxer = {
+const AVInputFormat ff_mxg_demuxer = {
     .name           = "mxg",
     .long_name      = NULL_IF_CONFIG_SMALL("MxPEG clip"),
     .priv_data_size = sizeof(MXGContext),
diff --git a/libavformat/ncdec.c b/libavformat/ncdec.c
index f2066b485a..ff5eb189bc 100644
--- a/libavformat/ncdec.c
+++ b/libavformat/ncdec.c
@@ -90,7 +90,7 @@ static int nc_read_packet(AVFormatContext *s, AVPacket *pkt)
     return size;
 }
 
-AVInputFormat ff_nc_demuxer = {
+const AVInputFormat ff_nc_demuxer = {
     .name           = "nc",
     .long_name      = NULL_IF_CONFIG_SMALL("NC camera feed"),
     .read_probe     = nc_probe,
diff --git a/libavformat/nistspheredec.c b/libavformat/nistspheredec.c
index 78e938da10..b606ce72aa 100644
--- a/libavformat/nistspheredec.c
+++ b/libavformat/nistspheredec.c
@@ -132,7 +132,7 @@ static int nist_read_header(AVFormatContext *s)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_nistsphere_demuxer = {
+const AVInputFormat ff_nistsphere_demuxer = {
     .name           = "nistsphere",
     .long_name      = NULL_IF_CONFIG_SMALL("NIST SPeech HEader REsources"),
     .read_probe     = nist_probe,
diff --git a/libavformat/nspdec.c b/libavformat/nspdec.c
index 68f8f99eb3..3aaf887746 100644
--- a/libavformat/nspdec.c
+++ b/libavformat/nspdec.c
@@ -96,7 +96,7 @@ static int nsp_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_nsp_demuxer = {
+const AVInputFormat ff_nsp_demuxer = {
     .name           = "nsp",
     .long_name      = NULL_IF_CONFIG_SMALL("Computerized Speech Lab NSP"),
     .read_probe     = nsp_probe,
diff --git a/libavformat/nsvdec.c b/libavformat/nsvdec.c
index 4fab52ed36..b79d0dcc62 100644
--- a/libavformat/nsvdec.c
+++ b/libavformat/nsvdec.c
@@ -734,7 +734,7 @@ static int nsv_probe(const AVProbeData *p)
     return score;
 }
 
-AVInputFormat ff_nsv_demuxer = {
+const AVInputFormat ff_nsv_demuxer = {
     .name           = "nsv",
     .long_name      = NULL_IF_CONFIG_SMALL("Nullsoft Streaming Video"),
     .priv_data_size = sizeof(NSVContext),
diff --git a/libavformat/nullenc.c b/libavformat/nullenc.c
index fd293d72a6..7354913726 100644
--- a/libavformat/nullenc.c
+++ b/libavformat/nullenc.c
@@ -26,7 +26,7 @@ static int null_write_packet(struct AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_null_muxer = {
+const AVOutputFormat ff_null_muxer = {
     .name              = "null",
     .long_name         = NULL_IF_CONFIG_SMALL("raw null video"),
     .audio_codec       = AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE),
diff --git a/libavformat/nutdec.c b/libavformat/nutdec.c
index d1f3496990..46f21ddd57 100644
--- a/libavformat/nutdec.c
+++ b/libavformat/nutdec.c
@@ -1292,7 +1292,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_nut_demuxer = {
+const AVInputFormat ff_nut_demuxer = {
     .name           = "nut",
     .long_name      = NULL_IF_CONFIG_SMALL("NUT"),
     .flags          = AVFMT_SEEK_TO_PTS,
diff --git a/libavformat/nutenc.c b/libavformat/nutenc.c
index 1dcb2be1b1..6fb0a810e1 100644
--- a/libavformat/nutenc.c
+++ b/libavformat/nutenc.c
@@ -1228,7 +1228,7 @@ static const AVClass class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_nut_muxer = {
+const AVOutputFormat ff_nut_muxer = {
     .name           = "nut",
     .long_name      = NULL_IF_CONFIG_SMALL("NUT"),
     .mime_type      = "video/x-nut",
diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index df90df4938..aec87f45fe 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -394,7 +394,7 @@ static int64_t nuv_read_dts(AVFormatContext *s, int stream_index,
 }
 
 
-AVInputFormat ff_nuv_demuxer = {
+const AVInputFormat ff_nuv_demuxer = {
     .name           = "nuv",
     .long_name      = NULL_IF_CONFIG_SMALL("NuppelVideo"),
     .priv_data_size = sizeof(NUVContext),
diff --git a/libavformat/oggdec.c b/libavformat/oggdec.c
index a456c3df60..e5ca3272cd 100644
--- a/libavformat/oggdec.c
+++ b/libavformat/oggdec.c
@@ -966,7 +966,7 @@ static int ogg_probe(const AVProbeData *p)
     return 0;
 }
 
-AVInputFormat ff_ogg_demuxer = {
+const AVInputFormat ff_ogg_demuxer = {
     .name           = "ogg",
     .long_name      = NULL_IF_CONFIG_SMALL("Ogg"),
     .priv_data_size = sizeof(struct ogg),
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c
index f5032759a6..af27957c75 100644
--- a/libavformat/oggenc.c
+++ b/libavformat/oggenc.c
@@ -745,7 +745,7 @@ static void ogg_free(AVFormatContext *s)
 
 #if CONFIG_OGG_MUXER
 OGG_CLASS(ogg, Ogg)
-AVOutputFormat ff_ogg_muxer = {
+const AVOutputFormat ff_ogg_muxer = {
     .name              = "ogg",
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg"),
     .mime_type         = "application/ogg",
@@ -776,7 +776,7 @@ AVOutputFormat ff_ogg_muxer = {
 
 #if CONFIG_OGA_MUXER
 OGG_CLASS(oga, Ogg audio)
-AVOutputFormat ff_oga_muxer = {
+const AVOutputFormat ff_oga_muxer = {
     .name              = "oga",
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg Audio"),
     .mime_type         = "audio/ogg",
@@ -795,7 +795,7 @@ AVOutputFormat ff_oga_muxer = {
 
 #if CONFIG_OGV_MUXER
 OGG_CLASS(ogv, Ogg video)
-AVOutputFormat ff_ogv_muxer = {
+const AVOutputFormat ff_ogv_muxer = {
     .name              = "ogv",
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg Video"),
     .mime_type         = "video/ogg",
@@ -817,7 +817,7 @@ AVOutputFormat ff_ogv_muxer = {
 
 #if CONFIG_SPX_MUXER
 OGG_CLASS(spx, Ogg Speex)
-AVOutputFormat ff_spx_muxer = {
+const AVOutputFormat ff_spx_muxer = {
     .name              = "spx",
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg Speex"),
     .mime_type         = "audio/ogg",
@@ -836,7 +836,7 @@ AVOutputFormat ff_spx_muxer = {
 
 #if CONFIG_OPUS_MUXER
 OGG_CLASS(opus, Ogg Opus)
-AVOutputFormat ff_opus_muxer = {
+const AVOutputFormat ff_opus_muxer = {
     .name              = "opus",
     .long_name         = NULL_IF_CONFIG_SMALL("Ogg Opus"),
     .mime_type         = "audio/ogg",
diff --git a/libavformat/omadec.c b/libavformat/omadec.c
index 74b32db96d..1c2b04212c 100644
--- a/libavformat/omadec.c
+++ b/libavformat/omadec.c
@@ -624,7 +624,7 @@ wipe:
     return err;
 }
 
-AVInputFormat ff_oma_demuxer = {
+const AVInputFormat ff_oma_demuxer = {
     .name           = "oma",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"),
     .priv_data_size = sizeof(OMAContext),
diff --git a/libavformat/omaenc.c b/libavformat/omaenc.c
index d3c4f62027..ec71956fbd 100644
--- a/libavformat/omaenc.c
+++ b/libavformat/omaenc.c
@@ -94,7 +94,7 @@ static av_cold int oma_write_header(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_oma_muxer = {
+const AVOutputFormat ff_oma_muxer = {
     .name              = "oma",
     .long_name         = NULL_IF_CONFIG_SMALL("Sony OpenMG audio"),
     .mime_type         = "audio/x-oma",
diff --git a/libavformat/paf.c b/libavformat/paf.c
index dbc50100fb..f48b2e60cd 100644
--- a/libavformat/paf.c
+++ b/libavformat/paf.c
@@ -271,7 +271,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
     return pkt->size;
 }
 
-AVInputFormat ff_paf_demuxer = {
+const AVInputFormat ff_paf_demuxer = {
     .name           = "paf",
     .long_name      = NULL_IF_CONFIG_SMALL("Amazing Studio Packed Animation File"),
     .priv_data_size = sizeof(PAFDemuxContext),
diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c
index 9b552936ac..01447c2b7e 100644
--- a/libavformat/pcmdec.c
+++ b/libavformat/pcmdec.c
@@ -108,7 +108,7 @@ static const AVClass name_ ## _demuxer_class = {            \
     .option     = pcm_options,                              \
     .version    = LIBAVUTIL_VERSION_INT,                    \
 };                                                          \
-AVInputFormat ff_pcm_ ## name_ ## _demuxer = {              \
+const AVInputFormat ff_pcm_ ## name_ ## _demuxer = {        \
     .name           = #name_,                               \
     .long_name      = NULL_IF_CONFIG_SMALL(long_name_),     \
     .priv_data_size = sizeof(PCMAudioDemuxerContext),       \
@@ -168,7 +168,7 @@ static const AVClass sln_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_sln_demuxer = {
+const AVInputFormat ff_sln_demuxer = {
     .name           = "sln",
     .long_name      = NULL_IF_CONFIG_SMALL("Asterisk raw pcm"),
     .priv_data_size = sizeof(PCMAudioDemuxerContext),
diff --git a/libavformat/pcmenc.c b/libavformat/pcmenc.c
index 050b9c4aa0..cbfcee7b41 100644
--- a/libavformat/pcmenc.c
+++ b/libavformat/pcmenc.c
@@ -24,7 +24,7 @@
 
 #define PCMDEF_0(name_, long_name_, ext, codec)
 #define PCMDEF_1(name_, long_name_, ext, codec)             \
-AVOutputFormat ff_pcm_ ## name_ ## _muxer = {               \
+const AVOutputFormat ff_pcm_ ## name_ ## _muxer = {         \
     .name         = #name_,                                 \
     .long_name    = NULL_IF_CONFIG_SMALL(long_name_),       \
     .extensions   = ext,                                    \
diff --git a/libavformat/pjsdec.c b/libavformat/pjsdec.c
index 1f1d51c404..40d820a8d6 100644
--- a/libavformat/pjsdec.c
+++ b/libavformat/pjsdec.c
@@ -128,7 +128,7 @@ static int pjs_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_pjs_demuxer = {
+const AVInputFormat ff_pjs_demuxer = {
     .name           = "pjs",
     .long_name      = NULL_IF_CONFIG_SMALL("PJS (Phoenix Japanimation Society) subtitles"),
     .priv_data_size = sizeof(PJSContext),
diff --git a/libavformat/pmpdec.c b/libavformat/pmpdec.c
index 0c2b6f5a96..ce8e89515a 100644
--- a/libavformat/pmpdec.c
+++ b/libavformat/pmpdec.c
@@ -183,7 +183,7 @@ static int pmp_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_pmp_demuxer = {
+const AVInputFormat ff_pmp_demuxer = {
     .name           = "pmp",
     .long_name      = NULL_IF_CONFIG_SMALL("Playstation Portable PMP"),
     .priv_data_size = sizeof(PMPContext),
diff --git a/libavformat/pp_bnk.c b/libavformat/pp_bnk.c
index 07eeca3cd5..9455a575b7 100644
--- a/libavformat/pp_bnk.c
+++ b/libavformat/pp_bnk.c
@@ -332,7 +332,7 @@ static int pp_bnk_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_pp_bnk_demuxer = {
+const AVInputFormat ff_pp_bnk_demuxer = {
     .name           = "pp_bnk",
     .long_name      = NULL_IF_CONFIG_SMALL("Pro Pinball Series Soundbank"),
     .priv_data_size = sizeof(PPBnkCtx),
diff --git a/libavformat/psxstr.c b/libavformat/psxstr.c
index 678b9f90ac..e649ba3ab4 100644
--- a/libavformat/psxstr.c
+++ b/libavformat/psxstr.c
@@ -299,7 +299,7 @@ static int str_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_str_demuxer = {
+const AVInputFormat ff_str_demuxer = {
     .name           = "psxstr",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony Playstation STR"),
     .priv_data_size = sizeof(StrDemuxContext),
diff --git a/libavformat/pva.c b/libavformat/pva.c
index 58ec78750c..8e3013a496 100644
--- a/libavformat/pva.c
+++ b/libavformat/pva.c
@@ -227,7 +227,7 @@ static int64_t pva_read_timestamp(struct AVFormatContext *s, int stream_index,
     return res;
 }
 
-AVInputFormat ff_pva_demuxer = {
+const AVInputFormat ff_pva_demuxer = {
     .name           = "pva",
     .long_name      = NULL_IF_CONFIG_SMALL("TechnoTrend PVA"),
     .priv_data_size = sizeof(PVAContext),
diff --git a/libavformat/pvfdec.c b/libavformat/pvfdec.c
index 4c919942c0..7205b0b37d 100644
--- a/libavformat/pvfdec.c
+++ b/libavformat/pvfdec.c
@@ -65,7 +65,7 @@ static int pvf_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_pvf_demuxer = {
+const AVInputFormat ff_pvf_demuxer = {
     .name           = "pvf",
     .long_name      = NULL_IF_CONFIG_SMALL("PVF (Portable Voice Format)"),
     .read_probe     = pvf_probe,
diff --git a/libavformat/qcp.c b/libavformat/qcp.c
index 168030dc16..206ee8bdce 100644
--- a/libavformat/qcp.c
+++ b/libavformat/qcp.c
@@ -195,7 +195,7 @@ static int qcp_read_packet(AVFormatContext *s, AVPacket *pkt)
     return AVERROR_EOF;
 }
 
-AVInputFormat ff_qcp_demuxer = {
+const AVInputFormat ff_qcp_demuxer = {
     .name           = "qcp",
     .long_name      = NULL_IF_CONFIG_SMALL("QCP"),
     .priv_data_size = sizeof(QCPContext),
diff --git a/libavformat/r3d.c b/libavformat/r3d.c
index 9de0fb52c7..004efac355 100644
--- a/libavformat/r3d.c
+++ b/libavformat/r3d.c
@@ -400,7 +400,7 @@ static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, i
     return 0;
 }
 
-AVInputFormat ff_r3d_demuxer = {
+const AVInputFormat ff_r3d_demuxer = {
     .name           = "r3d",
     .long_name      = NULL_IF_CONFIG_SMALL("REDCODE R3D"),
     .priv_data_size = sizeof(R3DContext),
diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 122afca1b6..c162b52940 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -133,7 +133,7 @@ const AVOption ff_raw_options[] = {
 #if CONFIG_DATA_DEMUXER
 FF_RAW_DEMUXER_CLASS(raw_data)
 
-AVInputFormat ff_data_demuxer = {
+const AVInputFormat ff_data_demuxer = {
     .name           = "data",
     .long_name      = NULL_IF_CONFIG_SMALL("raw data"),
     .read_header    = ff_raw_data_read_header,
diff --git a/libavformat/rawdec.h b/libavformat/rawdec.h
index 34c8adcb19..e64ad8010c 100644
--- a/libavformat/rawdec.h
+++ b/libavformat/rawdec.h
@@ -70,7 +70,7 @@ static const AVClass name ## _demuxer_class = {\
 
 #define FF_DEF_RAWVIDEO_DEMUXER2(shortname, longname, probe, ext, id, flag)\
 FF_RAWVIDEO_DEMUXER_CLASS(shortname)\
-AVInputFormat ff_ ## shortname ## _demuxer = {\
+const AVInputFormat ff_ ## shortname ## _demuxer = {\
     .name           = #shortname,\
     .long_name      = NULL_IF_CONFIG_SMALL(longname),\
     .read_probe     = probe,\
@@ -96,7 +96,7 @@ static const AVClass name ## _demuxer_class = {\
 
 #define FF_DEF_RAWSUB_DEMUXER(shortname, longname, probe, ext, id, flag)\
 FF_RAWSUB_DEMUXER_CLASS(shortname)\
-AVInputFormat ff_ ## shortname ## _demuxer = {\
+const AVInputFormat ff_ ## shortname ## _demuxer = {\
     .name           = #shortname,\
     .long_name      = NULL_IF_CONFIG_SMALL(longname),\
     .read_probe     = probe,\
diff --git a/libavformat/rawenc.c b/libavformat/rawenc.c
index 9e23545543..088b62f369 100644
--- a/libavformat/rawenc.c
+++ b/libavformat/rawenc.c
@@ -57,7 +57,7 @@ static int force_one_stream(AVFormatContext *s)
 /* Note: Do not forget to add new entries to the Makefile as well. */
 
 #if CONFIG_AC3_MUXER
-AVOutputFormat ff_ac3_muxer = {
+const AVOutputFormat ff_ac3_muxer = {
     .name              = "ac3",
     .long_name         = NULL_IF_CONFIG_SMALL("raw AC-3"),
     .mime_type         = "audio/x-ac3",
@@ -90,7 +90,7 @@ static int adx_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_adx_muxer = {
+const AVOutputFormat ff_adx_muxer = {
     .name              = "adx",
     .long_name         = NULL_IF_CONFIG_SMALL("CRI ADX"),
     .extensions        = "adx",
@@ -104,7 +104,7 @@ AVOutputFormat ff_adx_muxer = {
 #endif
 
 #if CONFIG_APTX_MUXER
-AVOutputFormat ff_aptx_muxer = {
+const AVOutputFormat ff_aptx_muxer = {
     .name              = "aptx",
     .long_name         = NULL_IF_CONFIG_SMALL("raw aptX (Audio Processing Technology for Bluetooth)"),
     .extensions        = "aptx",
@@ -117,7 +117,7 @@ AVOutputFormat ff_aptx_muxer = {
 #endif
 
 #if CONFIG_APTX_HD_MUXER
-AVOutputFormat ff_aptx_hd_muxer = {
+const AVOutputFormat ff_aptx_hd_muxer = {
     .name              = "aptx_hd",
     .long_name         = NULL_IF_CONFIG_SMALL("raw aptX HD (Audio Processing Technology for Bluetooth)"),
     .extensions        = "aptxhd",
@@ -130,7 +130,7 @@ AVOutputFormat ff_aptx_hd_muxer = {
 #endif
 
 #if CONFIG_AVS2_MUXER
-AVOutputFormat ff_avs2_muxer = {
+const AVOutputFormat ff_avs2_muxer = {
     .name              = "avs2",
     .long_name         = NULL_IF_CONFIG_SMALL("raw AVS2-P2/IEEE1857.4 video"),
     .extensions        = "avs,avs2",
@@ -143,7 +143,7 @@ AVOutputFormat ff_avs2_muxer = {
 #endif
 
 #if CONFIG_CAVSVIDEO_MUXER
-AVOutputFormat ff_cavsvideo_muxer = {
+const AVOutputFormat ff_cavsvideo_muxer = {
     .name              = "cavsvideo",
     .long_name         = NULL_IF_CONFIG_SMALL("raw Chinese AVS (Audio Video Standard) video"),
     .extensions        = "cavs",
@@ -156,7 +156,7 @@ AVOutputFormat ff_cavsvideo_muxer = {
 #endif
 
 #if CONFIG_CODEC2RAW_MUXER
-AVOutputFormat ff_codec2raw_muxer = {
+const AVOutputFormat ff_codec2raw_muxer = {
     .name              = "codec2raw",
     .long_name         = NULL_IF_CONFIG_SMALL("raw codec2 muxer"),
     .audio_codec       = AV_CODEC_ID_CODEC2,
@@ -169,7 +169,7 @@ AVOutputFormat ff_codec2raw_muxer = {
 
 
 #if CONFIG_DATA_MUXER
-AVOutputFormat ff_data_muxer = {
+const AVOutputFormat ff_data_muxer = {
     .name              = "data",
     .long_name         = NULL_IF_CONFIG_SMALL("raw data"),
     .init              = force_one_stream,
@@ -179,7 +179,7 @@ AVOutputFormat ff_data_muxer = {
 #endif
 
 #if CONFIG_DIRAC_MUXER
-AVOutputFormat ff_dirac_muxer = {
+const AVOutputFormat ff_dirac_muxer = {
     .name              = "dirac",
     .long_name         = NULL_IF_CONFIG_SMALL("raw Dirac"),
     .extensions        = "drc,vc2",
@@ -192,7 +192,7 @@ AVOutputFormat ff_dirac_muxer = {
 #endif
 
 #if CONFIG_DNXHD_MUXER
-AVOutputFormat ff_dnxhd_muxer = {
+const AVOutputFormat ff_dnxhd_muxer = {
     .name              = "dnxhd",
     .long_name         = NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
     .extensions        = "dnxhd,dnxhr",
@@ -205,7 +205,7 @@ AVOutputFormat ff_dnxhd_muxer = {
 #endif
 
 #if CONFIG_DTS_MUXER
-AVOutputFormat ff_dts_muxer = {
+const AVOutputFormat ff_dts_muxer = {
     .name              = "dts",
     .long_name         = NULL_IF_CONFIG_SMALL("raw DTS"),
     .mime_type         = "audio/x-dca",
@@ -219,7 +219,7 @@ AVOutputFormat ff_dts_muxer = {
 #endif
 
 #if CONFIG_EAC3_MUXER
-AVOutputFormat ff_eac3_muxer = {
+const AVOutputFormat ff_eac3_muxer = {
     .name              = "eac3",
     .long_name         = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
     .mime_type         = "audio/x-eac3",
@@ -233,7 +233,7 @@ AVOutputFormat ff_eac3_muxer = {
 #endif
 
 #if CONFIG_G722_MUXER
-AVOutputFormat ff_g722_muxer = {
+const AVOutputFormat ff_g722_muxer = {
     .name              = "g722",
     .long_name         = NULL_IF_CONFIG_SMALL("raw G.722"),
     .mime_type         = "audio/G722",
@@ -247,7 +247,7 @@ AVOutputFormat ff_g722_muxer = {
 #endif
 
 #if CONFIG_G723_1_MUXER
-AVOutputFormat ff_g723_1_muxer = {
+const AVOutputFormat ff_g723_1_muxer = {
     .name              = "g723_1",
     .long_name         = NULL_IF_CONFIG_SMALL("raw G.723.1"),
     .mime_type         = "audio/g723",
@@ -261,7 +261,7 @@ AVOutputFormat ff_g723_1_muxer = {
 #endif
 
 #if CONFIG_G726_MUXER
-AVOutputFormat ff_g726_muxer = {
+const AVOutputFormat ff_g726_muxer = {
     .name              = "g726",
     .long_name         = NULL_IF_CONFIG_SMALL("raw big-endian G.726 (\"left-justified\")"),
     .audio_codec       = AV_CODEC_ID_ADPCM_G726,
@@ -273,7 +273,7 @@ AVOutputFormat ff_g726_muxer = {
 #endif
 
 #if CONFIG_G726LE_MUXER
-AVOutputFormat ff_g726le_muxer = {
+const AVOutputFormat ff_g726le_muxer = {
     .name              = "g726le",
     .long_name         = NULL_IF_CONFIG_SMALL("raw little-endian G.726 (\"right-justified\")"),
     .audio_codec       = AV_CODEC_ID_ADPCM_G726LE,
@@ -285,7 +285,7 @@ AVOutputFormat ff_g726le_muxer = {
 #endif
 
 #if CONFIG_GSM_MUXER
-AVOutputFormat ff_gsm_muxer = {
+const AVOutputFormat ff_gsm_muxer = {
     .name              = "gsm",
     .long_name         = NULL_IF_CONFIG_SMALL("raw GSM"),
     .mime_type         = "audio/x-gsm",
@@ -299,7 +299,7 @@ AVOutputFormat ff_gsm_muxer = {
 #endif
 
 #if CONFIG_H261_MUXER
-AVOutputFormat ff_h261_muxer = {
+const AVOutputFormat ff_h261_muxer = {
     .name              = "h261",
     .long_name         = NULL_IF_CONFIG_SMALL("raw H.261"),
     .mime_type         = "video/x-h261",
@@ -313,7 +313,7 @@ AVOutputFormat ff_h261_muxer = {
 #endif
 
 #if CONFIG_H263_MUXER
-AVOutputFormat ff_h263_muxer = {
+const AVOutputFormat ff_h263_muxer = {
     .name              = "h263",
     .long_name         = NULL_IF_CONFIG_SMALL("raw H.263"),
     .mime_type         = "video/x-h263",
@@ -336,7 +336,7 @@ static int h264_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)
     return 1;
 }
 
-AVOutputFormat ff_h264_muxer = {
+const AVOutputFormat ff_h264_muxer = {
     .name              = "h264",
     .long_name         = NULL_IF_CONFIG_SMALL("raw H.264 video"),
     .extensions        = "h264,264",
@@ -359,7 +359,7 @@ static int hevc_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt)
     return 1;
 }
 
-AVOutputFormat ff_hevc_muxer = {
+const AVOutputFormat ff_hevc_muxer = {
     .name              = "hevc",
     .long_name         = NULL_IF_CONFIG_SMALL("raw HEVC video"),
     .extensions        = "hevc,h265,265",
@@ -373,7 +373,7 @@ AVOutputFormat ff_hevc_muxer = {
 #endif
 
 #if CONFIG_M4V_MUXER
-AVOutputFormat ff_m4v_muxer = {
+const AVOutputFormat ff_m4v_muxer = {
     .name              = "m4v",
     .long_name         = NULL_IF_CONFIG_SMALL("raw MPEG-4 video"),
     .extensions        = "m4v",
@@ -386,7 +386,7 @@ AVOutputFormat ff_m4v_muxer = {
 #endif
 
 #if CONFIG_MJPEG_MUXER
-AVOutputFormat ff_mjpeg_muxer = {
+const AVOutputFormat ff_mjpeg_muxer = {
     .name              = "mjpeg",
     .long_name         = NULL_IF_CONFIG_SMALL("raw MJPEG video"),
     .mime_type         = "video/x-mjpeg",
@@ -400,7 +400,7 @@ AVOutputFormat ff_mjpeg_muxer = {
 #endif
 
 #if CONFIG_MLP_MUXER
-AVOutputFormat ff_mlp_muxer = {
+const AVOutputFormat ff_mlp_muxer = {
     .name              = "mlp",
     .long_name         = NULL_IF_CONFIG_SMALL("raw MLP"),
     .extensions        = "mlp",
@@ -413,7 +413,7 @@ AVOutputFormat ff_mlp_muxer = {
 #endif
 
 #if CONFIG_MP2_MUXER
-AVOutputFormat ff_mp2_muxer = {
+const AVOutputFormat ff_mp2_muxer = {
     .name              = "mp2",
     .long_name         = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
     .mime_type         = "audio/mpeg",
@@ -427,7 +427,7 @@ AVOutputFormat ff_mp2_muxer = {
 #endif
 
 #if CONFIG_MPEG1VIDEO_MUXER
-AVOutputFormat ff_mpeg1video_muxer = {
+const AVOutputFormat ff_mpeg1video_muxer = {
     .name              = "mpeg1video",
     .long_name         = NULL_IF_CONFIG_SMALL("raw MPEG-1 video"),
     .mime_type         = "video/mpeg",
@@ -441,7 +441,7 @@ AVOutputFormat ff_mpeg1video_muxer = {
 #endif
 
 #if CONFIG_MPEG2VIDEO_MUXER
-AVOutputFormat ff_mpeg2video_muxer = {
+const AVOutputFormat ff_mpeg2video_muxer = {
     .name              = "mpeg2video",
     .long_name         = NULL_IF_CONFIG_SMALL("raw MPEG-2 video"),
     .extensions        = "m2v",
@@ -454,7 +454,7 @@ AVOutputFormat ff_mpeg2video_muxer = {
 #endif
 
 #if CONFIG_RAWVIDEO_MUXER
-AVOutputFormat ff_rawvideo_muxer = {
+const AVOutputFormat ff_rawvideo_muxer = {
     .name              = "rawvideo",
     .long_name         = NULL_IF_CONFIG_SMALL("raw video"),
     .extensions        = "yuv,rgb",
@@ -466,7 +466,7 @@ AVOutputFormat ff_rawvideo_muxer = {
 #endif
 
 #if CONFIG_SBC_MUXER
-AVOutputFormat ff_sbc_muxer = {
+const AVOutputFormat ff_sbc_muxer = {
     .name              = "sbc",
     .long_name         = NULL_IF_CONFIG_SMALL("raw SBC"),
     .mime_type         = "audio/x-sbc",
@@ -479,7 +479,7 @@ AVOutputFormat ff_sbc_muxer = {
 #endif
 
 #if CONFIG_TRUEHD_MUXER
-AVOutputFormat ff_truehd_muxer = {
+const AVOutputFormat ff_truehd_muxer = {
     .name              = "truehd",
     .long_name         = NULL_IF_CONFIG_SMALL("raw TrueHD"),
     .extensions        = "thd",
@@ -492,7 +492,7 @@ AVOutputFormat ff_truehd_muxer = {
 #endif
 
 #if CONFIG_VC1_MUXER
-AVOutputFormat ff_vc1_muxer = {
+const AVOutputFormat ff_vc1_muxer = {
     .name              = "vc1",
     .long_name         = NULL_IF_CONFIG_SMALL("raw VC-1 video"),
     .extensions        = "vc1",
diff --git a/libavformat/rawvideodec.c b/libavformat/rawvideodec.c
index 8bde22c4e9..5049a29b9c 100644
--- a/libavformat/rawvideodec.c
+++ b/libavformat/rawvideodec.c
@@ -100,7 +100,7 @@ static const AVClass rawvideo_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_rawvideo_demuxer = {
+const AVInputFormat ff_rawvideo_demuxer = {
     .name           = "rawvideo",
     .long_name      = NULL_IF_CONFIG_SMALL("raw video"),
     .priv_data_size = sizeof(RawVideoDemuxerContext),
diff --git a/libavformat/realtextdec.c b/libavformat/realtextdec.c
index f534774420..22fc58bc99 100644
--- a/libavformat/realtextdec.c
+++ b/libavformat/realtextdec.c
@@ -149,7 +149,7 @@ static int realtext_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_realtext_demuxer = {
+const AVInputFormat ff_realtext_demuxer = {
     .name           = "realtext",
     .long_name      = NULL_IF_CONFIG_SMALL("RealText subtitle format"),
     .priv_data_size = sizeof(RealTextContext),
diff --git a/libavformat/redspark.c b/libavformat/redspark.c
index 0ce8915311..eca182c3a7 100644
--- a/libavformat/redspark.c
+++ b/libavformat/redspark.c
@@ -150,7 +150,7 @@ static int redspark_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_redspark_demuxer = {
+const AVInputFormat ff_redspark_demuxer = {
     .name           =   "redspark",
     .long_name      =   NULL_IF_CONFIG_SMALL("RedSpark"),
     .priv_data_size =   sizeof(RedSparkContext),
diff --git a/libavformat/rl2.c b/libavformat/rl2.c
index fa1b38b133..8b6a7f1827 100644
--- a/libavformat/rl2.c
+++ b/libavformat/rl2.c
@@ -300,7 +300,7 @@ static int rl2_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
     return 0;
 }
 
-AVInputFormat ff_rl2_demuxer = {
+const AVInputFormat ff_rl2_demuxer = {
     .name           = "rl2",
     .long_name      = NULL_IF_CONFIG_SMALL("RL2"),
     .priv_data_size = sizeof(Rl2DemuxContext),
diff --git a/libavformat/rm.h b/libavformat/rm.h
index 7b080e2a36..8f47559a36 100644
--- a/libavformat/rm.h
+++ b/libavformat/rm.h
@@ -34,7 +34,7 @@ RMStream *ff_rm_alloc_rmstream (void);
 void      ff_rm_free_rmstream  (RMStream *rms);
 
 /*< input format for Realmedia-style RTSP streams */
-extern AVInputFormat ff_rdt_demuxer;
+extern const AVInputFormat ff_rdt_demuxer;
 
 /**
  * Read the MDPR chunk, which contains stream-specific codec initialization
diff --git a/libavformat/rmdec.c b/libavformat/rmdec.c
index fc3bff4859..538f549495 100644
--- a/libavformat/rmdec.c
+++ b/libavformat/rmdec.c
@@ -1147,7 +1147,7 @@ static int rm_read_seek(AVFormatContext *s, int stream_index,
 }
 
 
-AVInputFormat ff_rm_demuxer = {
+const AVInputFormat ff_rm_demuxer = {
     .name           = "rm",
     .long_name      = NULL_IF_CONFIG_SMALL("RealMedia"),
     .priv_data_size = sizeof(RMDemuxContext),
@@ -1159,7 +1159,7 @@ AVInputFormat ff_rm_demuxer = {
     .read_seek      = rm_read_seek,
 };
 
-AVInputFormat ff_rdt_demuxer = {
+const AVInputFormat ff_rdt_demuxer = {
     .name           = "rdt",
     .long_name      = NULL_IF_CONFIG_SMALL("RDT demuxer"),
     .priv_data_size = sizeof(RMDemuxContext),
@@ -1406,7 +1406,7 @@ static int ivr_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_ivr_demuxer = {
+const AVInputFormat ff_ivr_demuxer = {
     .name           = "ivr",
     .long_name      = NULL_IF_CONFIG_SMALL("IVR (Internet Video Recording)"),
     .priv_data_size = sizeof(RMDemuxContext),
diff --git a/libavformat/rmenc.c b/libavformat/rmenc.c
index e137dbc44f..1b2b0ecf38 100644
--- a/libavformat/rmenc.c
+++ b/libavformat/rmenc.c
@@ -465,7 +465,7 @@ static int rm_write_trailer(AVFormatContext *s)
 }
 
 
-AVOutputFormat ff_rm_muxer = {
+const AVOutputFormat ff_rm_muxer = {
     .name              = "rm",
     .long_name         = NULL_IF_CONFIG_SMALL("RealMedia"),
     .mime_type         = "application/vnd.rn-realmedia",
diff --git a/libavformat/rpl.c b/libavformat/rpl.c
index b98488c7b1..f5d2b8fe59 100644
--- a/libavformat/rpl.c
+++ b/libavformat/rpl.c
@@ -382,7 +382,7 @@ static int rpl_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_rpl_demuxer = {
+const AVInputFormat ff_rpl_demuxer = {
     .name           = "rpl",
     .long_name      = NULL_IF_CONFIG_SMALL("RPL / ARMovie"),
     .priv_data_size = sizeof(RPLContext),
diff --git a/libavformat/rsd.c b/libavformat/rsd.c
index 9785a55726..ba3b3429b9 100644
--- a/libavformat/rsd.c
+++ b/libavformat/rsd.c
@@ -220,7 +220,7 @@ static int rsd_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_rsd_demuxer = {
+const AVInputFormat ff_rsd_demuxer = {
     .name           =   "rsd",
     .long_name      =   NULL_IF_CONFIG_SMALL("GameCube RSD"),
     .read_probe     =   rsd_probe,
diff --git a/libavformat/rsodec.c b/libavformat/rsodec.c
index 91b86bf006..ffd0fdff0d 100644
--- a/libavformat/rsodec.c
+++ b/libavformat/rsodec.c
@@ -72,7 +72,7 @@ static int rso_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_rso_demuxer = {
+const AVInputFormat ff_rso_demuxer = {
     .name           =   "rso",
     .long_name      =   NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"),
     .extensions     =   "rso",
diff --git a/libavformat/rsoenc.c b/libavformat/rsoenc.c
index 780538a545..fc327d8a2f 100644
--- a/libavformat/rsoenc.c
+++ b/libavformat/rsoenc.c
@@ -91,7 +91,7 @@ static int rso_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_rso_muxer = {
+const AVOutputFormat ff_rso_muxer = {
     .name           =   "rso",
     .long_name      =   NULL_IF_CONFIG_SMALL("Lego Mindstorms RSO"),
     .extensions     =   "rso",
diff --git a/libavformat/rtpenc.c b/libavformat/rtpenc.c
index 557128ce53..2a1c176066 100644
--- a/libavformat/rtpenc.c
+++ b/libavformat/rtpenc.c
@@ -648,7 +648,7 @@ static int rtp_write_trailer(AVFormatContext *s1)
     return 0;
 }
 
-AVOutputFormat ff_rtp_muxer = {
+const AVOutputFormat ff_rtp_muxer = {
     .name              = "rtp",
     .long_name         = NULL_IF_CONFIG_SMALL("RTP output"),
     .priv_data_size    = sizeof(RTPMuxContext),
diff --git a/libavformat/rtpenc_mpegts.c b/libavformat/rtpenc_mpegts.c
index 36c0979ca1..fdc759c179 100644
--- a/libavformat/rtpenc_mpegts.c
+++ b/libavformat/rtpenc_mpegts.c
@@ -187,7 +187,7 @@ static const AVClass rtp_mpegts_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_rtp_mpegts_muxer = {
+const AVOutputFormat ff_rtp_mpegts_muxer = {
     .name              = "rtp_mpegts",
     .long_name         = NULL_IF_CONFIG_SMALL("RTP/mpegts output format"),
     .priv_data_size    = sizeof(MuxChain),
diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c
index a8c5a641cb..3899c26fa4 100644
--- a/libavformat/rtsp.c
+++ b/libavformat/rtsp.c
@@ -2464,7 +2464,7 @@ static const AVClass sdp_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_sdp_demuxer = {
+const AVInputFormat ff_sdp_demuxer = {
     .name           = "sdp",
     .long_name      = NULL_IF_CONFIG_SMALL("SDP"),
     .priv_data_size = sizeof(RTSPState),
@@ -2623,7 +2623,7 @@ static const AVClass rtp_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_rtp_demuxer = {
+const AVInputFormat ff_rtp_demuxer = {
     .name           = "rtp",
     .long_name      = NULL_IF_CONFIG_SMALL("RTP input"),
     .priv_data_size = sizeof(RTSPState),
diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c
index 113da975e1..6e97c23330 100644
--- a/libavformat/rtspdec.c
+++ b/libavformat/rtspdec.c
@@ -983,7 +983,7 @@ static const AVClass rtsp_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_rtsp_demuxer = {
+const AVInputFormat ff_rtsp_demuxer = {
     .name           = "rtsp",
     .long_name      = NULL_IF_CONFIG_SMALL("RTSP input"),
     .priv_data_size = sizeof(RTSPState),
diff --git a/libavformat/rtspenc.c b/libavformat/rtspenc.c
index c320227438..e0fed1eebe 100644
--- a/libavformat/rtspenc.c
+++ b/libavformat/rtspenc.c
@@ -240,7 +240,7 @@ static int rtsp_write_close(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_rtsp_muxer = {
+const AVOutputFormat ff_rtsp_muxer = {
     .name              = "rtsp",
     .long_name         = NULL_IF_CONFIG_SMALL("RTSP output"),
     .priv_data_size    = sizeof(RTSPState),
diff --git a/libavformat/s337m.c b/libavformat/s337m.c
index 9d1b52eb61..37e93db7d5 100644
--- a/libavformat/s337m.c
+++ b/libavformat/s337m.c
@@ -186,7 +186,7 @@ static int s337m_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_s337m_demuxer = {
+const AVInputFormat ff_s337m_demuxer = {
     .name           = "s337m",
     .long_name      = NULL_IF_CONFIG_SMALL("SMPTE 337M"),
     .read_probe     = s337m_probe,
diff --git a/libavformat/samidec.c b/libavformat/samidec.c
index d84f56ce6f..8f97cb7331 100644
--- a/libavformat/samidec.c
+++ b/libavformat/samidec.c
@@ -142,7 +142,7 @@ static int sami_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_sami_demuxer = {
+const AVInputFormat ff_sami_demuxer = {
     .name           = "sami",
     .long_name      = NULL_IF_CONFIG_SMALL("SAMI subtitle format"),
     .priv_data_size = sizeof(SAMIContext),
diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c
index 3014bdaa97..05a6d59086 100644
--- a/libavformat/sapdec.c
+++ b/libavformat/sapdec.c
@@ -234,7 +234,7 @@ static int sap_fetch_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_sap_demuxer = {
+const AVInputFormat ff_sap_demuxer = {
     .name           = "sap",
     .long_name      = NULL_IF_CONFIG_SMALL("SAP input"),
     .priv_data_size = sizeof(struct SAPState),
diff --git a/libavformat/sapenc.c b/libavformat/sapenc.c
index dc1c210408..1374a09906 100644
--- a/libavformat/sapenc.c
+++ b/libavformat/sapenc.c
@@ -267,7 +267,7 @@ static int sap_write_packet(AVFormatContext *s, AVPacket *pkt)
     return ff_write_chained(rtpctx, 0, pkt, s, 0);
 }
 
-AVOutputFormat ff_sap_muxer = {
+const AVOutputFormat ff_sap_muxer = {
     .name              = "sap",
     .long_name         = NULL_IF_CONFIG_SMALL("SAP output"),
     .priv_data_size    = sizeof(struct SAPState),
diff --git a/libavformat/sbcdec.c b/libavformat/sbcdec.c
index 7a455ce123..4de29b37c5 100644
--- a/libavformat/sbcdec.c
+++ b/libavformat/sbcdec.c
@@ -23,7 +23,7 @@
 #include "rawdec.h"
 
 FF_RAW_DEMUXER_CLASS(sbc)
-AVInputFormat ff_sbc_demuxer = {
+const AVInputFormat ff_sbc_demuxer = {
     .name           = "sbc",
     .long_name      = NULL_IF_CONFIG_SMALL("raw SBC (low-complexity subband codec)"),
     .extensions     = "sbc,msbc",
diff --git a/libavformat/sbgdec.c b/libavformat/sbgdec.c
index 83016d0c13..bc9945dfd4 100644
--- a/libavformat/sbgdec.c
+++ b/libavformat/sbgdec.c
@@ -1518,7 +1518,7 @@ static const AVClass sbg_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_sbg_demuxer = {
+const AVInputFormat ff_sbg_demuxer = {
     .name           = "sbg",
     .long_name      = NULL_IF_CONFIG_SMALL("SBaGen binaural beats script"),
     .priv_data_size = sizeof(struct sbg_demuxer),
diff --git a/libavformat/sccdec.c b/libavformat/sccdec.c
index 1786520944..5ad21a1f8b 100644
--- a/libavformat/sccdec.c
+++ b/libavformat/sccdec.c
@@ -201,7 +201,7 @@ static int scc_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_scc_demuxer = {
+const AVInputFormat ff_scc_demuxer = {
     .name           = "scc",
     .long_name      = NULL_IF_CONFIG_SMALL("Scenarist Closed Captions"),
     .priv_data_size = sizeof(SCCContext),
diff --git a/libavformat/sccenc.c b/libavformat/sccenc.c
index f3cf3d599c..a40d84cb4e 100644
--- a/libavformat/sccenc.c
+++ b/libavformat/sccenc.c
@@ -111,7 +111,7 @@ static int scc_write_packet(AVFormatContext *avf, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_scc_muxer = {
+const AVOutputFormat ff_scc_muxer = {
     .name           = "scc",
     .long_name      = NULL_IF_CONFIG_SMALL("Scenarist Closed Captions"),
     .extensions     = "scc",
diff --git a/libavformat/sdr2.c b/libavformat/sdr2.c
index 3743d59e58..373116a4a6 100644
--- a/libavformat/sdr2.c
+++ b/libavformat/sdr2.c
@@ -109,7 +109,7 @@ static int sdr2_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_sdr2_demuxer = {
+const AVInputFormat ff_sdr2_demuxer = {
     .name        = "sdr2",
     .long_name   = NULL_IF_CONFIG_SMALL("SDR2"),
     .read_probe  = sdr2_probe,
diff --git a/libavformat/sdsdec.c b/libavformat/sdsdec.c
index c70f5af849..073dadafbb 100644
--- a/libavformat/sdsdec.c
+++ b/libavformat/sdsdec.c
@@ -153,7 +153,7 @@ static int sds_read_packet(AVFormatContext *ctx, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_sds_demuxer = {
+const AVInputFormat ff_sds_demuxer = {
     .name           = "sds",
     .long_name      = NULL_IF_CONFIG_SMALL("MIDI Sample Dump Standard"),
     .priv_data_size = sizeof(SDSContext),
diff --git a/libavformat/sdxdec.c b/libavformat/sdxdec.c
index 19651048ad..76fd2caa00 100644
--- a/libavformat/sdxdec.c
+++ b/libavformat/sdxdec.c
@@ -78,7 +78,7 @@ static int sdx_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_sdx_demuxer = {
+const AVInputFormat ff_sdx_demuxer = {
     .name           = "sdx",
     .long_name      = NULL_IF_CONFIG_SMALL("Sample Dump eXchange"),
     .read_probe     = sdx_probe,
diff --git a/libavformat/segafilm.c b/libavformat/segafilm.c
index 675de00ed2..4b4327a179 100644
--- a/libavformat/segafilm.c
+++ b/libavformat/segafilm.c
@@ -331,7 +331,7 @@ static int film_read_seek(AVFormatContext *s, int stream_index, int64_t timestam
     return 0;
 }
 
-AVInputFormat ff_segafilm_demuxer = {
+const AVInputFormat ff_segafilm_demuxer = {
     .name           = "film_cpk",
     .long_name      = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"),
     .priv_data_size = sizeof(FilmDemuxContext),
diff --git a/libavformat/segafilmenc.c b/libavformat/segafilmenc.c
index 42249d4eff..ff8cb66aca 100644
--- a/libavformat/segafilmenc.c
+++ b/libavformat/segafilmenc.c
@@ -321,7 +321,7 @@ static void film_deinit(AVFormatContext *format_context)
     ffio_free_dyn_buf(&film->header);
 }
 
-AVOutputFormat ff_segafilm_muxer = {
+const AVOutputFormat ff_segafilm_muxer = {
     .name           = "film_cpk",
     .long_name      = NULL_IF_CONFIG_SMALL("Sega FILM / CPK"),
     .extensions     = "cpk",
diff --git a/libavformat/segment.c b/libavformat/segment.c
index 74106445e6..24490f1280 100644
--- a/libavformat/segment.c
+++ b/libavformat/segment.c
@@ -1053,7 +1053,7 @@ static const AVClass seg_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_segment_muxer = {
+const AVOutputFormat ff_segment_muxer = {
     .name           = "segment",
     .long_name      = NULL_IF_CONFIG_SMALL("segment"),
     .priv_data_size = sizeof(SegmentContext),
@@ -1076,7 +1076,7 @@ static const AVClass sseg_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_stream_segment_muxer = {
+const AVOutputFormat ff_stream_segment_muxer = {
     .name           = "stream_segment,ssegment",
     .long_name      = NULL_IF_CONFIG_SMALL("streaming segment muxer"),
     .priv_data_size = sizeof(SegmentContext),
diff --git a/libavformat/serdec.c b/libavformat/serdec.c
index 5745ae1430..fa2de32fd5 100644
--- a/libavformat/serdec.c
+++ b/libavformat/serdec.c
@@ -132,7 +132,7 @@ static const AVClass ser_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_ser_demuxer = {
+const AVInputFormat ff_ser_demuxer = {
     .name           = "ser",
     .long_name      = NULL_IF_CONFIG_SMALL("SER (Simple uncompressed video format for astronomical capturing)"),
     .priv_data_size = sizeof(SERDemuxerContext),
diff --git a/libavformat/sga.c b/libavformat/sga.c
index e7a41e91ea..3dc62317a1 100644
--- a/libavformat/sga.c
+++ b/libavformat/sga.c
@@ -466,7 +466,7 @@ static int sga_seek(AVFormatContext *s, int stream_index,
     return -1;
 }
 
-AVInputFormat ff_sga_demuxer = {
+const AVInputFormat ff_sga_demuxer = {
     .name           = "sga",
     .long_name      = NULL_IF_CONFIG_SMALL("Digital Pictures SGA"),
     .priv_data_size = sizeof(SGADemuxContext),
diff --git a/libavformat/shortendec.c b/libavformat/shortendec.c
index f7390b2e62..9209de4388 100644
--- a/libavformat/shortendec.c
+++ b/libavformat/shortendec.c
@@ -66,7 +66,7 @@ static int shn_probe(const AVProbeData *p)
 }
 
 FF_RAW_DEMUXER_CLASS(shorten)
-AVInputFormat ff_shorten_demuxer = {
+const AVInputFormat ff_shorten_demuxer = {
     .name           = "shn",
     .long_name      = NULL_IF_CONFIG_SMALL("raw Shorten"),
     .read_probe     = shn_probe,
diff --git a/libavformat/sierravmd.c b/libavformat/sierravmd.c
index cfbf1843d4..13304b0596 100644
--- a/libavformat/sierravmd.c
+++ b/libavformat/sierravmd.c
@@ -317,7 +317,7 @@ static int vmd_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_vmd_demuxer = {
+const AVInputFormat ff_vmd_demuxer = {
     .name           = "vmd",
     .long_name      = NULL_IF_CONFIG_SMALL("Sierra VMD"),
     .priv_data_size = sizeof(VmdDemuxContext),
diff --git a/libavformat/siff.c b/libavformat/siff.c
index 60a867df14..a34de24ec8 100644
--- a/libavformat/siff.c
+++ b/libavformat/siff.c
@@ -249,7 +249,7 @@ static int siff_read_packet(AVFormatContext *s, AVPacket *pkt)
     return pkt->size;
 }
 
-AVInputFormat ff_siff_demuxer = {
+const AVInputFormat ff_siff_demuxer = {
     .name           = "siff",
     .long_name      = NULL_IF_CONFIG_SMALL("Beam Software SIFF"),
     .priv_data_size = sizeof(SIFFContext),
diff --git a/libavformat/smacker.c b/libavformat/smacker.c
index 61209e7038..a96093b191 100644
--- a/libavformat/smacker.c
+++ b/libavformat/smacker.c
@@ -386,7 +386,7 @@ static int smacker_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_smacker_demuxer = {
+const AVInputFormat ff_smacker_demuxer = {
     .name           = "smk",
     .long_name      = NULL_IF_CONFIG_SMALL("Smacker"),
     .priv_data_size = sizeof(SmackerContext),
diff --git a/libavformat/smjpegdec.c b/libavformat/smjpegdec.c
index a4e1f957ed..dc95a822c5 100644
--- a/libavformat/smjpegdec.c
+++ b/libavformat/smjpegdec.c
@@ -180,7 +180,7 @@ static int smjpeg_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_smjpeg_demuxer = {
+const AVInputFormat ff_smjpeg_demuxer = {
     .name           = "smjpeg",
     .long_name      = NULL_IF_CONFIG_SMALL("Loki SDL MJPEG"),
     .priv_data_size = sizeof(SMJPEGContext),
diff --git a/libavformat/smjpegenc.c b/libavformat/smjpegenc.c
index c3c1a6346c..ac5576fa76 100644
--- a/libavformat/smjpegenc.c
+++ b/libavformat/smjpegenc.c
@@ -132,7 +132,7 @@ static int smjpeg_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_smjpeg_muxer = {
+const AVOutputFormat ff_smjpeg_muxer = {
     .name           = "smjpeg",
     .long_name      = NULL_IF_CONFIG_SMALL("Loki SDL MJPEG"),
     .priv_data_size = sizeof(SMJPEGMuxContext),
diff --git a/libavformat/smoothstreamingenc.c b/libavformat/smoothstreamingenc.c
index 941f03f0b1..a18fbd07d9 100644
--- a/libavformat/smoothstreamingenc.c
+++ b/libavformat/smoothstreamingenc.c
@@ -637,7 +637,7 @@ static const AVClass ism_class = {
 };
 
 
-AVOutputFormat ff_smoothstreaming_muxer = {
+const AVOutputFormat ff_smoothstreaming_muxer = {
     .name           = "smoothstreaming",
     .long_name      = NULL_IF_CONFIG_SMALL("Smooth Streaming Muxer"),
     .priv_data_size = sizeof(SmoothStreamingContext),
diff --git a/libavformat/smush.c b/libavformat/smush.c
index 962eb57ab2..59807ab963 100644
--- a/libavformat/smush.c
+++ b/libavformat/smush.c
@@ -242,7 +242,7 @@ static int smush_read_packet(AVFormatContext *ctx, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_smush_demuxer = {
+const AVInputFormat ff_smush_demuxer = {
     .name           = "smush",
     .long_name      = NULL_IF_CONFIG_SMALL("LucasArts Smush"),
     .priv_data_size = sizeof(SMUSHContext),
diff --git a/libavformat/sol.c b/libavformat/sol.c
index 19905e84fa..42498492b6 100644
--- a/libavformat/sol.c
+++ b/libavformat/sol.c
@@ -138,7 +138,7 @@ static int sol_read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_sol_demuxer = {
+const AVInputFormat ff_sol_demuxer = {
     .name           = "sol",
     .long_name      = NULL_IF_CONFIG_SMALL("Sierra SOL"),
     .read_probe     = sol_probe,
diff --git a/libavformat/soxdec.c b/libavformat/soxdec.c
index 35e11feec6..83fb5e3758 100644
--- a/libavformat/soxdec.c
+++ b/libavformat/soxdec.c
@@ -124,7 +124,7 @@ static int sox_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_sox_demuxer = {
+const AVInputFormat ff_sox_demuxer = {
     .name           = "sox",
     .long_name      = NULL_IF_CONFIG_SMALL("SoX native"),
     .read_probe     = sox_probe,
diff --git a/libavformat/soxenc.c b/libavformat/soxenc.c
index ce276f88b5..e24501bacd 100644
--- a/libavformat/soxenc.c
+++ b/libavformat/soxenc.c
@@ -104,7 +104,7 @@ static int sox_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_sox_muxer = {
+const AVOutputFormat ff_sox_muxer = {
     .name              = "sox",
     .long_name         = NULL_IF_CONFIG_SMALL("SoX native"),
     .extensions        = "sox",
diff --git a/libavformat/spdifdec.c b/libavformat/spdifdec.c
index 1808fa9d65..e39a304247 100644
--- a/libavformat/spdifdec.c
+++ b/libavformat/spdifdec.c
@@ -231,7 +231,7 @@ int ff_spdif_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_spdif_demuxer = {
+const AVInputFormat ff_spdif_demuxer = {
     .name           = "spdif",
     .long_name      = NULL_IF_CONFIG_SMALL("IEC 61937 (compressed data in S/PDIF)"),
     .read_probe     = spdif_probe,
diff --git a/libavformat/spdifenc.c b/libavformat/spdifenc.c
index c3ba3a1a19..e8f54bff4b 100644
--- a/libavformat/spdifenc.c
+++ b/libavformat/spdifenc.c
@@ -673,7 +673,7 @@ static int spdif_write_packet(struct AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_spdif_muxer = {
+const AVOutputFormat ff_spdif_muxer = {
     .name              = "spdif",
     .long_name         = NULL_IF_CONFIG_SMALL("IEC 61937 (used on S/PDIF - IEC958)"),
     .extensions        = "spdif",
diff --git a/libavformat/srtdec.c b/libavformat/srtdec.c
index d6ff00ba6d..fa52b85566 100644
--- a/libavformat/srtdec.c
+++ b/libavformat/srtdec.c
@@ -234,7 +234,7 @@ static int srt_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_srt_demuxer = {
+const AVInputFormat ff_srt_demuxer = {
     .name        = "srt",
     .long_name   = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
     .priv_data_size = sizeof(SRTContext),
diff --git a/libavformat/srtenc.c b/libavformat/srtenc.c
index 93d5ed7ac8..7f6171edd3 100644
--- a/libavformat/srtenc.c
+++ b/libavformat/srtenc.c
@@ -96,7 +96,7 @@ static int srt_write_packet(AVFormatContext *avf, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_srt_muxer = {
+const AVOutputFormat ff_srt_muxer = {
     .name           = "srt",
     .long_name      = NULL_IF_CONFIG_SMALL("SubRip subtitle"),
     .mime_type      = "application/x-subrip",
diff --git a/libavformat/stldec.c b/libavformat/stldec.c
index fb67407ac5..7b7c98577d 100644
--- a/libavformat/stldec.c
+++ b/libavformat/stldec.c
@@ -130,7 +130,7 @@ static int stl_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_stl_demuxer = {
+const AVInputFormat ff_stl_demuxer = {
     .name           = "stl",
     .long_name      = NULL_IF_CONFIG_SMALL("Spruce subtitle format"),
     .priv_data_size = sizeof(STLContext),
diff --git a/libavformat/subviewer1dec.c b/libavformat/subviewer1dec.c
index f2eee294a1..d1ba99f984 100644
--- a/libavformat/subviewer1dec.c
+++ b/libavformat/subviewer1dec.c
@@ -113,7 +113,7 @@ static int subviewer1_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_subviewer1_demuxer = {
+const AVInputFormat ff_subviewer1_demuxer = {
     .name           = "subviewer1",
     .long_name      = NULL_IF_CONFIG_SMALL("SubViewer v1 subtitle format"),
     .priv_data_size = sizeof(SubViewer1Context),
diff --git a/libavformat/subviewerdec.c b/libavformat/subviewerdec.c
index 5c2fe676f1..9bb7728407 100644
--- a/libavformat/subviewerdec.c
+++ b/libavformat/subviewerdec.c
@@ -203,7 +203,7 @@ static int subviewer_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_subviewer_demuxer = {
+const AVInputFormat ff_subviewer_demuxer = {
     .name           = "subviewer",
     .long_name      = NULL_IF_CONFIG_SMALL("SubViewer subtitle format"),
     .priv_data_size = sizeof(SubViewerContext),
diff --git a/libavformat/supdec.c b/libavformat/supdec.c
index d3fb2510c5..fbcc744bb4 100644
--- a/libavformat/supdec.c
+++ b/libavformat/supdec.c
@@ -97,7 +97,7 @@ static int sup_probe(const AVProbeData *p)
     return AVPROBE_SCORE_MAX;
 }
 
-AVInputFormat ff_sup_demuxer = {
+const AVInputFormat ff_sup_demuxer = {
     .name           = "sup",
     .long_name      = NULL_IF_CONFIG_SMALL("raw HDMV Presentation Graphic Stream subtitles"),
     .extensions     = "sup",
diff --git a/libavformat/supenc.c b/libavformat/supenc.c
index 643dda5ffc..1ca19fa161 100644
--- a/libavformat/supenc.c
+++ b/libavformat/supenc.c
@@ -84,7 +84,7 @@ static int sup_write_header(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_sup_muxer = {
+const AVOutputFormat ff_sup_muxer = {
     .name           = "sup",
     .long_name      = NULL_IF_CONFIG_SMALL("raw HDMV Presentation Graphic Stream subtitles"),
     .extensions     = "sup",
diff --git a/libavformat/svag.c b/libavformat/svag.c
index 83e033b106..0774eae112 100644
--- a/libavformat/svag.c
+++ b/libavformat/svag.c
@@ -68,7 +68,7 @@ static int svag_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_svag_demuxer = {
+const AVInputFormat ff_svag_demuxer = {
     .name           = "svag",
     .long_name      = NULL_IF_CONFIG_SMALL("Konami PS2 SVAG"),
     .read_probe     = svag_probe,
diff --git a/libavformat/svs.c b/libavformat/svs.c
index 8be26c5bc3..da63c8e370 100644
--- a/libavformat/svs.c
+++ b/libavformat/svs.c
@@ -86,7 +86,7 @@ static int svs_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_svs_demuxer = {
+const AVInputFormat ff_svs_demuxer = {
     .name        = "svs",
     .long_name   = NULL_IF_CONFIG_SMALL("Square SVS"),
     .read_probe  = svs_probe,
diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c
index 48c5af9a0b..f5a98e8b53 100644
--- a/libavformat/swfdec.c
+++ b/libavformat/swfdec.c
@@ -567,7 +567,7 @@ static av_cold int swf_read_close(AVFormatContext *avctx)
 }
 #endif
 
-AVInputFormat ff_swf_demuxer = {
+const AVInputFormat ff_swf_demuxer = {
     .name           = "swf",
     .long_name      = NULL_IF_CONFIG_SMALL("SWF (ShockWave Flash)"),
     .priv_data_size = sizeof(SWFDecContext),
diff --git a/libavformat/swfenc.c b/libavformat/swfenc.c
index 7e4e214014..1fd2ad81a3 100644
--- a/libavformat/swfenc.c
+++ b/libavformat/swfenc.c
@@ -539,7 +539,7 @@ static void swf_deinit(AVFormatContext *s)
 }
 
 #if CONFIG_SWF_MUXER
-AVOutputFormat ff_swf_muxer = {
+const AVOutputFormat ff_swf_muxer = {
     .name              = "swf",
     .long_name         = NULL_IF_CONFIG_SMALL("SWF (ShockWave Flash)"),
     .mime_type         = "application/x-shockwave-flash",
@@ -555,7 +555,7 @@ AVOutputFormat ff_swf_muxer = {
 };
 #endif
 #if CONFIG_AVM2_MUXER
-AVOutputFormat ff_avm2_muxer = {
+const AVOutputFormat ff_avm2_muxer = {
     .name              = "avm2",
     .long_name         = NULL_IF_CONFIG_SMALL("SWF (ShockWave Flash) (AVM2)"),
     .mime_type         = "application/x-shockwave-flash",
diff --git a/libavformat/takdec.c b/libavformat/takdec.c
index 6d18b6af21..46c500efef 100644
--- a/libavformat/takdec.c
+++ b/libavformat/takdec.c
@@ -214,7 +214,7 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
 }
 
 FF_RAW_DEMUXER_CLASS(tak)
-AVInputFormat ff_tak_demuxer = {
+const AVInputFormat ff_tak_demuxer = {
     .name           = "tak",
     .long_name      = NULL_IF_CONFIG_SMALL("raw TAK"),
     .priv_data_size = sizeof(TAKDemuxContext),
diff --git a/libavformat/tedcaptionsdec.c b/libavformat/tedcaptionsdec.c
index 9a882c4d79..94e8432c53 100644
--- a/libavformat/tedcaptionsdec.c
+++ b/libavformat/tedcaptionsdec.c
@@ -354,7 +354,7 @@ static int tedcaptions_read_seek(AVFormatContext *avf, int stream_index,
                                    min_ts, ts, max_ts, flags);
 }
 
-AVInputFormat ff_tedcaptions_demuxer = {
+const AVInputFormat ff_tedcaptions_demuxer = {
     .name           = "tedcaptions",
     .long_name      = NULL_IF_CONFIG_SMALL("TED Talks captions"),
     .priv_data_size = sizeof(TEDCaptionsDemuxer),
diff --git a/libavformat/tee.c b/libavformat/tee.c
index c0b69a386c..f33cbea98c 100644
--- a/libavformat/tee.c
+++ b/libavformat/tee.c
@@ -606,7 +606,7 @@ static int tee_write_packet(AVFormatContext *avf, AVPacket *pkt)
     return ret_all;
 }
 
-AVOutputFormat ff_tee_muxer = {
+const AVOutputFormat ff_tee_muxer = {
     .name              = "tee",
     .long_name         = NULL_IF_CONFIG_SMALL("Multiple muxer tee"),
     .priv_data_size    = sizeof(TeeContext),
diff --git a/libavformat/thp.c b/libavformat/thp.c
index bcc3febaa1..7aad24221b 100644
--- a/libavformat/thp.c
+++ b/libavformat/thp.c
@@ -212,7 +212,7 @@ static int thp_read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_thp_demuxer = {
+const AVInputFormat ff_thp_demuxer = {
     .name           = "thp",
     .long_name      = NULL_IF_CONFIG_SMALL("THP"),
     .priv_data_size = sizeof(ThpDemuxContext),
diff --git a/libavformat/tiertexseq.c b/libavformat/tiertexseq.c
index d7719e5acb..164a75bd53 100644
--- a/libavformat/tiertexseq.c
+++ b/libavformat/tiertexseq.c
@@ -316,7 +316,7 @@ static int seq_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_tiertexseq_demuxer = {
+const AVInputFormat ff_tiertexseq_demuxer = {
     .name           = "tiertexseq",
     .long_name      = NULL_IF_CONFIG_SMALL("Tiertex Limited SEQ"),
     .priv_data_size = sizeof(SeqDemuxContext),
diff --git a/libavformat/tmv.c b/libavformat/tmv.c
index b74af547c5..507f6cd032 100644
--- a/libavformat/tmv.c
+++ b/libavformat/tmv.c
@@ -187,7 +187,7 @@ static int tmv_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_tmv_demuxer = {
+const AVInputFormat ff_tmv_demuxer = {
     .name           = "tmv",
     .long_name      = NULL_IF_CONFIG_SMALL("8088flex TMV"),
     .priv_data_size = sizeof(TMVContext),
diff --git a/libavformat/tta.c b/libavformat/tta.c
index 46c2508bce..7a95675794 100644
--- a/libavformat/tta.c
+++ b/libavformat/tta.c
@@ -184,7 +184,7 @@ static int tta_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
     return 0;
 }
 
-AVInputFormat ff_tta_demuxer = {
+const AVInputFormat ff_tta_demuxer = {
     .name           = "tta",
     .long_name      = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
     .priv_data_size = sizeof(TTAContext),
diff --git a/libavformat/ttaenc.c b/libavformat/ttaenc.c
index 32eb269040..5f66695a9a 100644
--- a/libavformat/ttaenc.c
+++ b/libavformat/ttaenc.c
@@ -165,7 +165,7 @@ static void tta_deinit(AVFormatContext *s)
     avpriv_packet_list_free(&tta->queue, &tta->queue_end);
 }
 
-AVOutputFormat ff_tta_muxer = {
+const AVOutputFormat ff_tta_muxer = {
     .name              = "tta",
     .long_name         = NULL_IF_CONFIG_SMALL("TTA (True Audio)"),
     .mime_type         = "audio/x-tta",
diff --git a/libavformat/ttmlenc.c b/libavformat/ttmlenc.c
index 940f8bbd4e..dfa44f0836 100644
--- a/libavformat/ttmlenc.c
+++ b/libavformat/ttmlenc.c
@@ -159,7 +159,7 @@ static int ttml_write_trailer(AVFormatContext *ctx)
     return 0;
 }
 
-AVOutputFormat ff_ttml_muxer = {
+const AVOutputFormat ff_ttml_muxer = {
     .name              = "ttml",
     .long_name         = NULL_IF_CONFIG_SMALL("TTML subtitle"),
     .extensions        = "ttml",
diff --git a/libavformat/tty.c b/libavformat/tty.c
index aed5c888c3..fbea3196fa 100644
--- a/libavformat/tty.c
+++ b/libavformat/tty.c
@@ -178,7 +178,7 @@ static const AVClass tty_demuxer_class = {
     .version        = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_tty_demuxer = {
+const AVInputFormat ff_tty_demuxer = {
     .name           = "tty",
     .long_name      = NULL_IF_CONFIG_SMALL("Tele-typewriter"),
     .priv_data_size = sizeof(TtyDemuxContext),
diff --git a/libavformat/txd.c b/libavformat/txd.c
index 072cd04f57..93db883087 100644
--- a/libavformat/txd.c
+++ b/libavformat/txd.c
@@ -92,7 +92,7 @@ next_chunk:
     return 0;
 }
 
-AVInputFormat ff_txd_demuxer = {
+const AVInputFormat ff_txd_demuxer = {
     .name        = "txd",
     .long_name   = NULL_IF_CONFIG_SMALL("Renderware TeXture Dictionary"),
     .read_probe  = txd_probe,
diff --git a/libavformat/ty.c b/libavformat/ty.c
index c8e1067c0e..8830467f99 100644
--- a/libavformat/ty.c
+++ b/libavformat/ty.c
@@ -710,7 +710,7 @@ static int ty_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_ty_demuxer = {
+const AVInputFormat ff_ty_demuxer = {
     .name           = "ty",
     .long_name      = NULL_IF_CONFIG_SMALL("TiVo TY Stream"),
     .priv_data_size = sizeof(TYDemuxContext),
diff --git a/libavformat/uncodedframecrcenc.c b/libavformat/uncodedframecrcenc.c
index 2f1a14ca97..e30fe4ddb9 100644
--- a/libavformat/uncodedframecrcenc.c
+++ b/libavformat/uncodedframecrcenc.c
@@ -164,7 +164,7 @@ static int write_packet(struct AVFormatContext *s, AVPacket *pkt)
     return AVERROR(ENOSYS);
 }
 
-AVOutputFormat ff_uncodedframecrc_muxer = {
+const AVOutputFormat ff_uncodedframecrc_muxer = {
     .name              = "uncodedframecrc",
     .long_name         = NULL_IF_CONFIG_SMALL("uncoded framecrc testing"),
     .audio_codec       = AV_CODEC_ID_PCM_S16LE,
diff --git a/libavformat/v210.c b/libavformat/v210.c
index a90bd367c1..361fd2a625 100644
--- a/libavformat/v210.c
+++ b/libavformat/v210.c
@@ -95,7 +95,7 @@ static const AVClass v210_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_v210_demuxer = {
+const AVInputFormat ff_v210_demuxer = {
     .name           = "v210",
     .long_name      = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
     .priv_data_size = sizeof(V210DemuxerContext),
@@ -116,7 +116,7 @@ static const AVClass v210x_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_v210x_demuxer = {
+const AVInputFormat ff_v210x_demuxer = {
     .name           = "v210x",
     .long_name      = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
     .priv_data_size = sizeof(V210DemuxerContext),
diff --git a/libavformat/vag.c b/libavformat/vag.c
index 51045e6fe2..9ef5466e39 100644
--- a/libavformat/vag.c
+++ b/libavformat/vag.c
@@ -73,7 +73,7 @@ static int vag_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_vag_demuxer = {
+const AVInputFormat ff_vag_demuxer = {
     .name           = "vag",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony PS2 VAG"),
     .read_probe     = vag_probe,
diff --git a/libavformat/vapoursynth.c b/libavformat/vapoursynth.c
index 46e08ee0f5..4ec4e77b59 100644
--- a/libavformat/vapoursynth.c
+++ b/libavformat/vapoursynth.c
@@ -483,7 +483,7 @@ static const AVClass class_vs = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_vapoursynth_demuxer = {
+const AVInputFormat ff_vapoursynth_demuxer = {
     .name           = "vapoursynth",
     .long_name      = NULL_IF_CONFIG_SMALL("VapourSynth demuxer"),
     .priv_data_size = sizeof(VSContext),
diff --git a/libavformat/vc1test.c b/libavformat/vc1test.c
index ff57f44b14..90ea729e0b 100644
--- a/libavformat/vc1test.c
+++ b/libavformat/vc1test.c
@@ -116,7 +116,7 @@ static int vc1t_read_packet(AVFormatContext *s,
     return pkt->size;
 }
 
-AVInputFormat ff_vc1t_demuxer = {
+const AVInputFormat ff_vc1t_demuxer = {
     .name           = "vc1test",
     .long_name      = NULL_IF_CONFIG_SMALL("VC-1 test bitstream"),
     .read_probe     = vc1t_probe,
diff --git a/libavformat/vc1testenc.c b/libavformat/vc1testenc.c
index 1365bdd660..4bc95026f5 100644
--- a/libavformat/vc1testenc.c
+++ b/libavformat/vc1testenc.c
@@ -80,7 +80,7 @@ static int vc1test_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_vc1t_muxer = {
+const AVOutputFormat ff_vc1t_muxer = {
     .name              = "vc1test",
     .long_name         = NULL_IF_CONFIG_SMALL("VC-1 test bitstream"),
     .extensions        = "rcv",
diff --git a/libavformat/vividas.c b/libavformat/vividas.c
index d35a646bde..a7deab0e51 100644
--- a/libavformat/vividas.c
+++ b/libavformat/vividas.c
@@ -781,7 +781,7 @@ static int viv_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
     return 0;
 }
 
-AVInputFormat ff_vividas_demuxer = {
+const AVInputFormat ff_vividas_demuxer = {
     .name           = "vividas",
     .long_name      = NULL_IF_CONFIG_SMALL("Vividas VIV"),
     .priv_data_size = sizeof(VividasDemuxContext),
diff --git a/libavformat/vivo.c b/libavformat/vivo.c
index fb58aa6178..b2904cd25a 100644
--- a/libavformat/vivo.c
+++ b/libavformat/vivo.c
@@ -309,7 +309,7 @@ restart:
     return ret;
 }
 
-AVInputFormat ff_vivo_demuxer = {
+const AVInputFormat ff_vivo_demuxer = {
     .name           = "vivo",
     .long_name      = NULL_IF_CONFIG_SMALL("Vivo"),
     .priv_data_size = sizeof(VivoContext),
diff --git a/libavformat/vocdec.c b/libavformat/vocdec.c
index 6cdc720ee7..0bb2bc4fb1 100644
--- a/libavformat/vocdec.c
+++ b/libavformat/vocdec.c
@@ -98,7 +98,7 @@ static int voc_read_seek(AVFormatContext *s, int stream_index,
     return -1;
 }
 
-AVInputFormat ff_voc_demuxer = {
+const AVInputFormat ff_voc_demuxer = {
     .name           = "voc",
     .long_name      = NULL_IF_CONFIG_SMALL("Creative Voice"),
     .priv_data_size = sizeof(VocDecContext),
diff --git a/libavformat/vocenc.c b/libavformat/vocenc.c
index bdc63843c4..798b463a82 100644
--- a/libavformat/vocenc.c
+++ b/libavformat/vocenc.c
@@ -95,7 +95,7 @@ static int voc_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_voc_muxer = {
+const AVOutputFormat ff_voc_muxer = {
     .name              = "voc",
     .long_name         = NULL_IF_CONFIG_SMALL("Creative Voice"),
     .mime_type         = "audio/x-voc",
diff --git a/libavformat/vpk.c b/libavformat/vpk.c
index f7f20548dc..9eb3eb5362 100644
--- a/libavformat/vpk.c
+++ b/libavformat/vpk.c
@@ -134,7 +134,7 @@ static int vpk_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_vpk_demuxer = {
+const AVInputFormat ff_vpk_demuxer = {
     .name           = "vpk",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony PS2 VPK"),
     .priv_data_size = sizeof(VPKDemuxContext),
diff --git a/libavformat/vplayerdec.c b/libavformat/vplayerdec.c
index ca23ec76ac..f6c2b35ea7 100644
--- a/libavformat/vplayerdec.c
+++ b/libavformat/vplayerdec.c
@@ -118,7 +118,7 @@ static int vplayer_read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_vplayer_demuxer = {
+const AVInputFormat ff_vplayer_demuxer = {
     .name           = "vplayer",
     .long_name      = NULL_IF_CONFIG_SMALL("VPlayer subtitles"),
     .priv_data_size = sizeof(VPlayerContext),
diff --git a/libavformat/vqf.c b/libavformat/vqf.c
index 449f4061f7..431ba1a0c9 100644
--- a/libavformat/vqf.c
+++ b/libavformat/vqf.c
@@ -287,7 +287,7 @@ static int vqf_read_seek(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_vqf_demuxer = {
+const AVInputFormat ff_vqf_demuxer = {
     .name           = "vqf",
     .long_name      = NULL_IF_CONFIG_SMALL("Nippon Telegraph and Telephone Corporation (NTT) TwinVQ"),
     .priv_data_size = sizeof(VqfContext),
diff --git a/libavformat/wavdec.c b/libavformat/wavdec.c
index e11535b6ae..0c8b8bf85d 100644
--- a/libavformat/wavdec.c
+++ b/libavformat/wavdec.c
@@ -816,7 +816,7 @@ static const AVClass wav_demuxer_class = {
     .option     = demux_options,
     .version    = LIBAVUTIL_VERSION_INT,
 };
-AVInputFormat ff_wav_demuxer = {
+const AVInputFormat ff_wav_demuxer = {
     .name           = "wav",
     .long_name      = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
     .priv_data_size = sizeof(WAVDemuxContext),
@@ -966,7 +966,7 @@ static const AVClass w64_demuxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_w64_demuxer = {
+const AVInputFormat ff_w64_demuxer = {
     .name           = "w64",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony Wave64"),
     .priv_data_size = sizeof(WAVDemuxContext),
diff --git a/libavformat/wavenc.c b/libavformat/wavenc.c
index 563a30d005..06e6047032 100644
--- a/libavformat/wavenc.c
+++ b/libavformat/wavenc.c
@@ -504,7 +504,7 @@ static const AVClass wav_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_wav_muxer = {
+const AVOutputFormat ff_wav_muxer = {
     .name              = "wav",
     .long_name         = NULL_IF_CONFIG_SMALL("WAV / WAVE (Waveform Audio)"),
     .mime_type         = "audio/x-wav",
@@ -603,7 +603,7 @@ static int w64_write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_w64_muxer = {
+const AVOutputFormat ff_w64_muxer = {
     .name              = "w64",
     .long_name         = NULL_IF_CONFIG_SMALL("Sony Wave64"),
     .extensions        = "w64",
diff --git a/libavformat/wc3movie.c b/libavformat/wc3movie.c
index cd69931a42..dfb2462072 100644
--- a/libavformat/wc3movie.c
+++ b/libavformat/wc3movie.c
@@ -309,7 +309,7 @@ static int wc3_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_wc3_demuxer = {
+const AVInputFormat ff_wc3_demuxer = {
     .name           = "wc3movie",
     .long_name      = NULL_IF_CONFIG_SMALL("Wing Commander III movie"),
     .priv_data_size = sizeof(Wc3DemuxContext),
diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c
index fefab982cb..f4d0db83a4 100644
--- a/libavformat/webm_chunk.c
+++ b/libavformat/webm_chunk.c
@@ -289,7 +289,7 @@ static const AVClass webm_chunk_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_webm_chunk_muxer = {
+const AVOutputFormat ff_webm_chunk_muxer = {
     .name           = "webm_chunk",
     .long_name      = NULL_IF_CONFIG_SMALL("WebM Chunk Muxer"),
     .mime_type      = "video/webm",
diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c
index 1304c1a8c3..6f9622af5f 100644
--- a/libavformat/webmdashenc.c
+++ b/libavformat/webmdashenc.c
@@ -537,7 +537,7 @@ static const AVClass webm_dash_class = {
     .version    = LIBAVUTIL_VERSION_INT,
 };
 
-AVOutputFormat ff_webm_dash_manifest_muxer = {
+const AVOutputFormat ff_webm_dash_manifest_muxer = {
     .name              = "webm_dash_manifest",
     .long_name         = NULL_IF_CONFIG_SMALL("WebM DASH Manifest"),
     .mime_type         = "application/xml",
diff --git a/libavformat/webpenc.c b/libavformat/webpenc.c
index ca4ffc4e2d..9599fe7b85 100644
--- a/libavformat/webpenc.c
+++ b/libavformat/webpenc.c
@@ -212,7 +212,7 @@ static const AVClass webp_muxer_class = {
     .version    = LIBAVUTIL_VERSION_INT,
     .option     = options,
 };
-AVOutputFormat ff_webp_muxer = {
+const AVOutputFormat ff_webp_muxer = {
     .name           = "webp",
     .long_name      = NULL_IF_CONFIG_SMALL("WebP"),
     .extensions     = "webp",
diff --git a/libavformat/webvttdec.c b/libavformat/webvttdec.c
index cf060bd011..a4654034ac 100644
--- a/libavformat/webvttdec.c
+++ b/libavformat/webvttdec.c
@@ -210,7 +210,7 @@ static const AVClass webvtt_demuxer_class = {
     .version     = LIBAVUTIL_VERSION_INT,
 };
 
-AVInputFormat ff_webvtt_demuxer = {
+const AVInputFormat ff_webvtt_demuxer = {
     .name           = "webvtt",
     .long_name      = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
     .priv_data_size = sizeof(WebVTTContext),
diff --git a/libavformat/webvttenc.c b/libavformat/webvttenc.c
index 95f58e2942..fcff80c4bf 100644
--- a/libavformat/webvttenc.c
+++ b/libavformat/webvttenc.c
@@ -102,7 +102,7 @@ static int webvtt_write_packet(AVFormatContext *ctx, AVPacket *pkt)
     return 0;
 }
 
-AVOutputFormat ff_webvtt_muxer = {
+const AVOutputFormat ff_webvtt_muxer = {
     .name              = "webvtt",
     .long_name         = NULL_IF_CONFIG_SMALL("WebVTT subtitle"),
     .extensions        = "vtt",
diff --git a/libavformat/westwood_aud.c b/libavformat/westwood_aud.c
index 9e3d80752b..ff51e8bd36 100644
--- a/libavformat/westwood_aud.c
+++ b/libavformat/westwood_aud.c
@@ -178,7 +178,7 @@ static int wsaud_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_wsaud_demuxer = {
+const AVInputFormat ff_wsaud_demuxer = {
     .name           = "wsaud",
     .long_name      = NULL_IF_CONFIG_SMALL("Westwood Studios audio"),
     .read_probe     = wsaud_probe,
diff --git a/libavformat/westwood_vqa.c b/libavformat/westwood_vqa.c
index a0db854b1c..77df007c11 100644
--- a/libavformat/westwood_vqa.c
+++ b/libavformat/westwood_vqa.c
@@ -260,7 +260,7 @@ static int wsvqa_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_wsvqa_demuxer = {
+const AVInputFormat ff_wsvqa_demuxer = {
     .name           = "wsvqa",
     .long_name      = NULL_IF_CONFIG_SMALL("Westwood Studios VQA"),
     .priv_data_size = sizeof(WsVqaDemuxContext),
diff --git a/libavformat/wsddec.c b/libavformat/wsddec.c
index 74db6acdab..169a96c71f 100644
--- a/libavformat/wsddec.c
+++ b/libavformat/wsddec.c
@@ -162,7 +162,7 @@ static int wsd_read_header(AVFormatContext *s)
 }
 
 FF_RAW_DEMUXER_CLASS(wsd)
-AVInputFormat ff_wsd_demuxer = {
+const AVInputFormat ff_wsd_demuxer = {
     .name         = "wsd",
     .long_name    = NULL_IF_CONFIG_SMALL("Wideband Single-bit Data (WSD)"),
     .read_probe   = wsd_probe,
diff --git a/libavformat/wtvdec.c b/libavformat/wtvdec.c
index 44ca86d517..1d021dfda7 100644
--- a/libavformat/wtvdec.c
+++ b/libavformat/wtvdec.c
@@ -1124,7 +1124,7 @@ static int read_close(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_wtv_demuxer = {
+const AVInputFormat ff_wtv_demuxer = {
     .name           = "wtv",
     .long_name      = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"),
     .priv_data_size = sizeof(WtvContext),
diff --git a/libavformat/wtvenc.c b/libavformat/wtvenc.c
index 24fdbe1099..9c67a6d3e8 100644
--- a/libavformat/wtvenc.c
+++ b/libavformat/wtvenc.c
@@ -829,7 +829,7 @@ static int write_trailer(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_wtv_muxer = {
+const AVOutputFormat ff_wtv_muxer = {
     .name           = "wtv",
     .long_name      = NULL_IF_CONFIG_SMALL("Windows Television (WTV)"),
     .extensions     = "wtv",
diff --git a/libavformat/wvdec.c b/libavformat/wvdec.c
index 7a5997c1ee..0d5a86953d 100644
--- a/libavformat/wvdec.c
+++ b/libavformat/wvdec.c
@@ -329,7 +329,7 @@ static int wv_read_packet(AVFormatContext *s, AVPacket *pkt)
     return 0;
 }
 
-AVInputFormat ff_wv_demuxer = {
+const AVInputFormat ff_wv_demuxer = {
     .name           = "wv",
     .long_name      = NULL_IF_CONFIG_SMALL("WavPack"),
     .priv_data_size = sizeof(WVContext),
diff --git a/libavformat/wvedec.c b/libavformat/wvedec.c
index 4d9d3e5209..f133da3c87 100644
--- a/libavformat/wvedec.c
+++ b/libavformat/wvedec.c
@@ -52,7 +52,7 @@ static int wve_read_header(AVFormatContext *s)
     return 0;
 }
 
-AVInputFormat ff_wve_demuxer = {
+const AVInputFormat ff_wve_demuxer = {
     .name           = "wve",
     .long_name      = NULL_IF_CONFIG_SMALL("Psion 3 audio"),
     .read_probe     = wve_probe,
diff --git a/libavformat/wvenc.c b/libavformat/wvenc.c
index 8743739e8d..9a42f71440 100644
--- a/libavformat/wvenc.c
+++ b/libavformat/wvenc.c
@@ -76,7 +76,7 @@ static av_cold int wv_write_trailer(AVFormatContext *ctx)
     return 0;
 }
 
-AVOutputFormat ff_wv_muxer = {
+const AVOutputFormat ff_wv_muxer = {
     .name              = "wv",
     .long_name         = NULL_IF_CONFIG_SMALL("raw WavPack"),
     .mime_type         = "audio/x-wavpack",
diff --git a/libavformat/xa.c b/libavformat/xa.c
index a07271b313..762e90246a 100644
--- a/libavformat/xa.c
+++ b/libavformat/xa.c
@@ -121,7 +121,7 @@ static int xa_read_packet(AVFormatContext *s,
     return ret;
 }
 
-AVInputFormat ff_xa_demuxer = {
+const AVInputFormat ff_xa_demuxer = {
     .name           = "xa",
     .long_name      = NULL_IF_CONFIG_SMALL("Maxis XA"),
     .priv_data_size = sizeof(MaxisXADemuxContext),
diff --git a/libavformat/xmv.c b/libavformat/xmv.c
index 0c69d267de..36816ec005 100644
--- a/libavformat/xmv.c
+++ b/libavformat/xmv.c
@@ -583,7 +583,7 @@ static int xmv_read_packet(AVFormatContext *s,
     return 0;
 }
 
-AVInputFormat ff_xmv_demuxer = {
+const AVInputFormat ff_xmv_demuxer = {
     .name           = "xmv",
     .long_name      = NULL_IF_CONFIG_SMALL("Microsoft XMV"),
     .extensions     = "xmv",
diff --git a/libavformat/xvag.c b/libavformat/xvag.c
index e95d84aa3f..55bc25227e 100644
--- a/libavformat/xvag.c
+++ b/libavformat/xvag.c
@@ -103,7 +103,7 @@ static int xvag_read_packet(AVFormatContext *s, AVPacket *pkt)
     return av_get_packet(s->pb, pkt, par->block_align);
 }
 
-AVInputFormat ff_xvag_demuxer = {
+const AVInputFormat ff_xvag_demuxer = {
     .name           = "xvag",
     .long_name      = NULL_IF_CONFIG_SMALL("Sony PS3 XVAG"),
     .read_probe     = xvag_probe,
diff --git a/libavformat/xwma.c b/libavformat/xwma.c
index aedadcf140..9c9b02e515 100644
--- a/libavformat/xwma.c
+++ b/libavformat/xwma.c
@@ -313,7 +313,7 @@ static int xwma_read_packet(AVFormatContext *s, AVPacket *pkt)
     return ret;
 }
 
-AVInputFormat ff_xwma_demuxer = {
+const AVInputFormat ff_xwma_demuxer = {
     .name           = "xwma",
     .long_name      = NULL_IF_CONFIG_SMALL("Microsoft xWMA"),
     .priv_data_size = sizeof(XWMAContext),
diff --git a/libavformat/yop.c b/libavformat/yop.c
index 0d8d9f2ff7..8ecdc654a9 100644
--- a/libavformat/yop.c
+++ b/libavformat/yop.c
@@ -204,7 +204,7 @@ static int yop_read_seek(AVFormatContext *s, int stream_index,
     return 0;
 }
 
-AVInputFormat ff_yop_demuxer = {
+const AVInputFormat ff_yop_demuxer = {
     .name           = "yop",
     .long_name      = NULL_IF_CONFIG_SMALL("Psygnosis YOP"),
     .priv_data_size = sizeof(YopDecContext),
diff --git a/libavformat/yuv4mpegdec.c b/libavformat/yuv4mpegdec.c
index 980de7d145..146533c4cc 100644
--- a/libavformat/yuv4mpegdec.c
+++ b/libavformat/yuv4mpegdec.c
@@ -345,7 +345,7 @@ static int yuv4_probe(const AVProbeData *pd)
         return 0;
 }
 
-AVInputFormat ff_yuv4mpegpipe_demuxer = {
+const AVInputFormat ff_yuv4mpegpipe_demuxer = {
     .name           = "yuv4mpegpipe",
     .long_name      = NULL_IF_CONFIG_SMALL("YUV4MPEG pipe"),
     .read_probe     = yuv4_probe,
diff --git a/libavformat/yuv4mpegenc.c b/libavformat/yuv4mpegenc.c
index f21f2dce92..aff066f1c5 100644
--- a/libavformat/yuv4mpegenc.c
+++ b/libavformat/yuv4mpegenc.c
@@ -328,7 +328,7 @@ static int yuv4_init(AVFormatContext *s)
     return 0;
 }
 
-AVOutputFormat ff_yuv4mpegpipe_muxer = {
+const AVOutputFormat ff_yuv4mpegpipe_muxer = {
     .name              = "yuv4mpegpipe",
     .long_name         = NULL_IF_CONFIG_SMALL("YUV4MPEG pipe"),
     .extensions        = "y4m",
