/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 | } |