Coverage Report

Created: 2026-01-25 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libavformat/allformats.c
Line
Count
Source
1
/*
2
 * Register all the formats and protocols
3
 * Copyright (c) 2000, 2001, 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
#include <stdatomic.h>
23
#include <stddef.h>
24
#include <stdint.h>
25
26
#include "libavformat/internal.h"
27
#include "avformat.h"
28
#include "avformat_internal.h"
29
#include "demux.h"
30
#include "mux.h"
31
32
/* (de)muxers */
33
extern const FFOutputFormat ff_a64_muxer;
34
extern const FFInputFormat  ff_aa_demuxer;
35
extern const FFInputFormat  ff_aac_demuxer;
36
extern const FFInputFormat  ff_aax_demuxer;
37
extern const FFInputFormat  ff_ac3_demuxer;
38
extern const FFOutputFormat ff_ac3_muxer;
39
extern const FFInputFormat  ff_ac4_demuxer;
40
extern const FFOutputFormat ff_ac4_muxer;
41
extern const FFInputFormat  ff_ace_demuxer;
42
extern const FFInputFormat  ff_acm_demuxer;
43
extern const FFInputFormat  ff_act_demuxer;
44
extern const FFInputFormat  ff_adf_demuxer;
45
extern const FFInputFormat  ff_adp_demuxer;
46
extern const FFInputFormat  ff_ads_demuxer;
47
extern const FFOutputFormat ff_adts_muxer;
48
extern const FFInputFormat  ff_adx_demuxer;
49
extern const FFOutputFormat ff_adx_muxer;
50
extern const FFInputFormat  ff_aea_demuxer;
51
extern const FFOutputFormat ff_aea_muxer;
52
extern const FFInputFormat  ff_afc_demuxer;
53
extern const FFInputFormat  ff_aiff_demuxer;
54
extern const FFOutputFormat ff_aiff_muxer;
55
extern const FFInputFormat  ff_aix_demuxer;
56
extern const FFInputFormat  ff_alp_demuxer;
57
extern const FFOutputFormat ff_alp_muxer;
58
extern const FFInputFormat  ff_amr_demuxer;
59
extern const FFOutputFormat ff_amr_muxer;
60
extern const FFInputFormat  ff_amrnb_demuxer;
61
extern const FFInputFormat  ff_amrwb_demuxer;
62
extern const FFOutputFormat ff_amv_muxer;
63
extern const FFInputFormat  ff_anm_demuxer;
64
extern const FFInputFormat  ff_apac_demuxer;
65
extern const FFInputFormat  ff_apc_demuxer;
66
extern const FFInputFormat  ff_ape_demuxer;
67
extern const FFInputFormat  ff_apm_demuxer;
68
extern const FFOutputFormat ff_apm_muxer;
69
extern const FFInputFormat  ff_apng_demuxer;
70
extern const FFOutputFormat ff_apng_muxer;
71
extern const FFInputFormat  ff_aptx_demuxer;
72
extern const FFOutputFormat ff_aptx_muxer;
73
extern const FFInputFormat  ff_aptx_hd_demuxer;
74
extern const FFOutputFormat ff_aptx_hd_muxer;
75
extern const FFInputFormat  ff_apv_demuxer;
76
extern const FFOutputFormat ff_apv_muxer;
77
extern const FFInputFormat  ff_aqtitle_demuxer;
78
extern const FFInputFormat  ff_argo_asf_demuxer;
79
extern const FFOutputFormat ff_argo_asf_muxer;
80
extern const FFInputFormat  ff_argo_brp_demuxer;
81
extern const FFInputFormat  ff_argo_cvg_demuxer;
82
extern const FFOutputFormat ff_argo_cvg_muxer;
83
extern const FFInputFormat  ff_asf_demuxer;
84
extern const FFOutputFormat ff_asf_muxer;
85
extern const FFInputFormat  ff_asf_o_demuxer;
86
extern const FFInputFormat  ff_ass_demuxer;
87
extern const FFOutputFormat ff_ass_muxer;
88
extern const FFInputFormat  ff_ast_demuxer;
89
extern const FFOutputFormat ff_ast_muxer;
90
extern const FFOutputFormat ff_asf_stream_muxer;
91
extern const FFInputFormat  ff_au_demuxer;
92
extern const FFOutputFormat ff_au_muxer;
93
extern const FFInputFormat  ff_av1_demuxer;
94
extern const FFInputFormat  ff_avi_demuxer;
95
extern const FFOutputFormat ff_avi_muxer;
96
extern const FFOutputFormat ff_avif_muxer;
97
extern const FFOutputFormat ff_avm2_muxer;
98
extern const FFInputFormat  ff_avr_demuxer;
99
extern const FFInputFormat  ff_avs_demuxer;
100
extern const FFInputFormat  ff_avs2_demuxer;
101
extern const FFOutputFormat ff_avs2_muxer;
102
extern const FFInputFormat  ff_avs3_demuxer;
103
extern const FFOutputFormat ff_avs3_muxer;
104
extern const FFInputFormat  ff_bethsoftvid_demuxer;
105
extern const FFInputFormat  ff_bfi_demuxer;
106
extern const FFInputFormat  ff_bintext_demuxer;
107
extern const FFInputFormat  ff_bink_demuxer;
108
extern const FFInputFormat  ff_binka_demuxer;
109
extern const FFInputFormat  ff_bit_demuxer;
110
extern const FFOutputFormat ff_bit_muxer;
111
extern const FFInputFormat  ff_bitpacked_demuxer;
112
extern const FFInputFormat  ff_bmv_demuxer;
113
extern const FFInputFormat  ff_bfstm_demuxer;
114
extern const FFInputFormat  ff_brstm_demuxer;
115
extern const FFInputFormat  ff_boa_demuxer;
116
extern const FFInputFormat  ff_bonk_demuxer;
117
extern const FFInputFormat  ff_c93_demuxer;
118
extern const FFInputFormat  ff_caf_demuxer;
119
extern const FFOutputFormat ff_caf_muxer;
120
extern const FFInputFormat  ff_cavsvideo_demuxer;
121
extern const FFOutputFormat ff_cavsvideo_muxer;
122
extern const FFInputFormat  ff_cdg_demuxer;
123
extern const FFInputFormat  ff_cdxl_demuxer;
124
extern const FFInputFormat  ff_cine_demuxer;
125
extern const FFInputFormat  ff_codec2_demuxer;
126
extern const FFOutputFormat ff_codec2_muxer;
127
extern const FFInputFormat  ff_codec2raw_demuxer;
128
extern const FFOutputFormat ff_codec2raw_muxer;
129
extern const FFInputFormat  ff_concat_demuxer;
130
extern const FFOutputFormat ff_crc_muxer;
131
extern const FFInputFormat  ff_dash_demuxer;
132
extern const FFOutputFormat ff_dash_muxer;
133
extern const FFInputFormat  ff_data_demuxer;
134
extern const FFOutputFormat ff_data_muxer;
135
extern const FFInputFormat  ff_daud_demuxer;
136
extern const FFOutputFormat ff_daud_muxer;
137
extern const FFInputFormat  ff_dcstr_demuxer;
138
extern const FFInputFormat  ff_derf_demuxer;
139
extern const FFInputFormat  ff_dfa_demuxer;
140
extern const FFInputFormat  ff_dfpwm_demuxer;
141
extern const FFOutputFormat ff_dfpwm_muxer;
142
extern const FFInputFormat  ff_dhav_demuxer;
143
extern const FFInputFormat  ff_dirac_demuxer;
144
extern const FFOutputFormat ff_dirac_muxer;
145
extern const FFInputFormat  ff_dnxhd_demuxer;
146
extern const FFOutputFormat ff_dnxhd_muxer;
147
extern const FFInputFormat  ff_dsf_demuxer;
148
extern const FFInputFormat  ff_dsicin_demuxer;
149
extern const FFInputFormat  ff_dss_demuxer;
150
extern const FFInputFormat  ff_dts_demuxer;
151
extern const FFOutputFormat ff_dts_muxer;
152
extern const FFInputFormat  ff_dtshd_demuxer;
153
extern const FFInputFormat  ff_dv_demuxer;
154
extern const FFOutputFormat ff_dv_muxer;
155
extern const FFInputFormat  ff_dvbsub_demuxer;
156
extern const FFInputFormat  ff_dvbtxt_demuxer;
157
extern const FFInputFormat  ff_dxa_demuxer;
158
extern const FFInputFormat  ff_ea_demuxer;
159
extern const FFInputFormat  ff_ea_cdata_demuxer;
160
extern const FFInputFormat  ff_eac3_demuxer;
161
extern const FFOutputFormat ff_eac3_muxer;
162
extern const FFInputFormat  ff_epaf_demuxer;
163
extern const FFInputFormat  ff_evc_demuxer;
164
extern const FFOutputFormat ff_evc_muxer;
165
extern const FFOutputFormat ff_f4v_muxer;
166
extern const FFInputFormat  ff_ffmetadata_demuxer;
167
extern const FFOutputFormat ff_ffmetadata_muxer;
168
extern const FFOutputFormat ff_fifo_muxer;
169
extern const FFInputFormat  ff_filmstrip_demuxer;
170
extern const FFOutputFormat ff_filmstrip_muxer;
171
extern const FFInputFormat  ff_fits_demuxer;
172
extern const FFOutputFormat ff_fits_muxer;
173
extern const FFInputFormat  ff_flac_demuxer;
174
extern const FFOutputFormat ff_flac_muxer;
175
extern const FFInputFormat  ff_flic_demuxer;
176
extern const FFInputFormat  ff_flv_demuxer;
177
extern const FFOutputFormat ff_flv_muxer;
178
extern const FFInputFormat  ff_live_flv_demuxer;
179
extern const FFInputFormat  ff_fourxm_demuxer;
180
extern const FFOutputFormat ff_framecrc_muxer;
181
extern const FFOutputFormat ff_framehash_muxer;
182
extern const FFOutputFormat ff_framemd5_muxer;
183
extern const FFInputFormat  ff_frm_demuxer;
184
extern const FFInputFormat  ff_fsb_demuxer;
185
extern const FFInputFormat  ff_fwse_demuxer;
186
extern const FFInputFormat  ff_g722_demuxer;
187
extern const FFOutputFormat ff_g722_muxer;
188
extern const FFInputFormat  ff_g723_1_demuxer;
189
extern const FFOutputFormat ff_g723_1_muxer;
190
extern const FFInputFormat  ff_g726_demuxer;
191
extern const FFOutputFormat ff_g726_muxer;
192
extern const FFInputFormat  ff_g726le_demuxer;
193
extern const FFOutputFormat ff_g726le_muxer;
194
extern const FFInputFormat  ff_g728_demuxer;
195
extern const FFInputFormat  ff_g729_demuxer;
196
extern const FFInputFormat  ff_gdv_demuxer;
197
extern const FFInputFormat  ff_genh_demuxer;
198
extern const FFInputFormat  ff_gif_demuxer;
199
extern const FFOutputFormat ff_gif_muxer;
200
extern const FFInputFormat  ff_gsm_demuxer;
201
extern const FFOutputFormat ff_gsm_muxer;
202
extern const FFInputFormat  ff_gxf_demuxer;
203
extern const FFOutputFormat ff_gxf_muxer;
204
extern const FFInputFormat  ff_h261_demuxer;
205
extern const FFOutputFormat ff_h261_muxer;
206
extern const FFInputFormat  ff_h263_demuxer;
207
extern const FFOutputFormat ff_h263_muxer;
208
extern const FFInputFormat  ff_h264_demuxer;
209
extern const FFOutputFormat ff_h264_muxer;
210
extern const FFOutputFormat ff_hash_muxer;
211
extern const FFInputFormat  ff_hca_demuxer;
212
extern const FFInputFormat  ff_hcom_demuxer;
213
extern const FFOutputFormat ff_hds_muxer;
214
extern const FFInputFormat  ff_hevc_demuxer;
215
extern const FFOutputFormat ff_hevc_muxer;
216
extern const FFInputFormat  ff_hls_demuxer;
217
extern const FFOutputFormat ff_hls_muxer;
218
extern const FFInputFormat  ff_hnm_demuxer;
219
extern const FFInputFormat  ff_hxvs_demuxer;
220
extern const FFInputFormat  ff_iamf_demuxer;
221
extern const FFOutputFormat ff_iamf_muxer;
222
extern const FFInputFormat  ff_ico_demuxer;
223
extern const FFOutputFormat ff_ico_muxer;
224
extern const FFInputFormat  ff_idcin_demuxer;
225
extern const FFInputFormat  ff_idf_demuxer;
226
extern const FFInputFormat  ff_iff_demuxer;
227
extern const FFInputFormat  ff_ifv_demuxer;
228
extern const FFInputFormat  ff_ilbc_demuxer;
229
extern const FFOutputFormat ff_ilbc_muxer;
230
extern const FFInputFormat  ff_image2_demuxer;
231
extern const FFOutputFormat ff_image2_muxer;
232
extern const FFInputFormat  ff_image2pipe_demuxer;
233
extern const FFOutputFormat ff_image2pipe_muxer;
234
extern const FFInputFormat  ff_image2_alias_pix_demuxer;
235
extern const FFInputFormat  ff_image2_brender_pix_demuxer;
236
extern const FFInputFormat  ff_imf_demuxer;
237
extern const FFInputFormat  ff_ingenient_demuxer;
238
extern const FFInputFormat  ff_ipmovie_demuxer;
239
extern const FFOutputFormat ff_ipod_muxer;
240
extern const FFInputFormat  ff_ipu_demuxer;
241
extern const FFInputFormat  ff_ircam_demuxer;
242
extern const FFOutputFormat ff_ircam_muxer;
243
extern const FFOutputFormat ff_ismv_muxer;
244
extern const FFInputFormat  ff_iss_demuxer;
245
extern const FFInputFormat  ff_iv8_demuxer;
246
extern const FFInputFormat  ff_ivf_demuxer;
247
extern const FFOutputFormat ff_ivf_muxer;
248
extern const FFInputFormat  ff_ivr_demuxer;
249
extern const FFInputFormat  ff_jacosub_demuxer;
250
extern const FFOutputFormat ff_jacosub_muxer;
251
extern const FFInputFormat  ff_jv_demuxer;
252
extern const FFInputFormat  ff_jpegxl_anim_demuxer;
253
extern const FFInputFormat  ff_kux_demuxer;
254
extern const FFInputFormat  ff_kvag_demuxer;
255
extern const FFOutputFormat ff_kvag_muxer;
256
extern const FFInputFormat  ff_laf_demuxer;
257
extern const FFOutputFormat ff_latm_muxer;
258
extern const FFInputFormat  ff_lc3_demuxer;
259
extern const FFOutputFormat ff_lc3_muxer;
260
extern const FFInputFormat  ff_lmlm4_demuxer;
261
extern const FFInputFormat  ff_loas_demuxer;
262
extern const FFInputFormat  ff_luodat_demuxer;
263
extern const FFInputFormat  ff_lrc_demuxer;
264
extern const FFOutputFormat ff_lrc_muxer;
265
extern const FFInputFormat  ff_lvf_demuxer;
266
extern const FFInputFormat  ff_lxf_demuxer;
267
extern const FFInputFormat  ff_m4v_demuxer;
268
extern const FFOutputFormat ff_m4v_muxer;
269
extern const FFInputFormat  ff_mca_demuxer;
270
extern const FFInputFormat  ff_mcc_demuxer;
271
extern const FFOutputFormat ff_mcc_muxer;
272
extern const FFOutputFormat ff_md5_muxer;
273
extern const FFInputFormat  ff_matroska_demuxer;
274
extern const FFOutputFormat ff_matroska_muxer;
275
extern const FFOutputFormat ff_matroska_audio_muxer;
276
extern const FFInputFormat  ff_mgsts_demuxer;
277
extern const FFInputFormat  ff_microdvd_demuxer;
278
extern const FFOutputFormat ff_microdvd_muxer;
279
extern const FFInputFormat  ff_mjpeg_demuxer;
280
extern const FFOutputFormat ff_mjpeg_muxer;
281
extern const FFInputFormat  ff_mjpeg_2000_demuxer;
282
extern const FFInputFormat  ff_mlp_demuxer;
283
extern const FFOutputFormat ff_mlp_muxer;
284
extern const FFInputFormat  ff_mlv_demuxer;
285
extern const FFInputFormat  ff_mm_demuxer;
286
extern const FFInputFormat  ff_mmf_demuxer;
287
extern const FFOutputFormat ff_mmf_muxer;
288
extern const FFInputFormat  ff_mods_demuxer;
289
extern const FFInputFormat  ff_moflex_demuxer;
290
extern const FFInputFormat  ff_mov_demuxer;
291
extern const FFOutputFormat ff_mov_muxer;
292
extern const FFOutputFormat ff_mp2_muxer;
293
extern const FFInputFormat  ff_mp3_demuxer;
294
extern const FFOutputFormat ff_mp3_muxer;
295
extern const FFOutputFormat ff_mp4_muxer;
296
extern const FFInputFormat  ff_mpc_demuxer;
297
extern const FFInputFormat  ff_mpc8_demuxer;
298
extern const FFOutputFormat ff_mpeg1system_muxer;
299
extern const FFOutputFormat ff_mpeg1vcd_muxer;
300
extern const FFOutputFormat ff_mpeg1video_muxer;
301
extern const FFOutputFormat ff_mpeg2dvd_muxer;
302
extern const FFOutputFormat ff_mpeg2svcd_muxer;
303
extern const FFOutputFormat ff_mpeg2video_muxer;
304
extern const FFOutputFormat ff_mpeg2vob_muxer;
305
extern const FFInputFormat  ff_mpegps_demuxer;
306
extern const FFInputFormat  ff_mpegts_demuxer;
307
extern const FFOutputFormat ff_mpegts_muxer;
308
extern const FFInputFormat  ff_mpegtsraw_demuxer;
309
extern const FFInputFormat  ff_mpegvideo_demuxer;
310
extern const FFInputFormat  ff_mpjpeg_demuxer;
311
extern const FFOutputFormat ff_mpjpeg_muxer;
312
extern const FFInputFormat  ff_mpl2_demuxer;
313
extern const FFInputFormat  ff_mpsub_demuxer;
314
extern const FFInputFormat  ff_msf_demuxer;
315
extern const FFInputFormat  ff_msnwc_tcp_demuxer;
316
extern const FFInputFormat  ff_msp_demuxer;
317
extern const FFInputFormat  ff_mtaf_demuxer;
318
extern const FFInputFormat  ff_mtv_demuxer;
319
extern const FFInputFormat  ff_musx_demuxer;
320
extern const FFInputFormat  ff_mv_demuxer;
321
extern const FFInputFormat  ff_mvi_demuxer;
322
extern const FFInputFormat  ff_mxf_demuxer;
323
extern const FFOutputFormat ff_mxf_muxer;
324
extern const FFOutputFormat ff_mxf_d10_muxer;
325
extern const FFOutputFormat ff_mxf_opatom_muxer;
326
extern const FFInputFormat  ff_mxg_demuxer;
327
extern const FFInputFormat  ff_nc_demuxer;
328
extern const FFInputFormat  ff_nistsphere_demuxer;
329
extern const FFInputFormat  ff_nsp_demuxer;
330
extern const FFInputFormat  ff_nsv_demuxer;
331
extern const FFOutputFormat ff_null_muxer;
332
extern const FFInputFormat  ff_nut_demuxer;
333
extern const FFOutputFormat ff_nut_muxer;
334
extern const FFInputFormat  ff_nuv_demuxer;
335
extern const FFInputFormat  ff_obu_demuxer;
336
extern const FFOutputFormat ff_obu_muxer;
337
extern const FFOutputFormat ff_oga_muxer;
338
extern const FFInputFormat  ff_ogg_demuxer;
339
extern const FFOutputFormat ff_ogg_muxer;
340
extern const FFOutputFormat ff_ogv_muxer;
341
extern const FFInputFormat  ff_oma_demuxer;
342
extern const FFOutputFormat ff_oma_muxer;
343
extern const FFOutputFormat ff_opus_muxer;
344
extern const FFInputFormat  ff_osq_demuxer;
345
extern const FFInputFormat  ff_paf_demuxer;
346
extern const FFInputFormat  ff_pcm_alaw_demuxer;
347
extern const FFOutputFormat ff_pcm_alaw_muxer;
348
extern const FFInputFormat  ff_pcm_mulaw_demuxer;
349
extern const FFOutputFormat ff_pcm_mulaw_muxer;
350
extern const FFInputFormat  ff_pcm_vidc_demuxer;
351
extern const FFOutputFormat ff_pcm_vidc_muxer;
352
extern const FFInputFormat  ff_pcm_f64be_demuxer;
353
extern const FFOutputFormat ff_pcm_f64be_muxer;
354
extern const FFInputFormat  ff_pcm_f64le_demuxer;
355
extern const FFOutputFormat ff_pcm_f64le_muxer;
356
extern const FFInputFormat  ff_pcm_f32be_demuxer;
357
extern const FFOutputFormat ff_pcm_f32be_muxer;
358
extern const FFInputFormat  ff_pcm_f32le_demuxer;
359
extern const FFOutputFormat ff_pcm_f32le_muxer;
360
extern const FFInputFormat  ff_pcm_s32be_demuxer;
361
extern const FFOutputFormat ff_pcm_s32be_muxer;
362
extern const FFInputFormat  ff_pcm_s32le_demuxer;
363
extern const FFOutputFormat ff_pcm_s32le_muxer;
364
extern const FFInputFormat  ff_pcm_s24be_demuxer;
365
extern const FFOutputFormat ff_pcm_s24be_muxer;
366
extern const FFInputFormat  ff_pcm_s24le_demuxer;
367
extern const FFOutputFormat ff_pcm_s24le_muxer;
368
extern const FFInputFormat  ff_pcm_s16be_demuxer;
369
extern const FFOutputFormat ff_pcm_s16be_muxer;
370
extern const FFInputFormat  ff_pcm_s16le_demuxer;
371
extern const FFOutputFormat ff_pcm_s16le_muxer;
372
extern const FFInputFormat  ff_pcm_s8_demuxer;
373
extern const FFOutputFormat ff_pcm_s8_muxer;
374
extern const FFInputFormat  ff_pcm_u32be_demuxer;
375
extern const FFOutputFormat ff_pcm_u32be_muxer;
376
extern const FFInputFormat  ff_pcm_u32le_demuxer;
377
extern const FFOutputFormat ff_pcm_u32le_muxer;
378
extern const FFInputFormat  ff_pcm_u24be_demuxer;
379
extern const FFOutputFormat ff_pcm_u24be_muxer;
380
extern const FFInputFormat  ff_pcm_u24le_demuxer;
381
extern const FFOutputFormat ff_pcm_u24le_muxer;
382
extern const FFInputFormat  ff_pcm_u16be_demuxer;
383
extern const FFOutputFormat ff_pcm_u16be_muxer;
384
extern const FFInputFormat  ff_pcm_u16le_demuxer;
385
extern const FFOutputFormat ff_pcm_u16le_muxer;
386
extern const FFInputFormat  ff_pcm_u8_demuxer;
387
extern const FFOutputFormat ff_pcm_u8_muxer;
388
extern const FFInputFormat  ff_pdv_demuxer;
389
extern const FFInputFormat  ff_pjs_demuxer;
390
extern const FFInputFormat  ff_pmp_demuxer;
391
extern const FFInputFormat  ff_pp_bnk_demuxer;
392
extern const FFOutputFormat ff_psp_muxer;
393
extern const FFInputFormat  ff_pva_demuxer;
394
extern const FFInputFormat  ff_pvf_demuxer;
395
extern const FFInputFormat  ff_qcp_demuxer;
396
extern const FFInputFormat  ff_qoa_demuxer;
397
extern const FFInputFormat  ff_r3d_demuxer;
398
extern const FFInputFormat  ff_rawvideo_demuxer;
399
extern const FFOutputFormat ff_rawvideo_muxer;
400
extern const FFInputFormat  ff_rcwt_demuxer;
401
extern const FFOutputFormat ff_rcwt_muxer;
402
extern const FFInputFormat  ff_realtext_demuxer;
403
extern const FFInputFormat  ff_redspark_demuxer;
404
extern const FFInputFormat  ff_rka_demuxer;
405
extern const FFInputFormat  ff_rl2_demuxer;
406
extern const FFInputFormat  ff_rm_demuxer;
407
extern const FFOutputFormat ff_rm_muxer;
408
extern const FFInputFormat  ff_roq_demuxer;
409
extern const FFOutputFormat ff_roq_muxer;
410
extern const FFInputFormat  ff_rpl_demuxer;
411
extern const FFInputFormat  ff_rsd_demuxer;
412
extern const FFInputFormat  ff_rso_demuxer;
413
extern const FFOutputFormat ff_rso_muxer;
414
extern const FFInputFormat  ff_rtp_demuxer;
415
extern const FFOutputFormat ff_rtp_muxer;
416
extern const FFOutputFormat ff_rtp_mpegts_muxer;
417
extern const FFInputFormat  ff_rtsp_demuxer;
418
extern const FFOutputFormat ff_rtsp_muxer;
419
extern const FFInputFormat  ff_s337m_demuxer;
420
extern const FFInputFormat  ff_sami_demuxer;
421
extern const FFInputFormat  ff_sap_demuxer;
422
extern const FFOutputFormat ff_sap_muxer;
423
extern const FFInputFormat  ff_sbc_demuxer;
424
extern const FFOutputFormat ff_sbc_muxer;
425
extern const FFInputFormat  ff_sbg_demuxer;
426
extern const FFInputFormat  ff_scc_demuxer;
427
extern const FFOutputFormat ff_scc_muxer;
428
extern const FFInputFormat  ff_scd_demuxer;
429
extern const FFInputFormat  ff_sdns_demuxer;
430
extern const FFInputFormat  ff_sdp_demuxer;
431
extern const FFInputFormat  ff_sdr2_demuxer;
432
extern const FFInputFormat  ff_sds_demuxer;
433
extern const FFInputFormat  ff_sdx_demuxer;
434
extern const FFInputFormat  ff_segafilm_demuxer;
435
extern const FFOutputFormat ff_segafilm_muxer;
436
extern const FFOutputFormat ff_segment_muxer;
437
extern const FFOutputFormat ff_stream_segment_muxer;
438
extern const FFInputFormat  ff_ser_demuxer;
439
extern const FFInputFormat  ff_sga_demuxer;
440
extern const FFInputFormat  ff_shorten_demuxer;
441
extern const FFInputFormat  ff_siff_demuxer;
442
extern const FFInputFormat  ff_simbiosis_imx_demuxer;
443
extern const FFInputFormat  ff_sln_demuxer;
444
extern const FFInputFormat  ff_smacker_demuxer;
445
extern const FFInputFormat  ff_smjpeg_demuxer;
446
extern const FFOutputFormat ff_smjpeg_muxer;
447
extern const FFOutputFormat ff_smoothstreaming_muxer;
448
extern const FFInputFormat  ff_smush_demuxer;
449
extern const FFInputFormat  ff_sol_demuxer;
450
extern const FFInputFormat  ff_sox_demuxer;
451
extern const FFOutputFormat ff_sox_muxer;
452
extern const FFOutputFormat ff_spx_muxer;
453
extern const FFInputFormat  ff_spdif_demuxer;
454
extern const FFOutputFormat ff_spdif_muxer;
455
extern const FFInputFormat  ff_srt_demuxer;
456
extern const FFOutputFormat ff_srt_muxer;
457
extern const FFInputFormat  ff_str_demuxer;
458
extern const FFInputFormat  ff_stl_demuxer;
459
extern const FFOutputFormat ff_streamhash_muxer;
460
extern const FFInputFormat  ff_subviewer1_demuxer;
461
extern const FFInputFormat  ff_subviewer_demuxer;
462
extern const FFInputFormat  ff_sup_demuxer;
463
extern const FFOutputFormat ff_sup_muxer;
464
extern const FFInputFormat  ff_svag_demuxer;
465
extern const FFInputFormat  ff_svs_demuxer;
466
extern const FFInputFormat  ff_swf_demuxer;
467
extern const FFOutputFormat ff_swf_muxer;
468
extern const FFInputFormat  ff_tak_demuxer;
469
extern const FFOutputFormat ff_tee_muxer;
470
extern const FFInputFormat  ff_tedcaptions_demuxer;
471
extern const FFOutputFormat ff_tg2_muxer;
472
extern const FFOutputFormat ff_tgp_muxer;
473
extern const FFInputFormat  ff_thp_demuxer;
474
extern const FFInputFormat  ff_threedostr_demuxer;
475
extern const FFInputFormat  ff_tiertexseq_demuxer;
476
extern const FFOutputFormat ff_mkvtimestamp_v2_muxer;
477
extern const FFInputFormat  ff_tmv_demuxer;
478
extern const FFInputFormat  ff_truehd_demuxer;
479
extern const FFOutputFormat ff_truehd_muxer;
480
extern const FFInputFormat  ff_tta_demuxer;
481
extern const FFOutputFormat ff_tta_muxer;
482
extern const FFOutputFormat ff_ttml_muxer;
483
extern const FFInputFormat  ff_txd_demuxer;
484
extern const FFInputFormat  ff_tty_demuxer;
485
extern const FFInputFormat  ff_ty_demuxer;
486
extern const FFOutputFormat ff_uncodedframecrc_muxer;
487
extern const FFInputFormat  ff_usm_demuxer;
488
extern const FFInputFormat  ff_v210_demuxer;
489
extern const FFInputFormat  ff_v210x_demuxer;
490
extern const FFInputFormat  ff_vag_demuxer;
491
extern const FFInputFormat  ff_vc1_demuxer;
492
extern const FFOutputFormat ff_vc1_muxer;
493
extern const FFInputFormat  ff_vc1t_demuxer;
494
extern const FFOutputFormat ff_vc1t_muxer;
495
extern const FFInputFormat  ff_vividas_demuxer;
496
extern const FFInputFormat  ff_vivo_demuxer;
497
extern const FFInputFormat  ff_vmd_demuxer;
498
extern const FFInputFormat  ff_vobsub_demuxer;
499
extern const FFInputFormat  ff_voc_demuxer;
500
extern const FFOutputFormat ff_voc_muxer;
501
extern const FFInputFormat  ff_vpk_demuxer;
502
extern const FFInputFormat  ff_vplayer_demuxer;
503
extern const FFInputFormat  ff_vqf_demuxer;
504
extern const FFInputFormat  ff_vvc_demuxer;
505
extern const FFOutputFormat ff_vvc_muxer;
506
extern const FFInputFormat  ff_w64_demuxer;
507
extern const FFOutputFormat ff_w64_muxer;
508
extern const FFInputFormat  ff_wady_demuxer;
509
extern const FFInputFormat  ff_wavarc_demuxer;
510
extern const FFInputFormat  ff_wav_demuxer;
511
extern const FFOutputFormat ff_wav_muxer;
512
extern const FFInputFormat  ff_wc3_demuxer;
513
extern const FFOutputFormat ff_webm_muxer;
514
extern const FFInputFormat  ff_webm_dash_manifest_demuxer;
515
extern const FFOutputFormat ff_webm_dash_manifest_muxer;
516
extern const FFOutputFormat ff_webm_chunk_muxer;
517
extern const FFOutputFormat ff_webp_muxer;
518
extern const FFInputFormat  ff_webvtt_demuxer;
519
extern const FFOutputFormat ff_webvtt_muxer;
520
extern const FFInputFormat  ff_wsaud_demuxer;
521
extern const FFOutputFormat ff_whip_muxer;
522
extern const FFOutputFormat ff_wsaud_muxer;
523
extern const FFInputFormat  ff_wsd_demuxer;
524
extern const FFInputFormat  ff_wsvqa_demuxer;
525
extern const FFInputFormat  ff_wtv_demuxer;
526
extern const FFOutputFormat ff_wtv_muxer;
527
extern const FFInputFormat  ff_wve_demuxer;
528
extern const FFInputFormat  ff_wv_demuxer;
529
extern const FFOutputFormat ff_wv_muxer;
530
extern const FFInputFormat  ff_xa_demuxer;
531
extern const FFInputFormat  ff_xbin_demuxer;
532
extern const FFInputFormat  ff_xmd_demuxer;
533
extern const FFInputFormat  ff_xmv_demuxer;
534
extern const FFInputFormat  ff_xvag_demuxer;
535
extern const FFInputFormat  ff_xwma_demuxer;
536
extern const FFInputFormat  ff_yop_demuxer;
537
extern const FFInputFormat  ff_yuv4mpegpipe_demuxer;
538
extern const FFOutputFormat ff_yuv4mpegpipe_muxer;
539
/* image demuxers */
540
extern const FFInputFormat  ff_image_bmp_pipe_demuxer;
541
extern const FFInputFormat  ff_image_cri_pipe_demuxer;
542
extern const FFInputFormat  ff_image_dds_pipe_demuxer;
543
extern const FFInputFormat  ff_image_dpx_pipe_demuxer;
544
extern const FFInputFormat  ff_image_exr_pipe_demuxer;
545
extern const FFInputFormat  ff_image_gem_pipe_demuxer;
546
extern const FFInputFormat  ff_image_gif_pipe_demuxer;
547
extern const FFInputFormat  ff_image_hdr_pipe_demuxer;
548
extern const FFInputFormat  ff_image_j2k_pipe_demuxer;
549
extern const FFInputFormat  ff_image_jpeg_pipe_demuxer;
550
extern const FFInputFormat  ff_image_jpegls_pipe_demuxer;
551
extern const FFInputFormat  ff_image_jpegxl_pipe_demuxer;
552
extern const FFInputFormat  ff_image_jpegxs_pipe_demuxer;
553
extern const FFInputFormat  ff_image_pam_pipe_demuxer;
554
extern const FFInputFormat  ff_image_pbm_pipe_demuxer;
555
extern const FFInputFormat  ff_image_pcx_pipe_demuxer;
556
extern const FFInputFormat  ff_image_pfm_pipe_demuxer;
557
extern const FFInputFormat  ff_image_pgmyuv_pipe_demuxer;
558
extern const FFInputFormat  ff_image_pgm_pipe_demuxer;
559
extern const FFInputFormat  ff_image_pgx_pipe_demuxer;
560
extern const FFInputFormat  ff_image_phm_pipe_demuxer;
561
extern const FFInputFormat  ff_image_photocd_pipe_demuxer;
562
extern const FFInputFormat  ff_image_pictor_pipe_demuxer;
563
extern const FFInputFormat  ff_image_png_pipe_demuxer;
564
extern const FFInputFormat  ff_image_ppm_pipe_demuxer;
565
extern const FFInputFormat  ff_image_psd_pipe_demuxer;
566
extern const FFInputFormat  ff_image_qdraw_pipe_demuxer;
567
extern const FFInputFormat  ff_image_qoi_pipe_demuxer;
568
extern const FFInputFormat  ff_image_sgi_pipe_demuxer;
569
extern const FFInputFormat  ff_image_svg_pipe_demuxer;
570
extern const FFInputFormat  ff_image_sunrast_pipe_demuxer;
571
extern const FFInputFormat  ff_image_tiff_pipe_demuxer;
572
extern const FFInputFormat  ff_image_vbn_pipe_demuxer;
573
extern const FFInputFormat  ff_image_webp_pipe_demuxer;
574
extern const FFInputFormat  ff_image_xbm_pipe_demuxer;
575
extern const FFInputFormat  ff_image_xpm_pipe_demuxer;
576
extern const FFInputFormat  ff_image_xwd_pipe_demuxer;
577
578
/* external libraries */
579
extern const FFInputFormat  ff_avisynth_demuxer;
580
extern const FFOutputFormat ff_chromaprint_muxer;
581
extern const FFInputFormat  ff_dvdvideo_demuxer;
582
extern const FFInputFormat  ff_libgme_demuxer;
583
extern const FFInputFormat  ff_libmodplug_demuxer;
584
extern const FFInputFormat  ff_libopenmpt_demuxer;
585
extern const FFInputFormat  ff_vapoursynth_demuxer;
586
587
#include "libavformat/muxer_list.c"
588
#include "libavformat/demuxer_list.c"
589
590
static atomic_uintptr_t indev_list_intptr  = 0;
591
static atomic_uintptr_t outdev_list_intptr = 0;
592
593
const AVOutputFormat *av_muxer_iterate(void **opaque)
594
0
{
595
0
    static const uintptr_t size = sizeof(muxer_list)/sizeof(muxer_list[0]) - 1;
596
0
    uintptr_t i = (uintptr_t)*opaque;
597
0
    const FFOutputFormat *f = NULL;
598
0
    uintptr_t tmp;
599
600
0
    if (i < size) {
601
0
        f = muxer_list[i];
602
0
    } else if (tmp = atomic_load_explicit(&outdev_list_intptr, memory_order_relaxed)) {
603
0
        const FFOutputFormat *const *outdev_list = (const FFOutputFormat *const *)tmp;
604
0
        f = outdev_list[i - size];
605
0
    }
606
607
0
    if (f) {
608
0
        *opaque = (void*)(i + 1);
609
0
        return &f->p;
610
0
    }
611
0
    return NULL;
612
0
}
613
614
const AVInputFormat *av_demuxer_iterate(void **opaque)
615
1.36k
{
616
1.36k
    static const uintptr_t size = sizeof(demuxer_list)/sizeof(demuxer_list[0]) - 1;
617
1.36k
    uintptr_t i = (uintptr_t)*opaque;
618
1.36k
    const FFInputFormat *f = NULL;
619
1.36k
    uintptr_t tmp;
620
621
1.36k
    if (i < size) {
622
0
        f = demuxer_list[i];
623
1.36k
    } else if (tmp = atomic_load_explicit(&indev_list_intptr, memory_order_relaxed)) {
624
0
        const FFInputFormat *const *indev_list = (const FFInputFormat *const *)tmp;
625
0
        f = indev_list[i - size];
626
0
    }
627
628
1.36k
    if (f) {
629
0
        *opaque = (void*)(i + 1);
630
0
        return &f->p;
631
0
    }
632
1.36k
    return NULL;
633
1.36k
}
634
635
void avpriv_register_devices(const FFOutputFormat * const o[], const FFInputFormat * const i[])
636
0
{
637
0
    atomic_store_explicit(&outdev_list_intptr, (uintptr_t)o, memory_order_relaxed);
638
    atomic_store_explicit(&indev_list_intptr,  (uintptr_t)i, memory_order_relaxed);
639
0
}