FFmpeg  4.4.6
allformats.c
Go to the documentation of this file.
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 "libavutil/thread.h"
23 #include "libavformat/internal.h"
24 #include "avformat.h"
25 #include "rtp.h"
26 #include "rdt.h"
27 #include "url.h"
28 #include "version.h"
29 
30 /* (de)muxers */
497 /* image demuxers */
527 
528 /* external libraries */
534 
535 #include "libavformat/muxer_list.c"
537 
538 static const AVInputFormat * const *indev_list = NULL;
539 static const AVOutputFormat * const *outdev_list = NULL;
540 
541 const AVOutputFormat *av_muxer_iterate(void **opaque)
542 {
543  static const uintptr_t size = sizeof(muxer_list)/sizeof(muxer_list[0]) - 1;
544  uintptr_t i = (uintptr_t)*opaque;
545  const AVOutputFormat *f = NULL;
546 
547  if (i < size) {
548  f = muxer_list[i];
549  } else if (outdev_list) {
550  f = outdev_list[i - size];
551  }
552 
553  if (f)
554  *opaque = (void*)(i + 1);
555  return f;
556 }
557 
558 const AVInputFormat *av_demuxer_iterate(void **opaque)
559 {
560  static const uintptr_t size = sizeof(demuxer_list)/sizeof(demuxer_list[0]) - 1;
561  uintptr_t i = (uintptr_t)*opaque;
562  const AVInputFormat *f = NULL;
563 
564  if (i < size) {
565  f = demuxer_list[i];
566  } else if (indev_list) {
567  f = indev_list[i - size];
568  }
569 
570  if (f)
571  *opaque = (void*)(i + 1);
572  return f;
573 }
574 
576 
577 #if FF_API_NEXT
579 static AVOnce av_format_next_init = AV_ONCE_INIT;
580 
581 static void av_format_init_next(void)
582 {
583  AVOutputFormat *prevout = NULL, *out;
584  AVInputFormat *previn = NULL, *in;
585 
587 
588  for (int i = 0; (out = (AVOutputFormat*)muxer_list[i]); i++) {
589  if (prevout)
590  prevout->next = out;
591  prevout = out;
592  }
593 
594  if (outdev_list) {
595  for (int i = 0; (out = (AVOutputFormat*)outdev_list[i]); i++) {
596  if (prevout)
597  prevout->next = out;
598  prevout = out;
599  }
600  }
601 
602  for (int i = 0; (in = (AVInputFormat*)demuxer_list[i]); i++) {
603  if (previn)
604  previn->next = in;
605  previn = in;
606  }
607 
608  if (indev_list) {
609  for (int i = 0; (in = (AVInputFormat*)indev_list[i]); i++) {
610  if (previn)
611  previn->next = in;
612  previn = in;
613  }
614  }
615 
617 }
618 
619 AVInputFormat *av_iformat_next(const AVInputFormat *f)
620 {
621  ff_thread_once(&av_format_next_init, av_format_init_next);
622 
623  if (f)
624 #if FF_API_AVIOFORMAT
625  return f->next;
626 #else
627  return (AVInputFormat *) f->next;
628 #endif
629  else {
630  void *opaque = NULL;
631  return (AVInputFormat *)av_demuxer_iterate(&opaque);
632  }
633 }
634 
635 AVOutputFormat *av_oformat_next(const AVOutputFormat *f)
636 {
637  ff_thread_once(&av_format_next_init, av_format_init_next);
638 
639  if (f)
640 #if FF_API_AVIOFORMAT
641  return f->next;
642 #else
643  return (AVOutputFormat *) f->next;
644 #endif
645  else {
646  void *opaque = NULL;
647  return (AVOutputFormat *)av_muxer_iterate(&opaque);
648  }
649 }
650 
651 void av_register_all(void)
652 {
653  ff_thread_once(&av_format_next_init, av_format_init_next);
654 }
655 
656 void av_register_input_format(AVInputFormat *format)
657 {
658  ff_thread_once(&av_format_next_init, av_format_init_next);
659 }
660 
661 void av_register_output_format(AVOutputFormat *format)
662 {
663  ff_thread_once(&av_format_next_init, av_format_init_next);
664 }
666 #endif
667 
668 void avpriv_register_devices(const AVOutputFormat * const o[], const AVInputFormat * const i[])
669 {
671  outdev_list = o;
672  indev_list = i;
674 #if FF_API_NEXT
675  av_format_init_next();
676 #endif
677 }
static const char *const format[]
Definition: af_aiir.c:456
AVInputFormat ff_m4v_demuxer
AVInputFormat ff_data_demuxer
AVOutputFormat ff_mpeg1vcd_muxer
AVInputFormat ff_wtv_demuxer
Definition: wtvdec.c:1138
AVInputFormat ff_yuv4mpegpipe_demuxer
Definition: yuv4mpegdec.c:348
AVInputFormat ff_smjpeg_demuxer
Definition: smjpegdec.c:183
AVInputFormat ff_xmv_demuxer
Definition: xmv.c:588
AVOutputFormat ff_amv_muxer
Definition: amvenc.c:409
AVInputFormat ff_tedcaptions_demuxer
AVOutputFormat ff_pcm_s16be_muxer
AVInputFormat ff_image_xwd_pipe_demuxer
AVOutputFormat ff_ircam_muxer
Definition: ircamenc.c:53
AVOutputFormat ff_h261_muxer
AVInputFormat ff_sol_demuxer
Definition: sol.c:141
AVInputFormat ff_ico_demuxer
Definition: icodec.c:226
AVInputFormat ff_image_exr_pipe_demuxer
AVInputFormat ff_iss_demuxer
Definition: iss.c:146
AVInputFormat ff_wve_demuxer
Definition: wvedec.c:55
AVInputFormat ff_pcm_s8_demuxer
AVOutputFormat ff_dash_muxer
Definition: dashenc.c:2398
AVInputFormat ff_rm_demuxer
Definition: rmdec.c:1160
AVOutputFormat ff_webm_chunk_muxer
Definition: webm_chunk.c:298
AVInputFormat ff_codec2raw_demuxer
AVInputFormat ff_ape_demuxer
Definition: ape.c:456
AVInputFormat ff_epaf_demuxer
Definition: epafdec.c:96
AVInputFormat ff_pcm_alaw_demuxer
AVOutputFormat ff_caf_muxer
Definition: cafenc.c:263
AVInputFormat ff_rl2_demuxer
Definition: rl2.c:303
AVInputFormat ff_image_qdraw_pipe_demuxer
AVOutputFormat ff_segment_muxer
AVOutputFormat ff_rtp_mpegts_muxer
AVInputFormat ff_smush_demuxer
Definition: smush.c:245
AVInputFormat ff_tmv_demuxer
Definition: tmv.c:194
AVInputFormat ff_mca_demuxer
Definition: mca.c:220
AVInputFormat ff_ipmovie_demuxer
Definition: ipmovie.c:734
AVOutputFormat ff_voc_muxer
Definition: vocenc.c:98
AVOutputFormat ff_dirac_muxer
AVInputFormat ff_aptx_demuxer
AVInputFormat ff_afc_demuxer
Definition: afc.c:72
AVInputFormat ff_dss_demuxer
Definition: dss.c:362
AVInputFormat ff_amrnb_demuxer
AVInputFormat ff_realtext_demuxer
Definition: realtextdec.c:153
AVInputFormat ff_bit_demuxer
AVInputFormat ff_ass_demuxer
Definition: assdec.c:185
AVOutputFormat ff_vc1t_muxer
Definition: vc1testenc.c:83
AVOutputFormat ff_argo_asf_muxer
AVInputFormat ff_vobsub_demuxer
AVInputFormat ff_apm_demuxer
AVInputFormat ff_brstm_demuxer
Definition: brstm.c:484
AVOutputFormat ff_null_muxer
Definition: nullenc.c:29
AVInputFormat ff_mgsts_demuxer
Definition: mgsts.c:99
AVOutputFormat ff_image2_muxer
AVOutputFormat ff_cavsvideo_muxer
AVOutputFormat ff_gxf_muxer
Definition: gxfenc.c:1028
AVOutputFormat ff_pcm_u8_muxer
AVInputFormat ff_mv_demuxer
Definition: mvdec.c:505
AVInputFormat ff_daud_demuxer
Definition: dauddec.c:53
AVInputFormat ff_pcm_u24le_demuxer
AVInputFormat ff_sds_demuxer
Definition: sdsdec.c:156
AVInputFormat ff_caf_demuxer
Definition: cafdec.c:465
AVOutputFormat ff_flv_muxer
Definition: flvenc.c:1115
AVInputFormat ff_aptx_hd_demuxer
AVOutputFormat ff_apm_muxer
AVOutputFormat ff_pcm_vidc_muxer
AVInputFormat ff_ace_demuxer
Definition: acedec.c:107
AVOutputFormat ff_alp_muxer
AVInputFormat ff_mjpeg_demuxer
AVInputFormat ff_str_demuxer
Definition: psxstr.c:302
AVInputFormat ff_image_pam_pipe_demuxer
AVOutputFormat ff_fits_muxer
Definition: fitsenc.c:197
AVInputFormat ff_ircam_demuxer
Definition: ircamdec.c:109
AVOutputFormat ff_pcm_s24be_muxer
AVInputFormat ff_mpc8_demuxer
Definition: mpc8.c:337
AVInputFormat ff_image_pcx_pipe_demuxer
AVOutputFormat ff_adts_muxer
Definition: adtsenc.c:232
AVOutputFormat ff_pcm_u32be_muxer
AVInputFormat ff_image_jpeg_pipe_demuxer
AVOutputFormat ff_pcm_s32be_muxer
AVInputFormat ff_image_dds_pipe_demuxer
AVOutputFormat ff_tta_muxer
Definition: ttaenc.c:168
AVInputFormat ff_spdif_demuxer
Definition: spdifdec.c:234
AVInputFormat ff_bmv_demuxer
Definition: bmv.c:128
AVOutputFormat ff_au_muxer
AVInputFormat ff_rawvideo_demuxer
Definition: rawvideodec.c:103
AVInputFormat ff_c93_demuxer
Definition: c93.c:188
static const AVOutputFormat *const * outdev_list
Definition: allformats.c:539
AVOutputFormat ff_chromaprint_muxer
Definition: chromaprint.c:182
AVInputFormat ff_dash_demuxer
Definition: dashdec.c:2400
AVInputFormat ff_hca_demuxer
Definition: hca.c:116
AVInputFormat ff_ea_demuxer
AVInputFormat ff_pcm_s24be_demuxer
AVInputFormat ff_pmp_demuxer
Definition: pmpdec.c:186
AVOutputFormat ff_hevc_muxer
AVOutputFormat ff_mov_muxer
AVInputFormat ff_aea_demuxer
Definition: aea.c:101
AVInputFormat ff_image_ppm_pipe_demuxer
AVInputFormat ff_flac_demuxer
Definition: flacdec.c:333
AVInputFormat ff_sga_demuxer
Definition: sga.c:469
AVInputFormat ff_w64_demuxer
AVInputFormat ff_image_pgmyuv_pipe_demuxer
AVInputFormat ff_lvf_demuxer
Definition: lvfdec.c:148
AVInputFormat ff_adx_demuxer
Definition: adxdec.c:132
AVOutputFormat ff_microdvd_muxer
Definition: microdvdenc.c:58
AVInputFormat ff_mods_demuxer
Definition: mods.c:94
AVInputFormat ff_mov_demuxer
Definition: mov.c:8391
AVOutputFormat ff_ogg_muxer
AVOutputFormat ff_pcm_u24le_muxer
AVInputFormat ff_dvbtxt_demuxer
AVInputFormat ff_mpjpeg_demuxer
Definition: mpjpegdec.c:383
AVInputFormat ff_pcm_f32le_demuxer
AVInputFormat ff_idf_demuxer
AVInputFormat ff_image2_alias_pix_demuxer
AVInputFormat ff_obu_demuxer
AVOutputFormat ff_g726_muxer
AVInputFormat ff_xvag_demuxer
Definition: xvag.c:106
AVOutputFormat ff_dts_muxer
AVInputFormat ff_gsm_demuxer
Definition: gsmdec.c:106
AVOutputFormat ff_filmstrip_muxer
Definition: filmstripenc.c:63
AVInputFormat ff_mpsub_demuxer
Definition: mpsubdec.c:196
AVOutputFormat ff_mpeg2video_muxer
AVOutputFormat ff_sox_muxer
Definition: soxenc.c:107
AVInputFormat ff_sami_demuxer
Definition: samidec.c:145
AVInputFormat ff_stl_demuxer
Definition: stldec.c:133
AVInputFormat ff_pjs_demuxer
Definition: pjsdec.c:131
AVInputFormat ff_threedostr_demuxer
Definition: 3dostr.c:194
AVInputFormat ff_ea_cdata_demuxer
Definition: eacdata.c:97
AVInputFormat ff_aqtitle_demuxer
Definition: aqtitledec.c:141
AVInputFormat ff_tta_demuxer
Definition: tta.c:189
AVInputFormat ff_mpegts_demuxer
Definition: mpegts.c:3394
AVOutputFormat ff_ico_muxer
Definition: icoenc.c:194
AVInputFormat ff_flv_demuxer
Definition: flvdec.c:1379
AVInputFormat ff_mpegvideo_demuxer
AVInputFormat ff_redspark_demuxer
Definition: redspark.c:153
AVInputFormat ff_image_pgx_pipe_demuxer
AVOutputFormat ff_singlejpeg_muxer
AVOutputFormat ff_rtp_muxer
Definition: rtpenc.c:651
AVOutputFormat ff_srt_muxer
Definition: srtenc.c:106
AVOutputFormat ff_rawvideo_muxer
AVOutputFormat ff_wav_muxer
AVInputFormat ff_avs2_demuxer
AVInputFormat ff_fsb_demuxer
Definition: fsb.c:203
AVOutputFormat ff_aptx_hd_muxer
AVOutputFormat ff_hls_muxer
Definition: hlsenc.c:3201
AVOutputFormat ff_sap_muxer
Definition: sapenc.c:270
AVInputFormat ff_image_sunrast_pipe_demuxer
AVInputFormat ff_nut_demuxer
Definition: nutdec.c:1315
AVInputFormat ff_vividas_demuxer
Definition: vividas.c:792
AVOutputFormat ff_mxf_d10_muxer
Definition: mxfenc.c:3259
AVInputFormat ff_sox_demuxer
Definition: soxdec.c:127
AVOutputFormat ff_mp4_muxer
AVInputFormat ff_image2_demuxer
AVInputFormat ff_ingenient_demuxer
Definition: ingenientdec.c:66
AVInputFormat ff_ifv_demuxer
Definition: ifv.c:308
AVOutputFormat ff_data_muxer
AVInputFormat ff_pcm_u24be_demuxer
AVInputFormat ff_g726_demuxer
AVInputFormat ff_asf_o_demuxer
Definition: asfdec_o.c:1786
AVInputFormat ff_amrwb_demuxer
AVInputFormat ff_mvi_demuxer
Definition: mvi.c:146
AVInputFormat ff_qcp_demuxer
Definition: qcp.c:199
AVInputFormat ff_g723_1_demuxer
Definition: g723_1.c:78
AVInputFormat ff_bintext_demuxer
AVOutputFormat ff_avs2_muxer
AVInputFormat ff_roq_demuxer
Definition: idroqdec.c:242
AVInputFormat ff_image_jpegls_pipe_demuxer
AVInputFormat ff_aax_demuxer
Definition: aaxdec.c:414
AVOutputFormat ff_ivf_muxer
Definition: ivfenc.c:124
AVOutputFormat ff_mpeg2vob_muxer
AVInputFormat ff_yop_demuxer
Definition: yop.c:207
AVOutputFormat ff_framemd5_muxer
AVInputFormat ff_fourxm_demuxer
Definition: 4xm.c:400
AVOutputFormat ff_opus_muxer
AVOutputFormat ff_codec2raw_muxer
AVInputFormat ff_smacker_demuxer
Definition: smacker.c:389
AVOutputFormat ff_pcm_u16le_muxer
AVInputFormat ff_sln_demuxer
AVInputFormat ff_act_demuxer
Definition: act.c:203
AVInputFormat ff_amr_demuxer
AVInputFormat ff_filmstrip_demuxer
Definition: filmstripdec.c:107
AVInputFormat ff_mmf_demuxer
AVInputFormat ff_argo_asf_demuxer
AVOutputFormat ff_a64_muxer
Definition: a64.c:61
AVInputFormat ff_mpc_demuxer
Definition: mpc.c:221
AVInputFormat ff_idcin_demuxer
Definition: idcin.c:369
AVInputFormat ff_image_xpm_pipe_demuxer
AVOutputFormat ff_g723_1_muxer
AVOutputFormat ff_asf_muxer
AVInputFormat ff_image_xbm_pipe_demuxer
AVInputFormat ff_acm_demuxer
Definition: acm.c:64
AVInputFormat ff_image_cri_pipe_demuxer
AVOutputFormat ff_w64_muxer
AVOutputFormat ff_pcm_f32be_muxer
AVOutputFormat ff_h263_muxer
AVInputFormat ff_dts_demuxer
Definition: dtsdec.c:136
AVInputFormat ff_msf_demuxer
Definition: msf.c:105
AVOutputFormat ff_dv_muxer
Definition: dvenc.c:439
AVInputFormat ff_vivo_demuxer
Definition: vivo.c:317
AVInputFormat ff_vmd_demuxer
Definition: sierravmd.c:325
AVInputFormat ff_boa_demuxer
Definition: boadec.c:78
AVInputFormat ff_v210x_demuxer
AVInputFormat ff_avs_demuxer
Definition: avs.c:231
AVOutputFormat ff_g722_muxer
AVInputFormat ff_ipu_demuxer
Definition: ipudec.c:78
AVOutputFormat ff_mlp_muxer
AVInputFormat ff_sdp_demuxer
AVInputFormat ff_aiff_demuxer
Definition: aiffdec.c:432
AVInputFormat ff_ac3_demuxer
AVOutputFormat ff_gif_muxer
Definition: gif.c:206
AVOutputFormat ff_rso_muxer
Definition: rsoenc.c:94
AVInputFormat ff_dvbsub_demuxer
AVInputFormat ff_image_tiff_pipe_demuxer
AVInputFormat ff_image_psd_pipe_demuxer
AVOutputFormat ff_mpeg2svcd_muxer
AVOutputFormat ff_mjpeg_muxer
AVInputFormat ff_ffmetadata_demuxer
Definition: ffmetadec.c:225
AVOutputFormat ff_swf_muxer
AVInputFormat ff_dfa_demuxer
Definition: dfa.c:123
AVInputFormat ff_mtaf_demuxer
Definition: mtaf.c:74
AVOutputFormat ff_spdif_muxer
Definition: spdifenc.c:676
AVOutputFormat ff_aptx_muxer
AVInputFormat ff_g729_demuxer
Definition: g729dec.c:96
AVInputFormat ff_mcc_demuxer
Definition: mccdec.c:227
AVInputFormat ff_ilbc_demuxer
Definition: ilbc.c:116
AVInputFormat ff_pcm_f64be_demuxer
AVInputFormat ff_dxa_demuxer
Definition: dxa.c:234
AVInputFormat ff_msnwc_tcp_demuxer
Definition: msnwc_tcp.c:139
AVInputFormat ff_srt_demuxer
Definition: srtdec.c:237
AVInputFormat ff_siff_demuxer
Definition: siff.c:255
AVInputFormat ff_apc_demuxer
Definition: apc.c:86
AVInputFormat ff_xwma_demuxer
Definition: xwma.c:316
void avpriv_register_devices(const AVOutputFormat *const o[], const AVInputFormat *const i[])
Definition: allformats.c:668
AVInputFormat ff_pvf_demuxer
Definition: pvfdec.c:68
AVInputFormat ff_bink_demuxer
Definition: bink.c:326
AVInputFormat ff_g722_demuxer
Definition: g722.c:50
AVInputFormat ff_pcm_s16be_demuxer
AVInputFormat ff_s337m_demuxer
Definition: s337m.c:197
AVInputFormat ff_image_png_pipe_demuxer
AVInputFormat ff_avisynth_demuxer
Definition: avisynth.c:881
AVOutputFormat ff_fifo_muxer
Definition: fifo.c:700
AVInputFormat ff_concat_demuxer
Definition: concatdec.c:782
AVOutputFormat ff_yuv4mpegpipe_muxer
Definition: yuv4mpegenc.c:338
AVInputFormat ff_aa_demuxer
Definition: aadec.c:409
AVOutputFormat ff_pcm_s8_muxer
AVInputFormat ff_bethsoftvid_demuxer
Definition: bethsoftvid.c:294
AVInputFormat ff_ty_demuxer
Definition: ty.c:713
AVInputFormat ff_sbg_demuxer
Definition: sbgdec.c:1536
AVOutputFormat ff_rtsp_muxer
Definition: rtspenc.c:243
AVInputFormat ff_dcstr_demuxer
Definition: dcstr.c:81
AVInputFormat ff_mlp_demuxer
AVInputFormat ff_dsicin_demuxer
Definition: dsicin.c:229
AVInputFormat ff_tak_demuxer
Definition: takdec.c:217
AVOutputFormat ff_mpeg1video_muxer
AVInputFormat ff_gif_demuxer
Definition: gifdec.c:400
AVInputFormat ff_fits_demuxer
Definition: fitsdec.c:226
AVOutputFormat ff_daud_muxer
Definition: daudenc.c:45
AVOutputFormat ff_stream_segment_muxer
AVOutputFormat ff_ttml_muxer
Definition: ttmlenc.c:162
AVInputFormat ff_jv_demuxer
Definition: jvdec.c:257
AVInputFormat ff_luodat_demuxer
Definition: luodatdec.c:118
AVInputFormat ff_ser_demuxer
Definition: serdec.c:135
AVInputFormat ff_flic_demuxer
Definition: flic.c:286
AVInputFormat ff_vc1t_demuxer
Definition: vc1test.c:119
AVOutputFormat ff_lrc_muxer
Definition: lrcenc.c:143
AVInputFormat ff_codec2_demuxer
AVInputFormat ff_vapoursynth_demuxer
Definition: vapoursynth.c:486
AVOutputFormat ff_avi_muxer
Definition: avienc.c:1014
AVOutputFormat ff_streamhash_muxer
AVInputFormat ff_kvag_demuxer
AVOutputFormat ff_rm_muxer
Definition: rmenc.c:468
AVInputFormat ff_ivr_demuxer
Definition: rmdec.c:1419
AVInputFormat ff_voc_demuxer
Definition: vocdec.c:101
static AVMutex avpriv_register_devices_mutex
Definition: allformats.c:575
AVOutputFormat ff_latm_muxer
Definition: latmenc.c:259
AVOutputFormat ff_nut_muxer
Definition: nutenc.c:1231
AVOutputFormat ff_f4v_muxer
AVInputFormat ff_mp3_demuxer
Definition: mp3dec.c:610
AVOutputFormat ff_adx_muxer
AVInputFormat ff_image_pgm_pipe_demuxer
AVOutputFormat ff_mxf_opatom_muxer
Definition: mxfenc.c:3275
AVInputFormat ff_adf_demuxer
AVInputFormat ff_alp_demuxer
AVInputFormat ff_dsf_demuxer
Definition: dsfdec.c:202
AVInputFormat ff_eac3_demuxer
AVInputFormat ff_mjpeg_2000_demuxer
static const AVInputFormat *const * indev_list
Definition: allformats.c:538
AVInputFormat ff_mm_demuxer
Definition: mm.c:193
AVInputFormat ff_cavsvideo_demuxer
AVInputFormat ff_pcm_u8_demuxer
AVInputFormat ff_image_photocd_pipe_demuxer
AVInputFormat ff_fwse_demuxer
Definition: fwse.c:81
AVInputFormat ff_bfstm_demuxer
Definition: brstm.c:496
AVInputFormat ff_v210_demuxer
AVInputFormat ff_kux_demuxer
Definition: flvdec.c:1420
AVOutputFormat ff_uncodedframecrc_muxer
AVInputFormat ff_libgme_demuxer
Definition: libgme.c:201
AVOutputFormat ff_m4v_muxer
AVInputFormat ff_wc3_demuxer
Definition: wc3movie.c:312
AVOutputFormat ff_hds_muxer
Definition: hdsenc.c:569
AVOutputFormat ff_ass_muxer
Definition: assenc.c:229
AVInputFormat ff_r3d_demuxer
Definition: r3d.c:403
AVOutputFormat ff_oga_muxer
AVInputFormat ff_pcm_u32be_demuxer
AVOutputFormat ff_mkvtimestamp_v2_muxer
AVOutputFormat ff_eac3_muxer
AVOutputFormat ff_webp_muxer
Definition: webpenc.c:215
AVInputFormat ff_image_j2k_pipe_demuxer
AVInputFormat ff_derf_demuxer
Definition: derf.c:71
AVOutputFormat ff_spx_muxer
AVOutputFormat ff_jacosub_muxer
Definition: jacosubenc.c:32
AVOutputFormat ff_amr_muxer
AVInputFormat ff_image_dpx_pipe_demuxer
AVOutputFormat ff_pcm_f64le_muxer
AVOutputFormat ff_h264_muxer
AVInputFormat ff_mlv_demuxer
Definition: mlvdec.c:492
AVInputFormat ff_nuv_demuxer
Definition: nuv.c:397
AVOutputFormat ff_crc_muxer
Definition: crcenc.c:59
AVOutputFormat ff_truehd_muxer
AVInputFormat ff_svag_demuxer
Definition: svag.c:71
AVInputFormat ff_tiertexseq_demuxer
Definition: tiertexseq.c:319
AVInputFormat ff_wav_demuxer
AVInputFormat ff_mpegps_demuxer
Definition: mpeg.c:689
AVInputFormat ff_h261_demuxer
AVInputFormat ff_adp_demuxer
Definition: adp.c:86
AVOutputFormat ff_ffmetadata_muxer
Definition: ffmetaenc.c:90
AVInputFormat ff_libopenmpt_demuxer
Definition: libopenmpt.c:284
AVInputFormat ff_pcm_u16be_demuxer
AVOutputFormat ff_image2pipe_muxer
AVOutputFormat ff_webvtt_muxer
Definition: webvttenc.c:96
AVOutputFormat ff_pcm_u32le_muxer
AVInputFormat ff_pcm_f32be_demuxer
AVInputFormat ff_ogg_demuxer
Definition: oggdec.c:969
AVInputFormat ff_pcm_s16le_demuxer
AVInputFormat ff_vplayer_demuxer
Definition: vplayerdec.c:121
AVOutputFormat ff_kvag_muxer
AVOutputFormat ff_webm_dash_manifest_muxer
Definition: webmdashenc.c:540
AVInputFormat ff_wsaud_demuxer
Definition: westwood_aud.c:181
AVOutputFormat ff_wv_muxer
Definition: wvenc.c:79
AVInputFormat ff_rpl_demuxer
Definition: rpl.c:392
AVInputFormat ff_h264_demuxer
AVInputFormat ff_live_flv_demuxer
Definition: flvdec.c:1399
AVInputFormat ff_cine_demuxer
Definition: cinedec.c:325
AVOutputFormat ff_avm2_muxer
AVInputFormat ff_h263_demuxer
AVInputFormat ff_hevc_demuxer
AVOutputFormat ff_mpeg2dvd_muxer
AVInputFormat ff_dnxhd_demuxer
AVInputFormat ff_sdr2_demuxer
Definition: sdr2.c:112
AVInputFormat ff_txd_demuxer
Definition: txd.c:95
AVOutputFormat ff_matroska_audio_muxer
AVInputFormat ff_cdg_demuxer
Definition: cdg.c:70
AVOutputFormat ff_mmf_muxer
AVInputFormat ff_truehd_demuxer
AVInputFormat ff_image_pictor_pipe_demuxer
AVOutputFormat ff_pcm_s32le_muxer
AVOutputFormat ff_pcm_s16le_muxer
AVOutputFormat ff_ast_muxer
Definition: astenc.c:199
AVInputFormat ff_sap_demuxer
Definition: sapdec.c:240
AVInputFormat ff_mxg_demuxer
Definition: mxg.c:252
AVInputFormat ff_lmlm4_demuxer
Definition: lmlm4.c:124
AVOutputFormat ff_roq_muxer
Definition: idroqenc.c:62
AVInputFormat ff_pcm_vidc_demuxer
AVInputFormat ff_lrc_demuxer
Definition: lrcdec.c:244
AVInputFormat ff_rso_demuxer
Definition: rsodec.c:75
AVOutputFormat ff_mp3_muxer
Definition: mp3enc.c:639
AVInputFormat ff_gdv_demuxer
Definition: gdv.c:196
AVInputFormat ff_vpk_demuxer
Definition: vpk.c:137
AVOutputFormat ff_pcm_mulaw_muxer
AVInputFormat ff_pcm_u32le_demuxer
AVInputFormat ff_ivf_demuxer
Definition: ivfdec.c:84
AVOutputFormat ff_fifo_test_muxer
Definition: fifo_test.c:141
AVInputFormat ff_avs3_demuxer
AVInputFormat ff_vqf_demuxer
Definition: vqf.c:298
AVInputFormat ff_dv_demuxer
Definition: dv.c:617
AVInputFormat ff_rtsp_demuxer
Definition: rtspdec.c:986
AVInputFormat ff_shorten_demuxer
Definition: shortendec.c:69
AVInputFormat ff_pp_bnk_demuxer
Definition: pp_bnk.c:335
AVInputFormat ff_oma_demuxer
Definition: omadec.c:627
AVOutputFormat ff_tee_muxer
Definition: tee.c:613
AVOutputFormat ff_ilbc_muxer
AVOutputFormat ff_framehash_muxer
AVOutputFormat ff_tg2_muxer
AVOutputFormat ff_matroska_muxer
AVInputFormat ff_xbin_demuxer
AVInputFormat ff_pva_demuxer
Definition: pva.c:230
AVInputFormat ff_g726le_demuxer
AVInputFormat ff_binka_demuxer
Definition: binka.c:92
AVOutputFormat ff_framecrc_muxer
Definition: framecrcenc.c:130
AVInputFormat ff_frm_demuxer
Definition: frmdec.c:106
AVInputFormat ff_aix_demuxer
Definition: aixdec.c:132
AVOutputFormat ff_scc_muxer
Definition: sccenc.c:114
AVInputFormat ff_moflex_demuxer
Definition: moflex.c:377
AVOutputFormat ff_apng_muxer
Definition: apngenc.c:297
AVInputFormat ff_mpegtsraw_demuxer
Definition: mpegts.c:3407
AVInputFormat ff_rsd_demuxer
Definition: rsd.c:223
AVInputFormat ff_ads_demuxer
Definition: ads.c:83
AVInputFormat ff_nsp_demuxer
Definition: nspdec.c:99
AVInputFormat ff_vag_demuxer
Definition: vag.c:76
AVInputFormat ff_wv_demuxer
Definition: wvdec.c:332
AVInputFormat ff_bfi_demuxer
Definition: bfi.c:179
AVOutputFormat ff_aiff_muxer
Definition: aiffenc.c:296
AVInputFormat ff_nsv_demuxer
Definition: nsvdec.c:737
AVInputFormat ff_jacosub_demuxer
Definition: jacosubdec.c:285
AVInputFormat ff_anm_demuxer
Definition: anm.c:217
AVOutputFormat ff_gsm_muxer
AVInputFormat ff_rtp_demuxer
AVInputFormat ff_hcom_demuxer
Definition: hcom.c:85
AVInputFormat ff_musx_demuxer
Definition: musx.c:181
AVInputFormat ff_paf_demuxer
Definition: paf.c:274
AVInputFormat ff_avi_demuxer
Definition: avidec.c:1994
AVInputFormat ff_microdvd_demuxer
Definition: microdvddec.c:206
AVInputFormat ff_aac_demuxer
Definition: aacdec.c:209
AVInputFormat ff_lxf_demuxer
Definition: lxfdec.c:337
AVInputFormat ff_webm_dash_manifest_demuxer
Definition: matroskadec.c:4362
AVInputFormat ff_image_sgi_pipe_demuxer
AVOutputFormat ff_smjpeg_muxer
Definition: smjpegenc.c:135
AVInputFormat ff_pcm_u16le_demuxer
AVInputFormat ff_dtshd_demuxer
Definition: dtshddec.c:162
AVInputFormat ff_gxf_demuxer
Definition: gxf.c:602
AVInputFormat ff_thp_demuxer
Definition: thp.c:215
AVOutputFormat ff_sup_muxer
Definition: supenc.c:87
AVInputFormat ff_image2pipe_demuxer
AVInputFormat ff_loas_demuxer
Definition: loasdec.c:87
AVInputFormat ff_apng_demuxer
Definition: apngdec.c:424
AVInputFormat ff_ast_demuxer
Definition: astdec.c:113
AVOutputFormat ff_dnxhd_muxer
AVOutputFormat ff_webm_muxer
AVInputFormat ff_hnm_demuxer
Definition: hnm.c:163
AVInputFormat ff_image_bmp_pipe_demuxer
AVInputFormat ff_pcm_s24le_demuxer
AVOutputFormat ff_psp_muxer
AVInputFormat ff_dhav_demuxer
Definition: dhav.c:454
AVInputFormat ff_av1_demuxer
AVOutputFormat ff_pcm_u24be_muxer
AVInputFormat ff_msp_demuxer
Definition: mspdec.c:109
AVInputFormat ff_image_gif_pipe_demuxer
AVOutputFormat ff_mpegts_muxer
Definition: mpegtsenc.c:2138
AVInputFormat ff_sup_demuxer
Definition: supdec.c:100
AVInputFormat ff_simbiosis_imx_demuxer
Definition: imx.c:159
AVInputFormat ff_genh_demuxer
Definition: genh.c:195
AVInputFormat ff_asf_demuxer
Definition: asfdec_f.c:1718
AVInputFormat ff_scc_demuxer
Definition: sccdec.c:180
AVOutputFormat ff_pcm_f64be_muxer
AVInputFormat ff_image_pbm_pipe_demuxer
AVInputFormat ff_sdx_demuxer
Definition: sdxdec.c:81
AVOutputFormat ff_segafilm_muxer
Definition: segafilmenc.c:324
AVOutputFormat ff_vc1_muxer
AVInputFormat ff_tty_demuxer
Definition: tty.c:184
AVOutputFormat ff_bit_muxer
AVInputFormat ff_xa_demuxer
Definition: xa.c:124
AVInputFormat ff_image_svg_pipe_demuxer
AVInputFormat ff_cdxl_demuxer
Definition: cdxl.c:261
AVInputFormat ff_svs_demuxer
Definition: svs.c:89
AVInputFormat ff_matroska_demuxer
Definition: matroskadec.c:4349
AVOutputFormat ff_mp2_muxer
AVOutputFormat ff_ac3_muxer
AVOutputFormat ff_mpeg1system_muxer
AVOutputFormat ff_oma_muxer
Definition: omaenc.c:97
AVOutputFormat ff_pcm_f32le_muxer
AVOutputFormat ff_pcm_u16be_muxer
AVInputFormat ff_pcm_mulaw_demuxer
AVOutputFormat ff_asf_stream_muxer
AVOutputFormat ff_ipod_muxer
AVInputFormat ff_libmodplug_demuxer
Definition: libmodplug.c:383
AVOutputFormat ff_sbc_muxer
AVInputFormat ff_mtv_demuxer
Definition: mtv.c:228
AVInputFormat ff_wsd_demuxer
Definition: wsddec.c:165
AVInputFormat ff_swf_demuxer
Definition: swfdec.c:570
AVInputFormat ff_nistsphere_demuxer
AVInputFormat ff_vc1_demuxer
AVInputFormat ff_dirac_demuxer
AVOutputFormat ff_g726le_muxer
AVInputFormat ff_image2_brender_pix_demuxer
AVInputFormat ff_iff_demuxer
Definition: iff.c:907
AVOutputFormat ff_ogv_muxer
AVInputFormat ff_sbc_demuxer
Definition: sbcdec.c:26
AVInputFormat ff_avr_demuxer
Definition: avr.c:93
AVInputFormat ff_hls_demuxer
Definition: hls.c:2493
AVInputFormat ff_argo_brp_demuxer
Definition: argo_brp.c:416
AVOutputFormat ff_mxf_muxer
Definition: mxfenc.c:3242
AVOutputFormat ff_md5_muxer
AVOutputFormat ff_codec2_muxer
AVOutputFormat ff_smoothstreaming_muxer
AVInputFormat ff_mxf_demuxer
Definition: mxfdec.c:3961
AVOutputFormat ff_pcm_s24le_muxer
AVInputFormat ff_subviewer1_demuxer
AVInputFormat ff_wsvqa_demuxer
Definition: westwood_vqa.c:265
AVInputFormat ff_nc_demuxer
Definition: ncdec.c:93
AVInputFormat ff_pcm_s32le_demuxer
AVInputFormat ff_pcm_f64le_demuxer
AVInputFormat ff_image_webp_pipe_demuxer
AVOutputFormat ff_pcm_alaw_muxer
AVInputFormat ff_segafilm_demuxer
Definition: segafilm.c:337
AVInputFormat ff_subviewer_demuxer
Definition: subviewerdec.c:212
AVOutputFormat ff_tgp_muxer
AVOutputFormat ff_hash_muxer
AVInputFormat ff_pcm_s32be_demuxer
AVOutputFormat ff_ismv_muxer
AVOutputFormat ff_mpjpeg_muxer
Definition: mpjpeg.c:64
AVInputFormat ff_mpl2_demuxer
Definition: mpl2dec.c:148
AVOutputFormat ff_wtv_muxer
Definition: wtvenc.c:832
AVInputFormat ff_au_demuxer
AVOutputFormat ff_flac_muxer
Definition: flacenc.c:414
AVInputFormat ff_iv8_demuxer
Definition: iv8.c:110
AVInputFormat ff_webvtt_demuxer
Definition: webvttdec.c:213
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31)))) #define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac) { } void ff_audio_convert_free(AudioConvert **ac) { if(! *ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);} AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map) { AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method !=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2) { ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc) { av_free(ac);return NULL;} return ac;} in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar) { ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar ? ac->channels :1;} else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;} int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in) { int use_generic=1;int len=in->nb_samples;int p;if(ac->dc) { av_log(ac->avr, AV_LOG_TRACE, "%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
Main libavformat public API header.
#define f(width, name)
Definition: cbs_vp9.c:255
#define NULL
Definition: coverity.c:32
static const AVInputFormat *const demuxer_list[]
Definition: demuxer_list.c:1
const AVOutputFormat * av_muxer_iterate(void **opaque)
Iterate over all registered muxers.
Definition: allformats.c:541
const AVInputFormat * av_demuxer_iterate(void **opaque)
Iterate over all registered demuxers.
Definition: allformats.c:558
int i
Definition: input.c:407
#define FF_DISABLE_DEPRECATION_WARNINGS
Definition: internal.h:83
#define FF_ENABLE_DEPRECATION_WARNINGS
Definition: internal.h:84
#define AV_MUTEX_INITIALIZER
Definition: thread.h:165
#define AVOnce
Definition: thread.h:172
static int ff_mutex_unlock(AVMutex *mutex)
Definition: thread.h:169
static int ff_mutex_lock(AVMutex *mutex)
Definition: thread.h:168
static int ff_thread_once(char *control, void(*routine)(void))
Definition: thread.h:175
#define AV_ONCE_INIT
Definition: thread.h:173
#define AVMutex
Definition: thread.h:164
swscale version macros
static const AVOutputFormat *const muxer_list[]
Definition: muxer_list.c:1
FILE * out
Definition: movenc.c:54
int size
unbuffered private I/O API