Coverage Report

Created: 2026-03-12 07:14

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