FFmpeg coverage


Directory: ../../../ffmpeg/
File: src/libavcodec/allcodecs.c
Date: 2024-11-20 23:03:26
Exec Total Coverage
Lines: 51 63 81.0%
Functions: 9 9 100.0%
Branches: 21 27 77.8%

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