allcodecs.c (40611B)
1 /* 2 * Provide registration of all codecs, parsers and bitstream filters for libavcodec. 3 * Copyright (c) 2002 Fabrice Bellard 4 * 5 * This file is part of FFmpeg. 6 * 7 * FFmpeg is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * FFmpeg is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with FFmpeg; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 20 */ 21 22 /** 23 * @file 24 * Provide registration of all codecs, parsers and bitstream filters for libavcodec. 25 */ 26 27 #include <stdint.h> 28 #include <string.h> 29 30 #include "config.h" 31 #include "config_components.h" 32 #include "libavutil/thread.h" 33 #include "codec.h" 34 #include "codec_id.h" 35 #include "codec_internal.h" 36 37 extern const FFCodec ff_a64multi_encoder; 38 extern const FFCodec ff_a64multi5_encoder; 39 extern const FFCodec ff_aasc_decoder; 40 extern const FFCodec ff_aic_decoder; 41 extern const FFCodec ff_alias_pix_encoder; 42 extern const FFCodec ff_alias_pix_decoder; 43 extern const FFCodec ff_agm_decoder; 44 extern const FFCodec ff_amv_encoder; 45 extern const FFCodec ff_amv_decoder; 46 extern const FFCodec ff_anm_decoder; 47 extern const FFCodec ff_ansi_decoder; 48 extern const FFCodec ff_apng_encoder; 49 extern const FFCodec ff_apng_decoder; 50 extern const FFCodec ff_arbc_decoder; 51 extern const FFCodec ff_argo_decoder; 52 extern const FFCodec ff_asv1_encoder; 53 extern const FFCodec ff_asv1_decoder; 54 extern const FFCodec ff_asv2_encoder; 55 extern const FFCodec ff_asv2_decoder; 56 extern const FFCodec ff_aura_decoder; 57 extern const FFCodec ff_aura2_decoder; 58 extern const FFCodec ff_avrp_encoder; 59 extern const FFCodec ff_avrp_decoder; 60 extern const FFCodec ff_avrn_decoder; 61 extern const FFCodec ff_avs_decoder; 62 extern const FFCodec ff_avui_encoder; 63 extern const FFCodec ff_avui_decoder; 64 extern const FFCodec ff_bethsoftvid_decoder; 65 extern const FFCodec ff_bfi_decoder; 66 extern const FFCodec ff_bink_decoder; 67 extern const FFCodec ff_bitpacked_decoder; 68 extern const FFCodec ff_bitpacked_encoder; 69 extern const FFCodec ff_bmp_encoder; 70 extern const FFCodec ff_bmp_decoder; 71 extern const FFCodec ff_bmv_video_decoder; 72 extern const FFCodec ff_brender_pix_decoder; 73 extern const FFCodec ff_c93_decoder; 74 extern const FFCodec ff_cavs_decoder; 75 extern const FFCodec ff_cdgraphics_decoder; 76 extern const FFCodec ff_cdtoons_decoder; 77 extern const FFCodec ff_cdxl_decoder; 78 extern const FFCodec ff_cfhd_encoder; 79 extern const FFCodec ff_cfhd_decoder; 80 extern const FFCodec ff_cinepak_encoder; 81 extern const FFCodec ff_cinepak_decoder; 82 extern const FFCodec ff_clearvideo_decoder; 83 extern const FFCodec ff_cljr_encoder; 84 extern const FFCodec ff_cljr_decoder; 85 extern const FFCodec ff_cllc_decoder; 86 extern const FFCodec ff_comfortnoise_encoder; 87 extern const FFCodec ff_comfortnoise_decoder; 88 extern const FFCodec ff_cpia_decoder; 89 extern const FFCodec ff_cri_decoder; 90 extern const FFCodec ff_cscd_decoder; 91 extern const FFCodec ff_cyuv_decoder; 92 extern const FFCodec ff_dds_decoder; 93 extern const FFCodec ff_dfa_decoder; 94 extern const FFCodec ff_dirac_decoder; 95 extern const FFCodec ff_dnxhd_encoder; 96 extern const FFCodec ff_dnxhd_decoder; 97 extern const FFCodec ff_dpx_encoder; 98 extern const FFCodec ff_dpx_decoder; 99 extern const FFCodec ff_dsicinvideo_decoder; 100 extern const FFCodec ff_dvaudio_decoder; 101 extern const FFCodec ff_dvvideo_encoder; 102 extern const FFCodec ff_dvvideo_decoder; 103 extern const FFCodec ff_dxa_decoder; 104 extern const FFCodec ff_dxtory_decoder; 105 extern const FFCodec ff_dxv_encoder; 106 extern const FFCodec ff_dxv_decoder; 107 extern const FFCodec ff_eacmv_decoder; 108 extern const FFCodec ff_eamad_decoder; 109 extern const FFCodec ff_eatgq_decoder; 110 extern const FFCodec ff_eatgv_decoder; 111 extern const FFCodec ff_eatqi_decoder; 112 extern const FFCodec ff_eightbps_decoder; 113 extern const FFCodec ff_eightsvx_exp_decoder; 114 extern const FFCodec ff_eightsvx_fib_decoder; 115 extern const FFCodec ff_escape124_decoder; 116 extern const FFCodec ff_escape130_decoder; 117 extern const FFCodec ff_exr_encoder; 118 extern const FFCodec ff_exr_decoder; 119 extern const FFCodec ff_ffv1_encoder; 120 extern const FFCodec ff_ffv1_vulkan_encoder; 121 extern const FFCodec ff_ffv1_decoder; 122 extern const FFCodec ff_ffvhuff_encoder; 123 extern const FFCodec ff_ffvhuff_decoder; 124 extern const FFCodec ff_fic_decoder; 125 extern const FFCodec ff_fits_encoder; 126 extern const FFCodec ff_fits_decoder; 127 extern const FFCodec ff_flashsv_encoder; 128 extern const FFCodec ff_flashsv_decoder; 129 extern const FFCodec ff_flashsv2_encoder; 130 extern const FFCodec ff_flashsv2_decoder; 131 extern const FFCodec ff_flic_decoder; 132 extern const FFCodec ff_flv_encoder; 133 extern const FFCodec ff_flv_decoder; 134 extern const FFCodec ff_fmvc_decoder; 135 extern const FFCodec ff_fourxm_decoder; 136 extern const FFCodec ff_fraps_decoder; 137 extern const FFCodec ff_frwu_decoder; 138 extern const FFCodec ff_g2m_decoder; 139 extern const FFCodec ff_gdv_decoder; 140 extern const FFCodec ff_gem_decoder; 141 extern const FFCodec ff_gif_encoder; 142 extern const FFCodec ff_gif_decoder; 143 extern const FFCodec ff_h261_encoder; 144 extern const FFCodec ff_h261_decoder; 145 extern const FFCodec ff_h263_encoder; 146 extern const FFCodec ff_h263_decoder; 147 extern const FFCodec ff_h263i_decoder; 148 extern const FFCodec ff_h263p_encoder; 149 extern const FFCodec ff_h263p_decoder; 150 extern const FFCodec ff_h263_v4l2m2m_decoder; 151 extern const FFCodec ff_h264_decoder; 152 extern const FFCodec ff_h264_v4l2m2m_decoder; 153 extern const FFCodec ff_h264_mediacodec_decoder; 154 extern const FFCodec ff_h264_mediacodec_encoder; 155 extern const FFCodec ff_h264_mmal_decoder; 156 extern const FFCodec ff_h264_qsv_decoder; 157 extern const FFCodec ff_h264_rkmpp_decoder; 158 extern const FFCodec ff_hap_encoder; 159 extern const FFCodec ff_hap_decoder; 160 extern const FFCodec ff_hevc_decoder; 161 extern const FFCodec ff_hevc_qsv_decoder; 162 extern const FFCodec ff_hevc_rkmpp_decoder; 163 extern const FFCodec ff_hevc_v4l2m2m_decoder; 164 extern const FFCodec ff_hnm4_video_decoder; 165 extern const FFCodec ff_hq_hqa_decoder; 166 extern const FFCodec ff_hqx_decoder; 167 extern const FFCodec ff_huffyuv_encoder; 168 extern const FFCodec ff_huffyuv_decoder; 169 extern const FFCodec ff_hymt_decoder; 170 extern const FFCodec ff_idcin_decoder; 171 extern const FFCodec ff_iff_ilbm_decoder; 172 extern const FFCodec ff_imm4_decoder; 173 extern const FFCodec ff_imm5_decoder; 174 extern const FFCodec ff_indeo2_decoder; 175 extern const FFCodec ff_indeo3_decoder; 176 extern const FFCodec ff_indeo4_decoder; 177 extern const FFCodec ff_indeo5_decoder; 178 extern const FFCodec ff_interplay_video_decoder; 179 extern const FFCodec ff_ipu_decoder; 180 extern const FFCodec ff_jpeg2000_encoder; 181 extern const FFCodec ff_jpeg2000_decoder; 182 extern const FFCodec ff_jpegls_encoder; 183 extern const FFCodec ff_jpegls_decoder; 184 extern const FFCodec ff_jv_decoder; 185 extern const FFCodec ff_kgv1_decoder; 186 extern const FFCodec ff_kmvc_decoder; 187 extern const FFCodec ff_lagarith_decoder; 188 extern const FFCodec ff_lead_decoder; 189 extern const FFCodec ff_ljpeg_encoder; 190 extern const FFCodec ff_loco_decoder; 191 extern const FFCodec ff_lscr_decoder; 192 extern const FFCodec ff_m101_decoder; 193 extern const FFCodec ff_magicyuv_encoder; 194 extern const FFCodec ff_magicyuv_decoder; 195 extern const FFCodec ff_mdec_decoder; 196 extern const FFCodec ff_media100_decoder; 197 extern const FFCodec ff_mimic_decoder; 198 extern const FFCodec ff_mjpeg_encoder; 199 extern const FFCodec ff_mjpeg_decoder; 200 extern const FFCodec ff_mjpegb_decoder; 201 extern const FFCodec ff_mmvideo_decoder; 202 extern const FFCodec ff_mobiclip_decoder; 203 extern const FFCodec ff_motionpixels_decoder; 204 extern const FFCodec ff_mpeg1video_encoder; 205 extern const FFCodec ff_mpeg1video_decoder; 206 extern const FFCodec ff_mpeg2video_encoder; 207 extern const FFCodec ff_mpeg2video_decoder; 208 extern const FFCodec ff_mpeg4_encoder; 209 extern const FFCodec ff_mpeg4_decoder; 210 extern const FFCodec ff_mpeg4_v4l2m2m_decoder; 211 extern const FFCodec ff_mpeg4_mmal_decoder; 212 extern const FFCodec ff_mpegvideo_decoder; 213 extern const FFCodec ff_mpeg1_v4l2m2m_decoder; 214 extern const FFCodec ff_mpeg2_mmal_decoder; 215 extern const FFCodec ff_mpeg2_v4l2m2m_decoder; 216 extern const FFCodec ff_mpeg2_qsv_decoder; 217 extern const FFCodec ff_mpeg2_mediacodec_decoder; 218 extern const FFCodec ff_msa1_decoder; 219 extern const FFCodec ff_mscc_decoder; 220 extern const FFCodec ff_msmpeg4v1_decoder; 221 extern const FFCodec ff_msmpeg4v2_encoder; 222 extern const FFCodec ff_msmpeg4v2_decoder; 223 extern const FFCodec ff_msmpeg4v3_encoder; 224 extern const FFCodec ff_msmpeg4v3_decoder; 225 extern const FFCodec ff_msp2_decoder; 226 extern const FFCodec ff_msrle_encoder; 227 extern const FFCodec ff_msrle_decoder; 228 extern const FFCodec ff_mss1_decoder; 229 extern const FFCodec ff_mss2_decoder; 230 extern const FFCodec ff_msvideo1_encoder; 231 extern const FFCodec ff_msvideo1_decoder; 232 extern const FFCodec ff_mszh_decoder; 233 extern const FFCodec ff_mts2_decoder; 234 extern const FFCodec ff_mv30_decoder; 235 extern const FFCodec ff_mvc1_decoder; 236 extern const FFCodec ff_mvc2_decoder; 237 extern const FFCodec ff_mvdv_decoder; 238 extern const FFCodec ff_mvha_decoder; 239 extern const FFCodec ff_mwsc_decoder; 240 extern const FFCodec ff_mxpeg_decoder; 241 extern const FFCodec ff_notchlc_decoder; 242 extern const FFCodec ff_nuv_decoder; 243 extern const FFCodec ff_paf_video_decoder; 244 extern const FFCodec ff_pam_encoder; 245 extern const FFCodec ff_pam_decoder; 246 extern const FFCodec ff_pbm_encoder; 247 extern const FFCodec ff_pbm_decoder; 248 extern const FFCodec ff_pcx_encoder; 249 extern const FFCodec ff_pcx_decoder; 250 extern const FFCodec ff_pdv_decoder; 251 extern const FFCodec ff_pfm_encoder; 252 extern const FFCodec ff_pfm_decoder; 253 extern const FFCodec ff_pgm_encoder; 254 extern const FFCodec ff_pgm_decoder; 255 extern const FFCodec ff_pgmyuv_encoder; 256 extern const FFCodec ff_pgmyuv_decoder; 257 extern const FFCodec ff_pgx_decoder; 258 extern const FFCodec ff_phm_encoder; 259 extern const FFCodec ff_phm_decoder; 260 extern const FFCodec ff_photocd_decoder; 261 extern const FFCodec ff_pictor_decoder; 262 extern const FFCodec ff_pixlet_decoder; 263 extern const FFCodec ff_png_encoder; 264 extern const FFCodec ff_png_decoder; 265 extern const FFCodec ff_ppm_encoder; 266 extern const FFCodec ff_ppm_decoder; 267 extern const FFCodec ff_prores_encoder; 268 extern const FFCodec ff_prores_decoder; 269 extern const FFCodec ff_prores_aw_encoder; 270 extern const FFCodec ff_prores_ks_encoder; 271 extern const FFCodec ff_prosumer_decoder; 272 extern const FFCodec ff_psd_decoder; 273 extern const FFCodec ff_ptx_decoder; 274 extern const FFCodec ff_qdraw_decoder; 275 extern const FFCodec ff_qoi_encoder; 276 extern const FFCodec ff_qoi_decoder; 277 extern const FFCodec ff_qpeg_decoder; 278 extern const FFCodec ff_qtrle_encoder; 279 extern const FFCodec ff_qtrle_decoder; 280 extern const FFCodec ff_r10k_encoder; 281 extern const FFCodec ff_r10k_decoder; 282 extern const FFCodec ff_r210_encoder; 283 extern const FFCodec ff_r210_decoder; 284 extern const FFCodec ff_rasc_decoder; 285 extern const FFCodec ff_rawvideo_encoder; 286 extern const FFCodec ff_rawvideo_decoder; 287 extern const FFCodec ff_rka_decoder; 288 extern const FFCodec ff_rl2_decoder; 289 extern const FFCodec ff_roq_encoder; 290 extern const FFCodec ff_roq_decoder; 291 extern const FFCodec ff_rpza_encoder; 292 extern const FFCodec ff_rpza_decoder; 293 extern const FFCodec ff_rscc_decoder; 294 extern const FFCodec ff_rtv1_decoder; 295 extern const FFCodec ff_rv10_encoder; 296 extern const FFCodec ff_rv10_decoder; 297 extern const FFCodec ff_rv20_encoder; 298 extern const FFCodec ff_rv20_decoder; 299 extern const FFCodec ff_rv30_decoder; 300 extern const FFCodec ff_rv40_decoder; 301 extern const FFCodec ff_rv60_decoder; 302 extern const FFCodec ff_s302m_encoder; 303 extern const FFCodec ff_s302m_decoder; 304 extern const FFCodec ff_sanm_decoder; 305 extern const FFCodec ff_scpr_decoder; 306 extern const FFCodec ff_screenpresso_decoder; 307 extern const FFCodec ff_sga_decoder; 308 extern const FFCodec ff_sgi_encoder; 309 extern const FFCodec ff_sgi_decoder; 310 extern const FFCodec ff_sgirle_decoder; 311 extern const FFCodec ff_sheervideo_decoder; 312 extern const FFCodec ff_simbiosis_imx_decoder; 313 extern const FFCodec ff_smacker_decoder; 314 extern const FFCodec ff_smc_encoder; 315 extern const FFCodec ff_smc_decoder; 316 extern const FFCodec ff_smvjpeg_decoder; 317 extern const FFCodec ff_snow_encoder; 318 extern const FFCodec ff_snow_decoder; 319 extern const FFCodec ff_sp5x_decoder; 320 extern const FFCodec ff_speedhq_decoder; 321 extern const FFCodec ff_speedhq_encoder; 322 extern const FFCodec ff_speex_decoder; 323 extern const FFCodec ff_srgc_decoder; 324 extern const FFCodec ff_sunrast_encoder; 325 extern const FFCodec ff_sunrast_decoder; 326 extern const FFCodec ff_svq1_encoder; 327 extern const FFCodec ff_svq1_decoder; 328 extern const FFCodec ff_svq3_decoder; 329 extern const FFCodec ff_targa_encoder; 330 extern const FFCodec ff_targa_decoder; 331 extern const FFCodec ff_targa_y216_decoder; 332 extern const FFCodec ff_tdsc_decoder; 333 extern const FFCodec ff_theora_decoder; 334 extern const FFCodec ff_thp_decoder; 335 extern const FFCodec ff_tiertexseqvideo_decoder; 336 extern const FFCodec ff_tiff_encoder; 337 extern const FFCodec ff_tiff_decoder; 338 extern const FFCodec ff_tmv_decoder; 339 extern const FFCodec ff_truemotion1_decoder; 340 extern const FFCodec ff_truemotion2_decoder; 341 extern const FFCodec ff_truemotion2rt_decoder; 342 extern const FFCodec ff_tscc_decoder; 343 extern const FFCodec ff_tscc2_decoder; 344 extern const FFCodec ff_txd_decoder; 345 extern const FFCodec ff_ulti_decoder; 346 extern const FFCodec ff_utvideo_encoder; 347 extern const FFCodec ff_utvideo_decoder; 348 extern const FFCodec ff_v210_encoder; 349 extern const FFCodec ff_v210_decoder; 350 extern const FFCodec ff_v210x_decoder; 351 #if FF_API_V408_CODECID 352 extern const FFCodec ff_v308_encoder; 353 extern const FFCodec ff_v308_decoder; 354 extern const FFCodec ff_v408_encoder; 355 extern const FFCodec ff_v408_decoder; 356 extern const FFCodec ff_v410_encoder; 357 extern const FFCodec ff_v410_decoder; 358 #endif 359 extern const FFCodec ff_vb_decoder; 360 extern const FFCodec ff_vbn_encoder; 361 extern const FFCodec ff_vbn_decoder; 362 extern const FFCodec ff_vble_decoder; 363 extern const FFCodec ff_vc1_decoder; 364 extern const FFCodec ff_vc1image_decoder; 365 extern const FFCodec ff_vc1_mmal_decoder; 366 extern const FFCodec ff_vc1_qsv_decoder; 367 extern const FFCodec ff_vc1_v4l2m2m_decoder; 368 extern const FFCodec ff_vc2_encoder; 369 extern const FFCodec ff_vcr1_decoder; 370 extern const FFCodec ff_vmdvideo_decoder; 371 extern const FFCodec ff_vmix_decoder; 372 extern const FFCodec ff_vmnc_decoder; 373 extern const FFCodec ff_vp3_decoder; 374 extern const FFCodec ff_vp4_decoder; 375 extern const FFCodec ff_vp5_decoder; 376 extern const FFCodec ff_vp6_decoder; 377 extern const FFCodec ff_vp6a_decoder; 378 extern const FFCodec ff_vp6f_decoder; 379 extern const FFCodec ff_vp7_decoder; 380 extern const FFCodec ff_vp8_decoder; 381 extern const FFCodec ff_vp8_rkmpp_decoder; 382 extern const FFCodec ff_vp8_v4l2m2m_decoder; 383 extern const FFCodec ff_vp9_decoder; 384 extern const FFCodec ff_vp9_rkmpp_decoder; 385 extern const FFCodec ff_vp9_v4l2m2m_decoder; 386 extern const FFCodec ff_vqa_decoder; 387 extern const FFCodec ff_vqc_decoder; 388 extern const FFCodec ff_vvc_decoder; 389 extern const FFCodec ff_wbmp_decoder; 390 extern const FFCodec ff_wbmp_encoder; 391 extern const FFCodec ff_webp_decoder; 392 extern const FFCodec ff_wcmv_decoder; 393 extern const FFCodec ff_wrapped_avframe_encoder; 394 extern const FFCodec ff_wrapped_avframe_decoder; 395 extern const FFCodec ff_wmv1_encoder; 396 extern const FFCodec ff_wmv1_decoder; 397 extern const FFCodec ff_wmv2_encoder; 398 extern const FFCodec ff_wmv2_decoder; 399 extern const FFCodec ff_wmv3_decoder; 400 extern const FFCodec ff_wmv3image_decoder; 401 extern const FFCodec ff_wnv1_decoder; 402 extern const FFCodec ff_xan_wc3_decoder; 403 extern const FFCodec ff_xan_wc4_decoder; 404 extern const FFCodec ff_xbm_encoder; 405 extern const FFCodec ff_xbm_decoder; 406 extern const FFCodec ff_xface_encoder; 407 extern const FFCodec ff_xface_decoder; 408 extern const FFCodec ff_xl_decoder; 409 extern const FFCodec ff_xpm_decoder; 410 extern const FFCodec ff_xwd_encoder; 411 extern const FFCodec ff_xwd_decoder; 412 extern const FFCodec ff_y41p_encoder; 413 extern const FFCodec ff_y41p_decoder; 414 extern const FFCodec ff_ylc_decoder; 415 extern const FFCodec ff_yop_decoder; 416 extern const FFCodec ff_yuv4_encoder; 417 extern const FFCodec ff_yuv4_decoder; 418 extern const FFCodec ff_zero12v_decoder; 419 extern const FFCodec ff_zerocodec_decoder; 420 extern const FFCodec ff_zlib_encoder; 421 extern const FFCodec ff_zlib_decoder; 422 extern const FFCodec ff_zmbv_encoder; 423 extern const FFCodec ff_zmbv_decoder; 424 425 /* audio codecs */ 426 extern const FFCodec ff_aac_encoder; 427 extern const FFCodec ff_aac_decoder; 428 extern const FFCodec ff_aac_fixed_decoder; 429 extern const FFCodec ff_aac_latm_decoder; 430 extern const FFCodec ff_ac3_encoder; 431 extern const FFCodec ff_ac3_decoder; 432 extern const FFCodec ff_ac3_fixed_encoder; 433 extern const FFCodec ff_ac3_fixed_decoder; 434 extern const FFCodec ff_acelp_kelvin_decoder; 435 extern const FFCodec ff_alac_encoder; 436 extern const FFCodec ff_alac_decoder; 437 extern const FFCodec ff_als_decoder; 438 extern const FFCodec ff_amrnb_decoder; 439 extern const FFCodec ff_amrwb_decoder; 440 extern const FFCodec ff_apac_decoder; 441 extern const FFCodec ff_ape_decoder; 442 extern const FFCodec ff_aptx_encoder; 443 extern const FFCodec ff_aptx_decoder; 444 extern const FFCodec ff_aptx_hd_encoder; 445 extern const FFCodec ff_aptx_hd_decoder; 446 extern const FFCodec ff_atrac1_decoder; 447 extern const FFCodec ff_atrac3_decoder; 448 extern const FFCodec ff_atrac3al_decoder; 449 extern const FFCodec ff_atrac3p_decoder; 450 extern const FFCodec ff_atrac3pal_decoder; 451 extern const FFCodec ff_atrac9_decoder; 452 extern const FFCodec ff_binkaudio_dct_decoder; 453 extern const FFCodec ff_binkaudio_rdft_decoder; 454 extern const FFCodec ff_bmv_audio_decoder; 455 extern const FFCodec ff_bonk_decoder; 456 extern const FFCodec ff_cook_decoder; 457 extern const FFCodec ff_dca_encoder; 458 extern const FFCodec ff_dca_decoder; 459 extern const FFCodec ff_dfpwm_encoder; 460 extern const FFCodec ff_dfpwm_decoder; 461 extern const FFCodec ff_dolby_e_decoder; 462 extern const FFCodec ff_dsd_lsbf_decoder; 463 extern const FFCodec ff_dsd_msbf_decoder; 464 extern const FFCodec ff_dsd_lsbf_planar_decoder; 465 extern const FFCodec ff_dsd_msbf_planar_decoder; 466 extern const FFCodec ff_dsicinaudio_decoder; 467 extern const FFCodec ff_dss_sp_decoder; 468 extern const FFCodec ff_dst_decoder; 469 extern const FFCodec ff_eac3_encoder; 470 extern const FFCodec ff_eac3_decoder; 471 extern const FFCodec ff_evrc_decoder; 472 extern const FFCodec ff_fastaudio_decoder; 473 extern const FFCodec ff_ffwavesynth_decoder; 474 extern const FFCodec ff_flac_encoder; 475 extern const FFCodec ff_flac_decoder; 476 extern const FFCodec ff_ftr_decoder; 477 extern const FFCodec ff_g723_1_encoder; 478 extern const FFCodec ff_g723_1_decoder; 479 extern const FFCodec ff_g729_decoder; 480 extern const FFCodec ff_gsm_decoder; 481 extern const FFCodec ff_gsm_ms_decoder; 482 extern const FFCodec ff_hca_decoder; 483 extern const FFCodec ff_hcom_decoder; 484 extern const FFCodec ff_hdr_encoder; 485 extern const FFCodec ff_hdr_decoder; 486 extern const FFCodec ff_iac_decoder; 487 extern const FFCodec ff_ilbc_decoder; 488 extern const FFCodec ff_imc_decoder; 489 extern const FFCodec ff_interplay_acm_decoder; 490 extern const FFCodec ff_mace3_decoder; 491 extern const FFCodec ff_mace6_decoder; 492 extern const FFCodec ff_metasound_decoder; 493 extern const FFCodec ff_misc4_decoder; 494 extern const FFCodec ff_mlp_encoder; 495 extern const FFCodec ff_mlp_decoder; 496 extern const FFCodec ff_mp1_decoder; 497 extern const FFCodec ff_mp1float_decoder; 498 extern const FFCodec ff_mp2_encoder; 499 extern const FFCodec ff_mp2_decoder; 500 extern const FFCodec ff_mp2float_decoder; 501 extern const FFCodec ff_mp2fixed_encoder; 502 extern const FFCodec ff_mp3float_decoder; 503 extern const FFCodec ff_mp3_decoder; 504 extern const FFCodec ff_mp3adufloat_decoder; 505 extern const FFCodec ff_mp3adu_decoder; 506 extern const FFCodec ff_mp3on4float_decoder; 507 extern const FFCodec ff_mp3on4_decoder; 508 extern const FFCodec ff_mpc7_decoder; 509 extern const FFCodec ff_mpc8_decoder; 510 extern const FFCodec ff_msnsiren_decoder; 511 extern const FFCodec ff_nellymoser_encoder; 512 extern const FFCodec ff_nellymoser_decoder; 513 extern const FFCodec ff_on2avc_decoder; 514 extern const FFCodec ff_opus_encoder; 515 extern const FFCodec ff_opus_decoder; 516 extern const FFCodec ff_osq_decoder; 517 extern const FFCodec ff_paf_audio_decoder; 518 extern const FFCodec ff_qcelp_decoder; 519 extern const FFCodec ff_qdm2_decoder; 520 extern const FFCodec ff_qdmc_decoder; 521 extern const FFCodec ff_qoa_decoder; 522 extern const FFCodec ff_ra_144_encoder; 523 extern const FFCodec ff_ra_144_decoder; 524 extern const FFCodec ff_ra_288_decoder; 525 extern const FFCodec ff_ralf_decoder; 526 extern const FFCodec ff_sbc_encoder; 527 extern const FFCodec ff_sbc_decoder; 528 extern const FFCodec ff_shorten_decoder; 529 extern const FFCodec ff_sipr_decoder; 530 extern const FFCodec ff_siren_decoder; 531 extern const FFCodec ff_smackaud_decoder; 532 extern const FFCodec ff_sonic_encoder; 533 extern const FFCodec ff_sonic_decoder; 534 extern const FFCodec ff_sonic_ls_encoder; 535 extern const FFCodec ff_tak_decoder; 536 extern const FFCodec ff_truehd_encoder; 537 extern const FFCodec ff_truehd_decoder; 538 extern const FFCodec ff_truespeech_decoder; 539 extern const FFCodec ff_tta_encoder; 540 extern const FFCodec ff_tta_decoder; 541 extern const FFCodec ff_twinvq_decoder; 542 extern const FFCodec ff_vmdaudio_decoder; 543 extern const FFCodec ff_vorbis_encoder; 544 extern const FFCodec ff_vorbis_decoder; 545 extern const FFCodec ff_wavarc_decoder; 546 extern const FFCodec ff_wavpack_encoder; 547 extern const FFCodec ff_wavpack_decoder; 548 extern const FFCodec ff_wmalossless_decoder; 549 extern const FFCodec ff_wmapro_decoder; 550 extern const FFCodec ff_wmav1_encoder; 551 extern const FFCodec ff_wmav1_decoder; 552 extern const FFCodec ff_wmav2_encoder; 553 extern const FFCodec ff_wmav2_decoder; 554 extern const FFCodec ff_wmavoice_decoder; 555 extern const FFCodec ff_ws_snd1_decoder; 556 extern const FFCodec ff_xma1_decoder; 557 extern const FFCodec ff_xma2_decoder; 558 559 /* PCM codecs */ 560 extern const FFCodec ff_pcm_alaw_encoder; 561 extern const FFCodec ff_pcm_alaw_decoder; 562 extern const FFCodec ff_pcm_bluray_encoder; 563 extern const FFCodec ff_pcm_bluray_decoder; 564 extern const FFCodec ff_pcm_dvd_encoder; 565 extern const FFCodec ff_pcm_dvd_decoder; 566 extern const FFCodec ff_pcm_f16le_decoder; 567 extern const FFCodec ff_pcm_f24le_decoder; 568 extern const FFCodec ff_pcm_f32be_encoder; 569 extern const FFCodec ff_pcm_f32be_decoder; 570 extern const FFCodec ff_pcm_f32le_encoder; 571 extern const FFCodec ff_pcm_f32le_decoder; 572 extern const FFCodec ff_pcm_f64be_encoder; 573 extern const FFCodec ff_pcm_f64be_decoder; 574 extern const FFCodec ff_pcm_f64le_encoder; 575 extern const FFCodec ff_pcm_f64le_decoder; 576 extern const FFCodec ff_pcm_lxf_decoder; 577 extern const FFCodec ff_pcm_mulaw_encoder; 578 extern const FFCodec ff_pcm_mulaw_decoder; 579 extern const FFCodec ff_pcm_s8_encoder; 580 extern const FFCodec ff_pcm_s8_decoder; 581 extern const FFCodec ff_pcm_s8_planar_encoder; 582 extern const FFCodec ff_pcm_s8_planar_decoder; 583 extern const FFCodec ff_pcm_s16be_encoder; 584 extern const FFCodec ff_pcm_s16be_decoder; 585 extern const FFCodec ff_pcm_s16be_planar_encoder; 586 extern const FFCodec ff_pcm_s16be_planar_decoder; 587 extern const FFCodec ff_pcm_s16le_encoder; 588 extern const FFCodec ff_pcm_s16le_decoder; 589 extern const FFCodec ff_pcm_s16le_planar_encoder; 590 extern const FFCodec ff_pcm_s16le_planar_decoder; 591 extern const FFCodec ff_pcm_s24be_encoder; 592 extern const FFCodec ff_pcm_s24be_decoder; 593 extern const FFCodec ff_pcm_s24daud_encoder; 594 extern const FFCodec ff_pcm_s24daud_decoder; 595 extern const FFCodec ff_pcm_s24le_encoder; 596 extern const FFCodec ff_pcm_s24le_decoder; 597 extern const FFCodec ff_pcm_s24le_planar_encoder; 598 extern const FFCodec ff_pcm_s24le_planar_decoder; 599 extern const FFCodec ff_pcm_s32be_encoder; 600 extern const FFCodec ff_pcm_s32be_decoder; 601 extern const FFCodec ff_pcm_s32le_encoder; 602 extern const FFCodec ff_pcm_s32le_decoder; 603 extern const FFCodec ff_pcm_s32le_planar_encoder; 604 extern const FFCodec ff_pcm_s32le_planar_decoder; 605 extern const FFCodec ff_pcm_s64be_encoder; 606 extern const FFCodec ff_pcm_s64be_decoder; 607 extern const FFCodec ff_pcm_s64le_encoder; 608 extern const FFCodec ff_pcm_s64le_decoder; 609 extern const FFCodec ff_pcm_sga_decoder; 610 extern const FFCodec ff_pcm_u8_encoder; 611 extern const FFCodec ff_pcm_u8_decoder; 612 extern const FFCodec ff_pcm_u16be_encoder; 613 extern const FFCodec ff_pcm_u16be_decoder; 614 extern const FFCodec ff_pcm_u16le_encoder; 615 extern const FFCodec ff_pcm_u16le_decoder; 616 extern const FFCodec ff_pcm_u24be_encoder; 617 extern const FFCodec ff_pcm_u24be_decoder; 618 extern const FFCodec ff_pcm_u24le_encoder; 619 extern const FFCodec ff_pcm_u24le_decoder; 620 extern const FFCodec ff_pcm_u32be_encoder; 621 extern const FFCodec ff_pcm_u32be_decoder; 622 extern const FFCodec ff_pcm_u32le_encoder; 623 extern const FFCodec ff_pcm_u32le_decoder; 624 extern const FFCodec ff_pcm_vidc_encoder; 625 extern const FFCodec ff_pcm_vidc_decoder; 626 627 /* DPCM codecs */ 628 extern const FFCodec ff_cbd2_dpcm_decoder; 629 extern const FFCodec ff_derf_dpcm_decoder; 630 extern const FFCodec ff_gremlin_dpcm_decoder; 631 extern const FFCodec ff_interplay_dpcm_decoder; 632 extern const FFCodec ff_roq_dpcm_encoder; 633 extern const FFCodec ff_roq_dpcm_decoder; 634 extern const FFCodec ff_sdx2_dpcm_decoder; 635 extern const FFCodec ff_sol_dpcm_decoder; 636 extern const FFCodec ff_xan_dpcm_decoder; 637 extern const FFCodec ff_wady_dpcm_decoder; 638 639 /* ADPCM codecs */ 640 extern const FFCodec ff_adpcm_4xm_decoder; 641 extern const FFCodec ff_adpcm_adx_encoder; 642 extern const FFCodec ff_adpcm_adx_decoder; 643 extern const FFCodec ff_adpcm_afc_decoder; 644 extern const FFCodec ff_adpcm_agm_decoder; 645 extern const FFCodec ff_adpcm_aica_decoder; 646 extern const FFCodec ff_adpcm_argo_decoder; 647 extern const FFCodec ff_adpcm_argo_encoder; 648 extern const FFCodec ff_adpcm_ct_decoder; 649 extern const FFCodec ff_adpcm_dtk_decoder; 650 extern const FFCodec ff_adpcm_ea_decoder; 651 extern const FFCodec ff_adpcm_ea_maxis_xa_decoder; 652 extern const FFCodec ff_adpcm_ea_r1_decoder; 653 extern const FFCodec ff_adpcm_ea_r2_decoder; 654 extern const FFCodec ff_adpcm_ea_r3_decoder; 655 extern const FFCodec ff_adpcm_ea_xas_decoder; 656 extern const FFCodec ff_adpcm_g722_encoder; 657 extern const FFCodec ff_adpcm_g722_decoder; 658 extern const FFCodec ff_adpcm_g726_encoder; 659 extern const FFCodec ff_adpcm_g726_decoder; 660 extern const FFCodec ff_adpcm_g726le_encoder; 661 extern const FFCodec ff_adpcm_g726le_decoder; 662 extern const FFCodec ff_adpcm_ima_acorn_decoder; 663 extern const FFCodec ff_adpcm_ima_amv_decoder; 664 extern const FFCodec ff_adpcm_ima_amv_encoder; 665 extern const FFCodec ff_adpcm_ima_alp_decoder; 666 extern const FFCodec ff_adpcm_ima_alp_encoder; 667 extern const FFCodec ff_adpcm_ima_apc_decoder; 668 extern const FFCodec ff_adpcm_ima_apm_decoder; 669 extern const FFCodec ff_adpcm_ima_apm_encoder; 670 extern const FFCodec ff_adpcm_ima_cunning_decoder; 671 extern const FFCodec ff_adpcm_ima_dat4_decoder; 672 extern const FFCodec ff_adpcm_ima_dk3_decoder; 673 extern const FFCodec ff_adpcm_ima_dk4_decoder; 674 extern const FFCodec ff_adpcm_ima_ea_eacs_decoder; 675 extern const FFCodec ff_adpcm_ima_ea_sead_decoder; 676 extern const FFCodec ff_adpcm_ima_iss_decoder; 677 extern const FFCodec ff_adpcm_ima_moflex_decoder; 678 extern const FFCodec ff_adpcm_ima_mtf_decoder; 679 extern const FFCodec ff_adpcm_ima_oki_decoder; 680 extern const FFCodec ff_adpcm_ima_qt_encoder; 681 extern const FFCodec ff_adpcm_ima_qt_decoder; 682 extern const FFCodec ff_adpcm_ima_rad_decoder; 683 extern const FFCodec ff_adpcm_ima_ssi_decoder; 684 extern const FFCodec ff_adpcm_ima_ssi_encoder; 685 extern const FFCodec ff_adpcm_ima_smjpeg_decoder; 686 extern const FFCodec ff_adpcm_ima_wav_encoder; 687 extern const FFCodec ff_adpcm_ima_wav_decoder; 688 extern const FFCodec ff_adpcm_ima_ws_encoder; 689 extern const FFCodec ff_adpcm_ima_ws_decoder; 690 extern const FFCodec ff_adpcm_ima_xbox_decoder; 691 extern const FFCodec ff_adpcm_ms_encoder; 692 extern const FFCodec ff_adpcm_ms_decoder; 693 extern const FFCodec ff_adpcm_mtaf_decoder; 694 extern const FFCodec ff_adpcm_psx_decoder; 695 extern const FFCodec ff_adpcm_sbpro_2_decoder; 696 extern const FFCodec ff_adpcm_sbpro_3_decoder; 697 extern const FFCodec ff_adpcm_sbpro_4_decoder; 698 extern const FFCodec ff_adpcm_swf_encoder; 699 extern const FFCodec ff_adpcm_swf_decoder; 700 extern const FFCodec ff_adpcm_thp_decoder; 701 extern const FFCodec ff_adpcm_thp_le_decoder; 702 extern const FFCodec ff_adpcm_vima_decoder; 703 extern const FFCodec ff_adpcm_xa_decoder; 704 extern const FFCodec ff_adpcm_xmd_decoder; 705 extern const FFCodec ff_adpcm_yamaha_encoder; 706 extern const FFCodec ff_adpcm_yamaha_decoder; 707 extern const FFCodec ff_adpcm_zork_decoder; 708 709 /* subtitles */ 710 extern const FFCodec ff_ssa_encoder; 711 extern const FFCodec ff_ssa_decoder; 712 extern const FFCodec ff_ass_encoder; 713 extern const FFCodec ff_ass_decoder; 714 extern const FFCodec ff_ccaption_decoder; 715 extern const FFCodec ff_dvbsub_encoder; 716 extern const FFCodec ff_dvbsub_decoder; 717 extern const FFCodec ff_dvdsub_encoder; 718 extern const FFCodec ff_dvdsub_decoder; 719 extern const FFCodec ff_jacosub_decoder; 720 extern const FFCodec ff_microdvd_decoder; 721 extern const FFCodec ff_movtext_encoder; 722 extern const FFCodec ff_movtext_decoder; 723 extern const FFCodec ff_mpl2_decoder; 724 extern const FFCodec ff_pgssub_decoder; 725 extern const FFCodec ff_pjs_decoder; 726 extern const FFCodec ff_realtext_decoder; 727 extern const FFCodec ff_sami_decoder; 728 extern const FFCodec ff_srt_encoder; 729 extern const FFCodec ff_srt_decoder; 730 extern const FFCodec ff_stl_decoder; 731 extern const FFCodec ff_subrip_encoder; 732 extern const FFCodec ff_subrip_decoder; 733 extern const FFCodec ff_subviewer_decoder; 734 extern const FFCodec ff_subviewer1_decoder; 735 extern const FFCodec ff_text_encoder; 736 extern const FFCodec ff_text_decoder; 737 extern const FFCodec ff_ttml_encoder; 738 extern const FFCodec ff_vplayer_decoder; 739 extern const FFCodec ff_webvtt_encoder; 740 extern const FFCodec ff_webvtt_decoder; 741 extern const FFCodec ff_xsub_encoder; 742 extern const FFCodec ff_xsub_decoder; 743 744 /* external libraries */ 745 extern const FFCodec ff_aac_at_encoder; 746 extern const FFCodec ff_aac_at_decoder; 747 extern const FFCodec ff_ac3_at_decoder; 748 extern const FFCodec ff_adpcm_ima_qt_at_decoder; 749 extern const FFCodec ff_alac_at_encoder; 750 extern const FFCodec ff_alac_at_decoder; 751 extern const FFCodec ff_amr_nb_at_decoder; 752 extern const FFCodec ff_eac3_at_decoder; 753 extern const FFCodec ff_gsm_ms_at_decoder; 754 extern const FFCodec ff_ilbc_at_encoder; 755 extern const FFCodec ff_ilbc_at_decoder; 756 extern const FFCodec ff_mp1_at_decoder; 757 extern const FFCodec ff_mp2_at_decoder; 758 extern const FFCodec ff_mp3_at_decoder; 759 extern const FFCodec ff_pcm_alaw_at_encoder; 760 extern const FFCodec ff_pcm_alaw_at_decoder; 761 extern const FFCodec ff_pcm_mulaw_at_encoder; 762 extern const FFCodec ff_pcm_mulaw_at_decoder; 763 extern const FFCodec ff_qdmc_at_decoder; 764 extern const FFCodec ff_qdm2_at_decoder; 765 extern FFCodec ff_libaom_av1_encoder; 766 /* preferred over libaribb24 */ 767 extern const FFCodec ff_libaribcaption_decoder; 768 extern const FFCodec ff_libaribb24_decoder; 769 extern const FFCodec ff_libcelt_decoder; 770 extern const FFCodec ff_libcodec2_encoder; 771 extern const FFCodec ff_libcodec2_decoder; 772 extern const FFCodec ff_libdav1d_decoder; 773 extern const FFCodec ff_libdavs2_decoder; 774 extern const FFCodec ff_libfdk_aac_encoder; 775 extern const FFCodec ff_libfdk_aac_decoder; 776 extern const FFCodec ff_libgsm_encoder; 777 extern const FFCodec ff_libgsm_decoder; 778 extern const FFCodec ff_libgsm_ms_encoder; 779 extern const FFCodec ff_libgsm_ms_decoder; 780 extern const FFCodec ff_libilbc_encoder; 781 extern const FFCodec ff_libilbc_decoder; 782 extern const FFCodec ff_libjxl_anim_decoder; 783 extern const FFCodec ff_libjxl_anim_encoder; 784 extern const FFCodec ff_libjxl_decoder; 785 extern const FFCodec ff_libjxl_encoder; 786 extern const FFCodec ff_liblc3_encoder; 787 extern const FFCodec ff_liblc3_decoder; 788 extern const FFCodec ff_libmp3lame_encoder; 789 extern const FFCodec ff_libopencore_amrnb_encoder; 790 extern const FFCodec ff_libopencore_amrnb_decoder; 791 extern const FFCodec ff_libopencore_amrwb_decoder; 792 extern const FFCodec ff_libopenjpeg_encoder; 793 extern const FFCodec ff_libopus_encoder; 794 extern const FFCodec ff_libopus_decoder; 795 extern const FFCodec ff_librav1e_encoder; 796 extern const FFCodec ff_librsvg_decoder; 797 extern const FFCodec ff_libshine_encoder; 798 extern const FFCodec ff_libspeex_encoder; 799 extern const FFCodec ff_libspeex_decoder; 800 extern const FFCodec ff_libsvtav1_encoder; 801 extern const FFCodec ff_libtheora_encoder; 802 extern const FFCodec ff_libtwolame_encoder; 803 extern const FFCodec ff_libuavs3d_decoder; 804 extern const FFCodec ff_libvo_amrwbenc_encoder; 805 extern const FFCodec ff_libvorbis_encoder; 806 extern const FFCodec ff_libvorbis_decoder; 807 extern const FFCodec ff_libvpx_vp8_encoder; 808 extern const FFCodec ff_libvpx_vp8_decoder; 809 extern FFCodec ff_libvpx_vp9_encoder; 810 extern const FFCodec ff_libvpx_vp9_decoder; 811 extern const FFCodec ff_libvvenc_encoder; 812 /* preferred over libwebp */ 813 extern const FFCodec ff_libwebp_anim_encoder; 814 extern const FFCodec ff_libwebp_encoder; 815 extern const FFCodec ff_libx262_encoder; 816 extern const FFCodec ff_libx264_encoder; 817 extern const FFCodec ff_libx264rgb_encoder; 818 extern FFCodec ff_libx265_encoder; 819 extern const FFCodec ff_libxeve_encoder; 820 extern const FFCodec ff_libxevd_decoder; 821 extern const FFCodec ff_libxavs_encoder; 822 extern const FFCodec ff_libxavs2_encoder; 823 extern const FFCodec ff_libxvid_encoder; 824 extern const FFCodec ff_libzvbi_teletext_decoder; 825 826 /* text */ 827 extern const FFCodec ff_bintext_decoder; 828 extern const FFCodec ff_xbin_decoder; 829 extern const FFCodec ff_idf_decoder; 830 831 /* external libraries, that shouldn't be used by default if one of the 832 * above is available */ 833 extern const FFCodec ff_aac_mediacodec_decoder; 834 extern const FFCodec ff_aac_mf_encoder; 835 extern const FFCodec ff_ac3_mf_encoder; 836 extern const FFCodec ff_amrnb_mediacodec_decoder; 837 extern const FFCodec ff_amrwb_mediacodec_decoder; 838 extern const FFCodec ff_h263_v4l2m2m_encoder; 839 extern const FFCodec ff_libaom_av1_decoder; 840 /* hwaccel hooks only, so prefer external decoders */ 841 extern const FFCodec ff_av1_decoder; 842 extern const FFCodec ff_av1_cuvid_decoder; 843 extern const FFCodec ff_av1_mediacodec_decoder; 844 extern const FFCodec ff_av1_mediacodec_encoder; 845 extern const FFCodec ff_av1_nvenc_encoder; 846 extern const FFCodec ff_av1_qsv_decoder; 847 extern const FFCodec ff_av1_qsv_encoder; 848 extern const FFCodec ff_av1_amf_encoder; 849 extern const FFCodec ff_av1_mf_encoder; 850 extern const FFCodec ff_av1_vaapi_encoder; 851 extern const FFCodec ff_libopenh264_encoder; 852 extern const FFCodec ff_libopenh264_decoder; 853 extern const FFCodec ff_h264_amf_encoder; 854 extern const FFCodec ff_h264_cuvid_decoder; 855 extern const FFCodec ff_h264_mf_encoder; 856 extern const FFCodec ff_h264_nvenc_encoder; 857 extern const FFCodec ff_h264_omx_encoder; 858 extern const FFCodec ff_h264_qsv_encoder; 859 extern const FFCodec ff_h264_v4l2m2m_encoder; 860 extern const FFCodec ff_h264_vaapi_encoder; 861 extern const FFCodec ff_h264_videotoolbox_encoder; 862 extern const FFCodec ff_h264_vulkan_encoder; 863 extern const FFCodec ff_hevc_amf_encoder; 864 extern const FFCodec ff_hevc_cuvid_decoder; 865 extern const FFCodec ff_hevc_d3d12va_encoder; 866 extern const FFCodec ff_hevc_mediacodec_decoder; 867 extern const FFCodec ff_hevc_mediacodec_encoder; 868 extern const FFCodec ff_hevc_mf_encoder; 869 extern const FFCodec ff_hevc_nvenc_encoder; 870 extern const FFCodec ff_hevc_qsv_encoder; 871 extern const FFCodec ff_hevc_v4l2m2m_encoder; 872 extern const FFCodec ff_hevc_vaapi_encoder; 873 extern const FFCodec ff_hevc_videotoolbox_encoder; 874 extern const FFCodec ff_hevc_vulkan_encoder; 875 extern const FFCodec ff_libkvazaar_encoder; 876 extern const FFCodec ff_mjpeg_cuvid_decoder; 877 extern const FFCodec ff_mjpeg_qsv_encoder; 878 extern const FFCodec ff_mjpeg_qsv_decoder; 879 extern const FFCodec ff_mjpeg_vaapi_encoder; 880 extern const FFCodec ff_mp3_mediacodec_decoder; 881 extern const FFCodec ff_mp3_mf_encoder; 882 extern const FFCodec ff_mpeg1_cuvid_decoder; 883 extern const FFCodec ff_mpeg2_cuvid_decoder; 884 extern const FFCodec ff_mpeg2_qsv_encoder; 885 extern const FFCodec ff_mpeg2_vaapi_encoder; 886 extern const FFCodec ff_mpeg4_cuvid_decoder; 887 extern const FFCodec ff_mpeg4_mediacodec_decoder; 888 extern const FFCodec ff_mpeg4_mediacodec_encoder; 889 extern const FFCodec ff_mpeg4_omx_encoder; 890 extern const FFCodec ff_mpeg4_v4l2m2m_encoder; 891 extern const FFCodec ff_prores_videotoolbox_encoder; 892 extern const FFCodec ff_vc1_cuvid_decoder; 893 extern const FFCodec ff_vp8_cuvid_decoder; 894 extern const FFCodec ff_vp8_mediacodec_decoder; 895 extern const FFCodec ff_vp8_mediacodec_encoder; 896 extern const FFCodec ff_vp8_qsv_decoder; 897 extern const FFCodec ff_vp8_v4l2m2m_encoder; 898 extern const FFCodec ff_vp8_vaapi_encoder; 899 extern const FFCodec ff_vp9_cuvid_decoder; 900 extern const FFCodec ff_vp9_mediacodec_decoder; 901 extern const FFCodec ff_vp9_mediacodec_encoder; 902 extern const FFCodec ff_vp9_qsv_decoder; 903 extern const FFCodec ff_vp9_vaapi_encoder; 904 extern const FFCodec ff_vp9_qsv_encoder; 905 extern const FFCodec ff_vvc_qsv_decoder; 906 907 // null codecs 908 extern const FFCodec ff_vnull_decoder; 909 extern const FFCodec ff_vnull_encoder; 910 extern const FFCodec ff_anull_decoder; 911 extern const FFCodec ff_anull_encoder; 912 913 // The iterate API is not usable with ossfuzz due to the excessive size of binaries created 914 #if CONFIG_OSSFUZZ 915 const FFCodec * codec_list[] = { 916 NULL, 917 NULL, 918 NULL 919 }; 920 #else 921 #include "libavcodec/codec_list.c" 922 #endif 923 924 static AVOnce av_codec_static_init = AV_ONCE_INIT; 925 static void av_codec_init_static(void) 926 { 927 int dummy; 928 for (int i = 0; codec_list[i]; i++) { 929 /* Backward compatibility with deprecated public fields */ 930 const FFCodec *codec = codec_list[i]; 931 if (!codec->get_supported_config) 932 continue; 933 934 FF_DISABLE_DEPRECATION_WARNINGS 935 switch (codec->p.type) { 936 case AVMEDIA_TYPE_VIDEO: 937 codec->get_supported_config(NULL, &codec->p, 938 AV_CODEC_CONFIG_PIX_FORMAT, 0, 939 (const void **) &codec->p.pix_fmts, 940 &dummy); 941 codec->get_supported_config(NULL, &codec->p, 942 AV_CODEC_CONFIG_FRAME_RATE, 0, 943 (const void **) &codec->p.supported_framerates, 944 &dummy); 945 break; 946 case AVMEDIA_TYPE_AUDIO: 947 codec->get_supported_config(NULL, &codec->p, 948 AV_CODEC_CONFIG_SAMPLE_FORMAT, 0, 949 (const void **) &codec->p.sample_fmts, 950 &dummy); 951 codec->get_supported_config(NULL, &codec->p, 952 AV_CODEC_CONFIG_SAMPLE_RATE, 0, 953 (const void **) &codec->p.supported_samplerates, 954 &dummy); 955 codec->get_supported_config(NULL, &codec->p, 956 AV_CODEC_CONFIG_CHANNEL_LAYOUT, 0, 957 (const void **) &codec->p.ch_layouts, 958 &dummy); 959 break; 960 default: 961 break; 962 } 963 FF_ENABLE_DEPRECATION_WARNINGS 964 } 965 } 966 967 const AVCodec *av_codec_iterate(void **opaque) 968 { 969 uintptr_t i = (uintptr_t)*opaque; 970 const FFCodec *c = codec_list[i]; 971 972 ff_thread_once(&av_codec_static_init, av_codec_init_static); 973 974 if (c) { 975 *opaque = (void*)(i + 1); 976 return &c->p; 977 } 978 return NULL; 979 } 980 981 static enum AVCodecID remap_deprecated_codec_id(enum AVCodecID id) 982 { 983 switch(id){ 984 //This is for future deprecatec codec ids, its empty since 985 //last major bump but will fill up again over time, please don't remove it 986 default : return id; 987 } 988 } 989 990 static const AVCodec *find_codec(enum AVCodecID id, int (*x)(const AVCodec *)) 991 { 992 const AVCodec *p, *experimental = NULL; 993 void *i = 0; 994 995 id = remap_deprecated_codec_id(id); 996 997 while ((p = av_codec_iterate(&i))) { 998 if (!x(p)) 999 continue; 1000 if (p->id == id) { 1001 if (p->capabilities & AV_CODEC_CAP_EXPERIMENTAL && !experimental) { 1002 experimental = p; 1003 } else 1004 return p; 1005 } 1006 } 1007 1008 return experimental; 1009 } 1010 1011 const AVCodec *avcodec_find_encoder(enum AVCodecID id) 1012 { 1013 return find_codec(id, av_codec_is_encoder); 1014 } 1015 1016 const AVCodec *avcodec_find_decoder(enum AVCodecID id) 1017 { 1018 return find_codec(id, av_codec_is_decoder); 1019 } 1020 1021 static const AVCodec *find_codec_by_name(const char *name, int (*x)(const AVCodec *)) 1022 { 1023 void *i = 0; 1024 const AVCodec *p; 1025 1026 if (!name) 1027 return NULL; 1028 1029 while ((p = av_codec_iterate(&i))) { 1030 if (!x(p)) 1031 continue; 1032 if (strcmp(name, p->name) == 0) 1033 return p; 1034 } 1035 1036 return NULL; 1037 } 1038 1039 const AVCodec *avcodec_find_encoder_by_name(const char *name) 1040 { 1041 return find_codec_by_name(name, av_codec_is_encoder); 1042 } 1043 1044 const AVCodec *avcodec_find_decoder_by_name(const char *name) 1045 { 1046 return find_codec_by_name(name, av_codec_is_decoder); 1047 }