Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
0694d870
Commit
0694d870
authored
Jan 21, 2018
by
Josh de Kock
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lavf: add new API for iterating muxers and demuxers
parent
598d5f85
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
567 additions
and
421 deletions
+567
-421
Makefile
Makefile
+2
-1
configure
configure
+4
-2
APIchanges
doc/APIchanges
+6
-1
.gitignore
libavformat/.gitignore
+2
-0
allformats.c
libavformat/allformats.c
+513
-355
avformat.h
libavformat/avformat.h
+31
-0
format.c
libavformat/format.c
+6
-62
version.h
libavformat/version.h
+3
-0
No files found.
Makefile
View file @
0694d870
...
@@ -143,7 +143,8 @@ distclean:: clean
...
@@ -143,7 +143,8 @@ distclean:: clean
ffbuild/.config ffbuild/config.
*
libavutil/avconfig.h
\
ffbuild/.config ffbuild/config.
*
libavutil/avconfig.h
\
version.h libavutil/ffversion.h libavcodec/codec_names.h
\
version.h libavutil/ffversion.h libavcodec/codec_names.h
\
libavcodec/bsf_list.c libavformat/protocol_list.c
\
libavcodec/bsf_list.c libavformat/protocol_list.c
\
libavcodec/codec_list.c libavcodec/parser_list.c
libavcodec/codec_list.c libavcodec/parser_list.c
\
libavformat/muxer_list.c libavformat/demuxer_list.c
ifeq
($(SRC_LINK),src)
ifeq
($(SRC_LINK),src)
$(RM)
src
$(RM)
src
endif
endif
...
...
configure
View file @
0694d870
...
@@ -3525,8 +3525,6 @@ find_things(){
...
@@ -3525,8 +3525,6 @@ find_things(){
sed
-n
"s/^[^#]*
$pattern
.*([^,]*, *
\(
[^,]*
\)\(
,.*
\)
*).*/
\1
_
$thing
/p"
"
$file
"
sed
-n
"s/^[^#]*
$pattern
.*([^,]*, *
\(
[^,]*
\)\(
,.*
\)
*).*/
\1
_
$thing
/p"
"
$file
"
}
}
MUXER_LIST
=
$(
find_things muxer _MUX libavformat/allformats.c
)
DEMUXER_LIST
=
$(
find_things demuxer DEMUX libavformat/allformats.c
)
OUTDEV_LIST
=
$(
find_things outdev OUTDEV libavdevice/alldevices.c
)
OUTDEV_LIST
=
$(
find_things outdev OUTDEV libavdevice/alldevices.c
)
INDEV_LIST
=
$(
find_things indev _IN libavdevice/alldevices.c
)
INDEV_LIST
=
$(
find_things indev _IN libavdevice/alldevices.c
)
FILTER_LIST
=
$(
find_things filter FILTER libavfilter/allfilters.c
)
FILTER_LIST
=
$(
find_things filter FILTER libavfilter/allfilters.c
)
...
@@ -3538,6 +3536,8 @@ find_things_extern(){
...
@@ -3538,6 +3536,8 @@ find_things_extern(){
sed
-n
"s/^[^#]*extern.*
$pattern
*ff_
\(
[^ ]*
\)
_
$thing
;/
\1
_
$thing
/p"
"
$file
"
sed
-n
"s/^[^#]*extern.*
$pattern
*ff_
\(
[^ ]*
\)
_
$thing
;/
\1
_
$thing
/p"
"
$file
"
}
}
MUXER_LIST
=
$(
find_things_extern muxer AVOutputFormat libavformat/allformats.c
)
DEMUXER_LIST
=
$(
find_things_extern demuxer AVInputFormat libavformat/allformats.c
)
ENCODER_LIST
=
$(
find_things_extern encoder AVCodec libavcodec/allcodecs.c
)
ENCODER_LIST
=
$(
find_things_extern encoder AVCodec libavcodec/allcodecs.c
)
DECODER_LIST
=
$(
find_things_extern decoder AVCodec libavcodec/allcodecs.c
)
DECODER_LIST
=
$(
find_things_extern decoder AVCodec libavcodec/allcodecs.c
)
CODEC_LIST
=
"
CODEC_LIST
=
"
...
@@ -7036,6 +7036,8 @@ print_enabled_components(){
...
@@ -7036,6 +7036,8 @@ print_enabled_components(){
print_enabled_components libavcodec/codec_list.c AVCodec codec_list
$CODEC_LIST
print_enabled_components libavcodec/codec_list.c AVCodec codec_list
$CODEC_LIST
print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list
$PARSER_LIST
print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list
$PARSER_LIST
print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters
$BSF_LIST
print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters
$BSF_LIST
print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list
$DEMUXER_LIST
print_enabled_components libavformat/muxer_list.c AVOutputFormat muxer_list
$MUXER_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols
$PROTOCOL_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols
$PROTOCOL_LIST
# Settings for pkg-config files
# Settings for pkg-config files
...
...
doc/APIchanges
View file @
0694d870
...
@@ -15,7 +15,12 @@ libavutil: 2017-10-21
...
@@ -15,7 +15,12 @@ libavutil: 2017-10-21
API changes, most recent first:
API changes, most recent first:
2018-01-xx - xxxxxxx - lavc 58.9.100 - avcodec.h
2018-xx-xx - xxxxxxx - lavf 58.9.100 - avformat.h
Deprecate use of av_register_input_format(), av_register_output_format(),
avformat_register_all(), av_iformat_next(), av_oformat_next().
Add av_demuxer_iterate(), and av_muxer_iterate().
2018-xx-xx - xxxxxxx - lavc 58.9.100 - avcodec.h
Deprecate use of avcodec_register(), avcodec_register_all(), and
Deprecate use of avcodec_register(), avcodec_register_all(), and
av_codec_next(). Add av_codec_iterate().
av_codec_next(). Add av_codec_iterate().
...
...
libavformat/.gitignore
View file @
0694d870
/protocol_list.c
/protocol_list.c
/muxer_list.c
/demuxer_list.c
libavformat/allformats.c
View file @
0694d870
...
@@ -26,371 +26,529 @@
...
@@ -26,371 +26,529 @@
#include "url.h"
#include "url.h"
#include "version.h"
#include "version.h"
#define REGISTER_MUXER(X, x) \
/* (de)muxers */
{ \
extern
AVOutputFormat
ff_a64_muxer
;
extern AVOutputFormat ff_##x##_muxer; \
extern
AVInputFormat
ff_aa_demuxer
;
if (CONFIG_##X##_MUXER) \
extern
AVInputFormat
ff_aac_demuxer
;
av_register_output_format(&ff_##x##_muxer); \
extern
AVInputFormat
ff_ac3_demuxer
;
}
extern
AVOutputFormat
ff_ac3_muxer
;
extern
AVInputFormat
ff_acm_demuxer
;
extern
AVInputFormat
ff_act_demuxer
;
extern
AVInputFormat
ff_adf_demuxer
;
extern
AVInputFormat
ff_adp_demuxer
;
extern
AVInputFormat
ff_ads_demuxer
;
extern
AVOutputFormat
ff_adts_muxer
;
extern
AVInputFormat
ff_adx_demuxer
;
extern
AVOutputFormat
ff_adx_muxer
;
extern
AVInputFormat
ff_aea_demuxer
;
extern
AVInputFormat
ff_afc_demuxer
;
extern
AVInputFormat
ff_aiff_demuxer
;
extern
AVOutputFormat
ff_aiff_muxer
;
extern
AVInputFormat
ff_aix_demuxer
;
extern
AVInputFormat
ff_amr_demuxer
;
extern
AVOutputFormat
ff_amr_muxer
;
extern
AVInputFormat
ff_amrnb_demuxer
;
extern
AVInputFormat
ff_amrwb_demuxer
;
extern
AVInputFormat
ff_anm_demuxer
;
extern
AVInputFormat
ff_apc_demuxer
;
extern
AVInputFormat
ff_ape_demuxer
;
extern
AVInputFormat
ff_apng_demuxer
;
extern
AVOutputFormat
ff_apng_muxer
;
extern
AVInputFormat
ff_aptx_demuxer
;
extern
AVOutputFormat
ff_aptx_muxer
;
extern
AVInputFormat
ff_aqtitle_demuxer
;
extern
AVInputFormat
ff_asf_demuxer
;
extern
AVOutputFormat
ff_asf_muxer
;
extern
AVInputFormat
ff_asf_o_demuxer
;
extern
AVInputFormat
ff_ass_demuxer
;
extern
AVOutputFormat
ff_ass_muxer
;
extern
AVInputFormat
ff_ast_demuxer
;
extern
AVOutputFormat
ff_ast_muxer
;
extern
AVOutputFormat
ff_asf_stream_muxer
;
extern
AVInputFormat
ff_au_demuxer
;
extern
AVOutputFormat
ff_au_muxer
;
extern
AVInputFormat
ff_avi_demuxer
;
extern
AVOutputFormat
ff_avi_muxer
;
extern
AVInputFormat
ff_avisynth_demuxer
;
extern
AVOutputFormat
ff_avm2_muxer
;
extern
AVInputFormat
ff_avr_demuxer
;
extern
AVInputFormat
ff_avs_demuxer
;
extern
AVInputFormat
ff_bethsoftvid_demuxer
;
extern
AVInputFormat
ff_bfi_demuxer
;
extern
AVInputFormat
ff_bintext_demuxer
;
extern
AVInputFormat
ff_bink_demuxer
;
extern
AVInputFormat
ff_bit_demuxer
;
extern
AVOutputFormat
ff_bit_muxer
;
extern
AVInputFormat
ff_bmv_demuxer
;
extern
AVInputFormat
ff_bfstm_demuxer
;
extern
AVInputFormat
ff_brstm_demuxer
;
extern
AVInputFormat
ff_boa_demuxer
;
extern
AVInputFormat
ff_c93_demuxer
;
extern
AVInputFormat
ff_caf_demuxer
;
extern
AVOutputFormat
ff_caf_muxer
;
extern
AVInputFormat
ff_cavsvideo_demuxer
;
extern
AVOutputFormat
ff_cavsvideo_muxer
;
extern
AVInputFormat
ff_cdg_demuxer
;
extern
AVInputFormat
ff_cdxl_demuxer
;
extern
AVInputFormat
ff_cine_demuxer
;
extern
AVInputFormat
ff_concat_demuxer
;
extern
AVOutputFormat
ff_crc_muxer
;
extern
AVInputFormat
ff_dash_demuxer
;
extern
AVOutputFormat
ff_dash_muxer
;
extern
AVInputFormat
ff_data_demuxer
;
extern
AVOutputFormat
ff_data_muxer
;
extern
AVInputFormat
ff_daud_demuxer
;
extern
AVOutputFormat
ff_daud_muxer
;
extern
AVInputFormat
ff_dcstr_demuxer
;
extern
AVInputFormat
ff_dfa_demuxer
;
extern
AVInputFormat
ff_dirac_demuxer
;
extern
AVOutputFormat
ff_dirac_muxer
;
extern
AVInputFormat
ff_dnxhd_demuxer
;
extern
AVOutputFormat
ff_dnxhd_muxer
;
extern
AVInputFormat
ff_dsf_demuxer
;
extern
AVInputFormat
ff_dsicin_demuxer
;
extern
AVInputFormat
ff_dss_demuxer
;
extern
AVInputFormat
ff_dts_demuxer
;
extern
AVOutputFormat
ff_dts_muxer
;
extern
AVInputFormat
ff_dtshd_demuxer
;
extern
AVInputFormat
ff_dv_demuxer
;
extern
AVOutputFormat
ff_dv_muxer
;
extern
AVInputFormat
ff_dvbsub_demuxer
;
extern
AVInputFormat
ff_dvbtxt_demuxer
;
extern
AVInputFormat
ff_dxa_demuxer
;
extern
AVInputFormat
ff_ea_demuxer
;
extern
AVInputFormat
ff_ea_cdata_demuxer
;
extern
AVInputFormat
ff_eac3_demuxer
;
extern
AVOutputFormat
ff_eac3_muxer
;
extern
AVInputFormat
ff_epaf_demuxer
;
extern
AVOutputFormat
ff_f4v_muxer
;
extern
AVInputFormat
ff_ffmetadata_demuxer
;
extern
AVOutputFormat
ff_ffmetadata_muxer
;
extern
AVOutputFormat
ff_fifo_muxer
;
extern
AVOutputFormat
ff_fifo_test_muxer
;
extern
AVInputFormat
ff_filmstrip_demuxer
;
extern
AVOutputFormat
ff_filmstrip_muxer
;
extern
AVInputFormat
ff_fits_demuxer
;
extern
AVOutputFormat
ff_fits_muxer
;
extern
AVInputFormat
ff_flac_demuxer
;
extern
AVOutputFormat
ff_flac_muxer
;
extern
AVInputFormat
ff_flic_demuxer
;
extern
AVInputFormat
ff_flv_demuxer
;
extern
AVOutputFormat
ff_flv_muxer
;
extern
AVInputFormat
ff_live_flv_demuxer
;
extern
AVInputFormat
ff_fourxm_demuxer
;
extern
AVOutputFormat
ff_framecrc_muxer
;
extern
AVOutputFormat
ff_framehash_muxer
;
extern
AVOutputFormat
ff_framemd5_muxer
;
extern
AVInputFormat
ff_frm_demuxer
;
extern
AVInputFormat
ff_fsb_demuxer
;
extern
AVInputFormat
ff_g722_demuxer
;
extern
AVOutputFormat
ff_g722_muxer
;
extern
AVInputFormat
ff_g723_1_demuxer
;
extern
AVOutputFormat
ff_g723_1_muxer
;
extern
AVInputFormat
ff_g726_demuxer
;
extern
AVOutputFormat
ff_g726_muxer
;
extern
AVInputFormat
ff_g726le_demuxer
;
extern
AVOutputFormat
ff_g726le_muxer
;
extern
AVInputFormat
ff_g729_demuxer
;
extern
AVInputFormat
ff_gdv_demuxer
;
extern
AVInputFormat
ff_genh_demuxer
;
extern
AVInputFormat
ff_gif_demuxer
;
extern
AVOutputFormat
ff_gif_muxer
;
extern
AVInputFormat
ff_gsm_demuxer
;
extern
AVOutputFormat
ff_gsm_muxer
;
extern
AVInputFormat
ff_gxf_demuxer
;
extern
AVOutputFormat
ff_gxf_muxer
;
extern
AVInputFormat
ff_h261_demuxer
;
extern
AVOutputFormat
ff_h261_muxer
;
extern
AVInputFormat
ff_h263_demuxer
;
extern
AVOutputFormat
ff_h263_muxer
;
extern
AVInputFormat
ff_h264_demuxer
;
extern
AVOutputFormat
ff_h264_muxer
;
extern
AVOutputFormat
ff_hash_muxer
;
extern
AVOutputFormat
ff_hds_muxer
;
extern
AVInputFormat
ff_hevc_demuxer
;
extern
AVOutputFormat
ff_hevc_muxer
;
extern
AVInputFormat
ff_hls_demuxer
;
extern
AVOutputFormat
ff_hls_muxer
;
extern
AVInputFormat
ff_hnm_demuxer
;
extern
AVInputFormat
ff_ico_demuxer
;
extern
AVOutputFormat
ff_ico_muxer
;
extern
AVInputFormat
ff_idcin_demuxer
;
extern
AVInputFormat
ff_idf_demuxer
;
extern
AVInputFormat
ff_iff_demuxer
;
extern
AVInputFormat
ff_ilbc_demuxer
;
extern
AVOutputFormat
ff_ilbc_muxer
;
extern
AVInputFormat
ff_image2_demuxer
;
extern
AVOutputFormat
ff_image2_muxer
;
extern
AVInputFormat
ff_image2pipe_demuxer
;
extern
AVOutputFormat
ff_image2pipe_muxer
;
extern
AVInputFormat
ff_image2_alias_pix_demuxer
;
extern
AVInputFormat
ff_image2_brender_pix_demuxer
;
extern
AVInputFormat
ff_ingenient_demuxer
;
extern
AVInputFormat
ff_ipmovie_demuxer
;
extern
AVOutputFormat
ff_ipod_muxer
;
extern
AVInputFormat
ff_ircam_demuxer
;
extern
AVOutputFormat
ff_ircam_muxer
;
extern
AVOutputFormat
ff_ismv_muxer
;
extern
AVInputFormat
ff_iss_demuxer
;
extern
AVInputFormat
ff_iv8_demuxer
;
extern
AVInputFormat
ff_ivf_demuxer
;
extern
AVOutputFormat
ff_ivf_muxer
;
extern
AVInputFormat
ff_ivr_demuxer
;
extern
AVInputFormat
ff_jacosub_demuxer
;
extern
AVOutputFormat
ff_jacosub_muxer
;
extern
AVInputFormat
ff_jv_demuxer
;
extern
AVOutputFormat
ff_latm_muxer
;
extern
AVInputFormat
ff_lmlm4_demuxer
;
extern
AVInputFormat
ff_loas_demuxer
;
extern
AVInputFormat
ff_lrc_demuxer
;
extern
AVOutputFormat
ff_lrc_muxer
;
extern
AVInputFormat
ff_lvf_demuxer
;
extern
AVInputFormat
ff_lxf_demuxer
;
extern
AVInputFormat
ff_m4v_demuxer
;
extern
AVOutputFormat
ff_m4v_muxer
;
extern
AVOutputFormat
ff_md5_muxer
;
extern
AVInputFormat
ff_matroska_demuxer
;
extern
AVOutputFormat
ff_matroska_muxer
;
extern
AVOutputFormat
ff_matroska_audio_muxer
;
extern
AVInputFormat
ff_mgsts_demuxer
;
extern
AVInputFormat
ff_microdvd_demuxer
;
extern
AVOutputFormat
ff_microdvd_muxer
;
extern
AVInputFormat
ff_mjpeg_demuxer
;
extern
AVOutputFormat
ff_mjpeg_muxer
;
extern
AVInputFormat
ff_mjpeg_2000_demuxer
;
extern
AVInputFormat
ff_mlp_demuxer
;
extern
AVOutputFormat
ff_mlp_muxer
;
extern
AVInputFormat
ff_mlv_demuxer
;
extern
AVInputFormat
ff_mm_demuxer
;
extern
AVInputFormat
ff_mmf_demuxer
;
extern
AVOutputFormat
ff_mmf_muxer
;
extern
AVInputFormat
ff_mov_demuxer
;
extern
AVOutputFormat
ff_mov_muxer
;
extern
AVOutputFormat
ff_mp2_muxer
;
extern
AVInputFormat
ff_mp3_demuxer
;
extern
AVOutputFormat
ff_mp3_muxer
;
extern
AVOutputFormat
ff_mp4_muxer
;
extern
AVInputFormat
ff_mpc_demuxer
;
extern
AVInputFormat
ff_mpc8_demuxer
;
extern
AVOutputFormat
ff_mpeg1system_muxer
;
extern
AVOutputFormat
ff_mpeg1vcd_muxer
;
extern
AVOutputFormat
ff_mpeg1video_muxer
;
extern
AVOutputFormat
ff_mpeg2dvd_muxer
;
extern
AVOutputFormat
ff_mpeg2svcd_muxer
;
extern
AVOutputFormat
ff_mpeg2video_muxer
;
extern
AVOutputFormat
ff_mpeg2vob_muxer
;
extern
AVInputFormat
ff_mpegps_demuxer
;
extern
AVInputFormat
ff_mpegts_demuxer
;
extern
AVOutputFormat
ff_mpegts_muxer
;
extern
AVInputFormat
ff_mpegtsraw_demuxer
;
extern
AVInputFormat
ff_mpegvideo_demuxer
;
extern
AVInputFormat
ff_mpjpeg_demuxer
;
extern
AVOutputFormat
ff_mpjpeg_muxer
;
extern
AVInputFormat
ff_mpl2_demuxer
;
extern
AVInputFormat
ff_mpsub_demuxer
;
extern
AVInputFormat
ff_msf_demuxer
;
extern
AVInputFormat
ff_msnwc_tcp_demuxer
;
extern
AVInputFormat
ff_mtaf_demuxer
;
extern
AVInputFormat
ff_mtv_demuxer
;
extern
AVInputFormat
ff_musx_demuxer
;
extern
AVInputFormat
ff_mv_demuxer
;
extern
AVInputFormat
ff_mvi_demuxer
;
extern
AVInputFormat
ff_mxf_demuxer
;
extern
AVOutputFormat
ff_mxf_muxer
;
extern
AVOutputFormat
ff_mxf_d10_muxer
;
extern
AVOutputFormat
ff_mxf_opatom_muxer
;
extern
AVInputFormat
ff_mxg_demuxer
;
extern
AVInputFormat
ff_nc_demuxer
;
extern
AVInputFormat
ff_nistsphere_demuxer
;
extern
AVInputFormat
ff_nsp_demuxer
;
extern
AVInputFormat
ff_nsv_demuxer
;
extern
AVOutputFormat
ff_null_muxer
;
extern
AVInputFormat
ff_nut_demuxer
;
extern
AVOutputFormat
ff_nut_muxer
;
extern
AVInputFormat
ff_nuv_demuxer
;
extern
AVOutputFormat
ff_oga_muxer
;
extern
AVInputFormat
ff_ogg_demuxer
;
extern
AVOutputFormat
ff_ogg_muxer
;
extern
AVOutputFormat
ff_ogv_muxer
;
extern
AVInputFormat
ff_oma_demuxer
;
extern
AVOutputFormat
ff_oma_muxer
;
extern
AVOutputFormat
ff_opus_muxer
;
extern
AVInputFormat
ff_paf_demuxer
;
extern
AVInputFormat
ff_pcm_alaw_demuxer
;
extern
AVOutputFormat
ff_pcm_alaw_muxer
;
extern
AVInputFormat
ff_pcm_mulaw_demuxer
;
extern
AVOutputFormat
ff_pcm_mulaw_muxer
;
extern
AVInputFormat
ff_pcm_f64be_demuxer
;
extern
AVOutputFormat
ff_pcm_f64be_muxer
;
extern
AVInputFormat
ff_pcm_f64le_demuxer
;
extern
AVOutputFormat
ff_pcm_f64le_muxer
;
extern
AVInputFormat
ff_pcm_f32be_demuxer
;
extern
AVOutputFormat
ff_pcm_f32be_muxer
;
extern
AVInputFormat
ff_pcm_f32le_demuxer
;
extern
AVOutputFormat
ff_pcm_f32le_muxer
;
extern
AVInputFormat
ff_pcm_s32be_demuxer
;
extern
AVOutputFormat
ff_pcm_s32be_muxer
;
extern
AVInputFormat
ff_pcm_s32le_demuxer
;
extern
AVOutputFormat
ff_pcm_s32le_muxer
;
extern
AVInputFormat
ff_pcm_s24be_demuxer
;
extern
AVOutputFormat
ff_pcm_s24be_muxer
;
extern
AVInputFormat
ff_pcm_s24le_demuxer
;
extern
AVOutputFormat
ff_pcm_s24le_muxer
;
extern
AVInputFormat
ff_pcm_s16be_demuxer
;
extern
AVOutputFormat
ff_pcm_s16be_muxer
;
extern
AVInputFormat
ff_pcm_s16le_demuxer
;
extern
AVOutputFormat
ff_pcm_s16le_muxer
;
extern
AVInputFormat
ff_pcm_s8_demuxer
;
extern
AVOutputFormat
ff_pcm_s8_muxer
;
extern
AVInputFormat
ff_pcm_u32be_demuxer
;
extern
AVOutputFormat
ff_pcm_u32be_muxer
;
extern
AVInputFormat
ff_pcm_u32le_demuxer
;
extern
AVOutputFormat
ff_pcm_u32le_muxer
;
extern
AVInputFormat
ff_pcm_u24be_demuxer
;
extern
AVOutputFormat
ff_pcm_u24be_muxer
;
extern
AVInputFormat
ff_pcm_u24le_demuxer
;
extern
AVOutputFormat
ff_pcm_u24le_muxer
;
extern
AVInputFormat
ff_pcm_u16be_demuxer
;
extern
AVOutputFormat
ff_pcm_u16be_muxer
;
extern
AVInputFormat
ff_pcm_u16le_demuxer
;
extern
AVOutputFormat
ff_pcm_u16le_muxer
;
extern
AVInputFormat
ff_pcm_u8_demuxer
;
extern
AVOutputFormat
ff_pcm_u8_muxer
;
extern
AVInputFormat
ff_pjs_demuxer
;
extern
AVInputFormat
ff_pmp_demuxer
;
extern
AVOutputFormat
ff_psp_muxer
;
extern
AVInputFormat
ff_pva_demuxer
;
extern
AVInputFormat
ff_pvf_demuxer
;
extern
AVInputFormat
ff_qcp_demuxer
;
extern
AVInputFormat
ff_r3d_demuxer
;
extern
AVInputFormat
ff_rawvideo_demuxer
;
extern
AVOutputFormat
ff_rawvideo_muxer
;
extern
AVInputFormat
ff_realtext_demuxer
;
extern
AVInputFormat
ff_redspark_demuxer
;
extern
AVInputFormat
ff_rl2_demuxer
;
extern
AVInputFormat
ff_rm_demuxer
;
extern
AVOutputFormat
ff_rm_muxer
;
extern
AVInputFormat
ff_roq_demuxer
;
extern
AVOutputFormat
ff_roq_muxer
;
extern
AVInputFormat
ff_rpl_demuxer
;
extern
AVInputFormat
ff_rsd_demuxer
;
extern
AVInputFormat
ff_rso_demuxer
;
extern
AVOutputFormat
ff_rso_muxer
;
extern
AVInputFormat
ff_rtp_demuxer
;
extern
AVOutputFormat
ff_rtp_muxer
;
extern
AVOutputFormat
ff_rtp_mpegts_muxer
;
extern
AVInputFormat
ff_rtsp_demuxer
;
extern
AVOutputFormat
ff_rtsp_muxer
;
extern
AVInputFormat
ff_s337m_demuxer
;
extern
AVInputFormat
ff_sami_demuxer
;
extern
AVInputFormat
ff_sap_demuxer
;
extern
AVOutputFormat
ff_sap_muxer
;
extern
AVInputFormat
ff_sbg_demuxer
;
extern
AVInputFormat
ff_scc_demuxer
;
extern
AVOutputFormat
ff_scc_muxer
;
extern
AVInputFormat
ff_sdp_demuxer
;
extern
AVInputFormat
ff_sdr2_demuxer
;
extern
AVInputFormat
ff_sds_demuxer
;
extern
AVInputFormat
ff_sdx_demuxer
;
extern
AVInputFormat
ff_segafilm_demuxer
;
extern
AVOutputFormat
ff_segment_muxer
;
extern
AVOutputFormat
ff_stream_segment_muxer
;
extern
AVInputFormat
ff_shorten_demuxer
;
extern
AVInputFormat
ff_siff_demuxer
;
extern
AVOutputFormat
ff_singlejpeg_muxer
;
extern
AVInputFormat
ff_sln_demuxer
;
extern
AVInputFormat
ff_smacker_demuxer
;
extern
AVInputFormat
ff_smjpeg_demuxer
;
extern
AVOutputFormat
ff_smjpeg_muxer
;
extern
AVOutputFormat
ff_smoothstreaming_muxer
;
extern
AVInputFormat
ff_smush_demuxer
;
extern
AVInputFormat
ff_sol_demuxer
;
extern
AVInputFormat
ff_sox_demuxer
;
extern
AVOutputFormat
ff_sox_muxer
;
extern
AVOutputFormat
ff_spx_muxer
;
extern
AVInputFormat
ff_spdif_demuxer
;
extern
AVOutputFormat
ff_spdif_muxer
;
extern
AVInputFormat
ff_srt_demuxer
;
extern
AVOutputFormat
ff_srt_muxer
;
extern
AVInputFormat
ff_str_demuxer
;
extern
AVInputFormat
ff_stl_demuxer
;
extern
AVInputFormat
ff_subviewer1_demuxer
;
extern
AVInputFormat
ff_subviewer_demuxer
;
extern
AVInputFormat
ff_sup_demuxer
;
extern
AVOutputFormat
ff_sup_muxer
;
extern
AVInputFormat
ff_svag_demuxer
;
extern
AVInputFormat
ff_swf_demuxer
;
extern
AVOutputFormat
ff_swf_muxer
;
extern
AVInputFormat
ff_tak_demuxer
;
extern
AVOutputFormat
ff_tee_muxer
;
extern
AVInputFormat
ff_tedcaptions_demuxer
;
extern
AVOutputFormat
ff_tg2_muxer
;
extern
AVOutputFormat
ff_tgp_muxer
;
extern
AVInputFormat
ff_thp_demuxer
;
extern
AVInputFormat
ff_threedostr_demuxer
;
extern
AVInputFormat
ff_tiertexseq_demuxer
;
extern
AVOutputFormat
ff_mkvtimestamp_v2_muxer
;
extern
AVInputFormat
ff_tmv_demuxer
;
extern
AVInputFormat
ff_truehd_demuxer
;
extern
AVOutputFormat
ff_truehd_muxer
;
extern
AVInputFormat
ff_tta_demuxer
;
extern
AVOutputFormat
ff_tta_muxer
;
extern
AVInputFormat
ff_txd_demuxer
;
extern
AVInputFormat
ff_tty_demuxer
;
extern
AVInputFormat
ff_ty_demuxer
;
extern
AVOutputFormat
ff_uncodedframecrc_muxer
;
extern
AVInputFormat
ff_v210_demuxer
;
extern
AVInputFormat
ff_v210x_demuxer
;
extern
AVInputFormat
ff_vag_demuxer
;
extern
AVInputFormat
ff_vc1_demuxer
;
extern
AVOutputFormat
ff_vc1_muxer
;
extern
AVInputFormat
ff_vc1t_demuxer
;
extern
AVOutputFormat
ff_vc1t_muxer
;
extern
AVInputFormat
ff_vivo_demuxer
;
extern
AVInputFormat
ff_vmd_demuxer
;
extern
AVInputFormat
ff_vobsub_demuxer
;
extern
AVInputFormat
ff_voc_demuxer
;
extern
AVOutputFormat
ff_voc_muxer
;
extern
AVInputFormat
ff_vpk_demuxer
;
extern
AVInputFormat
ff_vplayer_demuxer
;
extern
AVInputFormat
ff_vqf_demuxer
;
extern
AVInputFormat
ff_w64_demuxer
;
extern
AVOutputFormat
ff_w64_muxer
;
extern
AVInputFormat
ff_wav_demuxer
;
extern
AVOutputFormat
ff_wav_muxer
;
extern
AVInputFormat
ff_wc3_demuxer
;
extern
AVOutputFormat
ff_webm_muxer
;
extern
AVInputFormat
ff_webm_dash_manifest_demuxer
;
extern
AVOutputFormat
ff_webm_dash_manifest_muxer
;
extern
AVOutputFormat
ff_webm_chunk_muxer
;
extern
AVOutputFormat
ff_webp_muxer
;
extern
AVInputFormat
ff_webvtt_demuxer
;
extern
AVOutputFormat
ff_webvtt_muxer
;
extern
AVInputFormat
ff_wsaud_demuxer
;
extern
AVInputFormat
ff_wsd_demuxer
;
extern
AVInputFormat
ff_wsvqa_demuxer
;
extern
AVInputFormat
ff_wtv_demuxer
;
extern
AVOutputFormat
ff_wtv_muxer
;
extern
AVInputFormat
ff_wve_demuxer
;
extern
AVInputFormat
ff_wv_demuxer
;
extern
AVOutputFormat
ff_wv_muxer
;
extern
AVInputFormat
ff_xa_demuxer
;
extern
AVInputFormat
ff_xbin_demuxer
;
extern
AVInputFormat
ff_xmv_demuxer
;
extern
AVInputFormat
ff_xvag_demuxer
;
extern
AVInputFormat
ff_xwma_demuxer
;
extern
AVInputFormat
ff_yop_demuxer
;
extern
AVInputFormat
ff_yuv4mpegpipe_demuxer
;
extern
AVOutputFormat
ff_yuv4mpegpipe_muxer
;
/* image demuxers */
extern
AVInputFormat
ff_image_bmp_pipe_demuxer
;
extern
AVInputFormat
ff_image_dds_pipe_demuxer
;
extern
AVInputFormat
ff_image_dpx_pipe_demuxer
;
extern
AVInputFormat
ff_image_exr_pipe_demuxer
;
extern
AVInputFormat
ff_image_j2k_pipe_demuxer
;
extern
AVInputFormat
ff_image_jpeg_pipe_demuxer
;
extern
AVInputFormat
ff_image_jpegls_pipe_demuxer
;
extern
AVInputFormat
ff_image_pam_pipe_demuxer
;
extern
AVInputFormat
ff_image_pbm_pipe_demuxer
;
extern
AVInputFormat
ff_image_pcx_pipe_demuxer
;
extern
AVInputFormat
ff_image_pgmyuv_pipe_demuxer
;
extern
AVInputFormat
ff_image_pgm_pipe_demuxer
;
extern
AVInputFormat
ff_image_pictor_pipe_demuxer
;
extern
AVInputFormat
ff_image_png_pipe_demuxer
;
extern
AVInputFormat
ff_image_ppm_pipe_demuxer
;
extern
AVInputFormat
ff_image_psd_pipe_demuxer
;
extern
AVInputFormat
ff_image_qdraw_pipe_demuxer
;
extern
AVInputFormat
ff_image_sgi_pipe_demuxer
;
extern
AVInputFormat
ff_image_svg_pipe_demuxer
;
extern
AVInputFormat
ff_image_sunrast_pipe_demuxer
;
extern
AVInputFormat
ff_image_tiff_pipe_demuxer
;
extern
AVInputFormat
ff_image_webp_pipe_demuxer
;
extern
AVInputFormat
ff_image_xpm_pipe_demuxer
;
#define REGISTER_DEMUXER(X, x) \
/* external libraries */
{ \
extern
AVOutputFormat
ff_chromaprint_muxer
;
extern AVInputFormat ff_##x##_demuxer; \
extern
AVInputFormat
ff_libgme_demuxer
;
if (CONFIG_##X##_DEMUXER) \
extern
AVInputFormat
ff_libmodplug_demuxer
;
av_register_input_format(&ff_##x##_demuxer); \
extern
AVInputFormat
ff_libopenmpt_demuxer
;
}
#define REGISTER_MUXDEMUX(X, x) REGISTER_MUXER(X, x); REGISTER_DEMUXER(X, x)
#include "libavformat/muxer_list.c"
#include "libavformat/demuxer_list.c"
static
void
register_all
(
void
)
const
AVOutputFormat
*
av_muxer_iterate
(
void
**
opaque
)
{
{
avcodec_register_all
();
uintptr_t
i
=
(
uintptr_t
)
*
opaque
;
const
AVOutputFormat
*
f
=
muxer_list
[
i
];
if
(
f
)
*
opaque
=
(
void
*
)(
i
+
1
);
return
f
;
}
/* (de)muxers */
const
AVInputFormat
*
av_demuxer_iterate
(
void
**
opaque
){
REGISTER_MUXER
(
A64
,
a64
);
uintptr_t
i
=
(
uintptr_t
)
*
opaque
;
REGISTER_DEMUXER
(
AA
,
aa
);
const
AVInputFormat
*
f
=
demuxer_list
[
i
];
REGISTER_DEMUXER
(
AAC
,
aac
);
REGISTER_MUXDEMUX
(
AC3
,
ac3
);
REGISTER_DEMUXER
(
ACM
,
acm
);
REGISTER_DEMUXER
(
ACT
,
act
);
REGISTER_DEMUXER
(
ADF
,
adf
);
REGISTER_DEMUXER
(
ADP
,
adp
);
REGISTER_DEMUXER
(
ADS
,
ads
);
REGISTER_MUXER
(
ADTS
,
adts
);
REGISTER_MUXDEMUX
(
ADX
,
adx
);
REGISTER_DEMUXER
(
AEA
,
aea
);
REGISTER_DEMUXER
(
AFC
,
afc
);
REGISTER_MUXDEMUX
(
AIFF
,
aiff
);
REGISTER_DEMUXER
(
AIX
,
aix
);
REGISTER_MUXDEMUX
(
AMR
,
amr
);
REGISTER_DEMUXER
(
AMRNB
,
amrnb
);
REGISTER_DEMUXER
(
AMRWB
,
amrwb
);
REGISTER_DEMUXER
(
ANM
,
anm
);
REGISTER_DEMUXER
(
APC
,
apc
);
REGISTER_DEMUXER
(
APE
,
ape
);
REGISTER_MUXDEMUX
(
APNG
,
apng
);
REGISTER_MUXDEMUX
(
APTX
,
aptx
);
REGISTER_DEMUXER
(
AQTITLE
,
aqtitle
);
REGISTER_MUXDEMUX
(
ASF
,
asf
);
REGISTER_DEMUXER
(
ASF_O
,
asf_o
);
REGISTER_MUXDEMUX
(
ASS
,
ass
);
REGISTER_MUXDEMUX
(
AST
,
ast
);
REGISTER_MUXER
(
ASF_STREAM
,
asf_stream
);
REGISTER_MUXDEMUX
(
AU
,
au
);
REGISTER_MUXDEMUX
(
AVI
,
avi
);
REGISTER_DEMUXER
(
AVISYNTH
,
avisynth
);
REGISTER_MUXER
(
AVM2
,
avm2
);
REGISTER_DEMUXER
(
AVR
,
avr
);
REGISTER_DEMUXER
(
AVS
,
avs
);
REGISTER_DEMUXER
(
BETHSOFTVID
,
bethsoftvid
);
REGISTER_DEMUXER
(
BFI
,
bfi
);
REGISTER_DEMUXER
(
BINTEXT
,
bintext
);
REGISTER_DEMUXER
(
BINK
,
bink
);
REGISTER_MUXDEMUX
(
BIT
,
bit
);
REGISTER_DEMUXER
(
BMV
,
bmv
);
REGISTER_DEMUXER
(
BFSTM
,
bfstm
);
REGISTER_DEMUXER
(
BRSTM
,
brstm
);
REGISTER_DEMUXER
(
BOA
,
boa
);
REGISTER_DEMUXER
(
C93
,
c93
);
REGISTER_MUXDEMUX
(
CAF
,
caf
);
REGISTER_MUXDEMUX
(
CAVSVIDEO
,
cavsvideo
);
REGISTER_DEMUXER
(
CDG
,
cdg
);
REGISTER_DEMUXER
(
CDXL
,
cdxl
);
REGISTER_DEMUXER
(
CINE
,
cine
);
REGISTER_DEMUXER
(
CONCAT
,
concat
);
REGISTER_MUXER
(
CRC
,
crc
);
REGISTER_MUXDEMUX
(
DASH
,
dash
);
REGISTER_MUXDEMUX
(
DATA
,
data
);
REGISTER_MUXDEMUX
(
DAUD
,
daud
);
REGISTER_DEMUXER
(
DCSTR
,
dcstr
);
REGISTER_DEMUXER
(
DFA
,
dfa
);
REGISTER_MUXDEMUX
(
DIRAC
,
dirac
);
REGISTER_MUXDEMUX
(
DNXHD
,
dnxhd
);
REGISTER_DEMUXER
(
DSF
,
dsf
);
REGISTER_DEMUXER
(
DSICIN
,
dsicin
);
REGISTER_DEMUXER
(
DSS
,
dss
);
REGISTER_MUXDEMUX
(
DTS
,
dts
);
REGISTER_DEMUXER
(
DTSHD
,
dtshd
);
REGISTER_MUXDEMUX
(
DV
,
dv
);
REGISTER_DEMUXER
(
DVBSUB
,
dvbsub
);
REGISTER_DEMUXER
(
DVBTXT
,
dvbtxt
);
REGISTER_DEMUXER
(
DXA
,
dxa
);
REGISTER_DEMUXER
(
EA
,
ea
);
REGISTER_DEMUXER
(
EA_CDATA
,
ea_cdata
);
REGISTER_MUXDEMUX
(
EAC3
,
eac3
);
REGISTER_DEMUXER
(
EPAF
,
epaf
);
REGISTER_MUXER
(
F4V
,
f4v
);
REGISTER_MUXDEMUX
(
FFMETADATA
,
ffmetadata
);
REGISTER_MUXER
(
FIFO
,
fifo
);
REGISTER_MUXER
(
FIFO
,
fifo_test
);
REGISTER_MUXDEMUX
(
FILMSTRIP
,
filmstrip
);
REGISTER_MUXDEMUX
(
FITS
,
fits
);
REGISTER_MUXDEMUX
(
FLAC
,
flac
);
REGISTER_DEMUXER
(
FLIC
,
flic
);
REGISTER_MUXDEMUX
(
FLV
,
flv
);
REGISTER_DEMUXER
(
LIVE_FLV
,
live_flv
);
REGISTER_DEMUXER
(
FOURXM
,
fourxm
);
REGISTER_MUXER
(
FRAMECRC
,
framecrc
);
REGISTER_MUXER
(
FRAMEHASH
,
framehash
);
REGISTER_MUXER
(
FRAMEMD5
,
framemd5
);
REGISTER_DEMUXER
(
FRM
,
frm
);
REGISTER_DEMUXER
(
FSB
,
fsb
);
REGISTER_MUXDEMUX
(
G722
,
g722
);
REGISTER_MUXDEMUX
(
G723_1
,
g723_1
);
REGISTER_MUXDEMUX
(
G726
,
g726
);
REGISTER_MUXDEMUX
(
G726LE
,
g726le
);
REGISTER_DEMUXER
(
G729
,
g729
);
REGISTER_DEMUXER
(
GDV
,
gdv
);
REGISTER_DEMUXER
(
GENH
,
genh
);
REGISTER_MUXDEMUX
(
GIF
,
gif
);
REGISTER_MUXDEMUX
(
GSM
,
gsm
);
REGISTER_MUXDEMUX
(
GXF
,
gxf
);
REGISTER_MUXDEMUX
(
H261
,
h261
);
REGISTER_MUXDEMUX
(
H263
,
h263
);
REGISTER_MUXDEMUX
(
H264
,
h264
);
REGISTER_MUXER
(
HASH
,
hash
);
REGISTER_MUXER
(
HDS
,
hds
);
REGISTER_MUXDEMUX
(
HEVC
,
hevc
);
REGISTER_MUXDEMUX
(
HLS
,
hls
);
REGISTER_DEMUXER
(
HNM
,
hnm
);
REGISTER_MUXDEMUX
(
ICO
,
ico
);
REGISTER_DEMUXER
(
IDCIN
,
idcin
);
REGISTER_DEMUXER
(
IDF
,
idf
);
REGISTER_DEMUXER
(
IFF
,
iff
);
REGISTER_MUXDEMUX
(
ILBC
,
ilbc
);
REGISTER_MUXDEMUX
(
IMAGE2
,
image2
);
REGISTER_MUXDEMUX
(
IMAGE2PIPE
,
image2pipe
);
REGISTER_DEMUXER
(
IMAGE2_ALIAS_PIX
,
image2_alias_pix
);
REGISTER_DEMUXER
(
IMAGE2_BRENDER_PIX
,
image2_brender_pix
);
REGISTER_DEMUXER
(
INGENIENT
,
ingenient
);
REGISTER_DEMUXER
(
IPMOVIE
,
ipmovie
);
REGISTER_MUXER
(
IPOD
,
ipod
);
REGISTER_MUXDEMUX
(
IRCAM
,
ircam
);
REGISTER_MUXER
(
ISMV
,
ismv
);
REGISTER_DEMUXER
(
ISS
,
iss
);
REGISTER_DEMUXER
(
IV8
,
iv8
);
REGISTER_MUXDEMUX
(
IVF
,
ivf
);
REGISTER_DEMUXER
(
IVR
,
ivr
);
REGISTER_MUXDEMUX
(
JACOSUB
,
jacosub
);
REGISTER_DEMUXER
(
JV
,
jv
);
REGISTER_MUXER
(
LATM
,
latm
);
REGISTER_DEMUXER
(
LMLM4
,
lmlm4
);
REGISTER_DEMUXER
(
LOAS
,
loas
);
REGISTER_MUXDEMUX
(
LRC
,
lrc
);
REGISTER_DEMUXER
(
LVF
,
lvf
);
REGISTER_DEMUXER
(
LXF
,
lxf
);
REGISTER_MUXDEMUX
(
M4V
,
m4v
);
REGISTER_MUXER
(
MD5
,
md5
);
REGISTER_MUXDEMUX
(
MATROSKA
,
matroska
);
REGISTER_MUXER
(
MATROSKA_AUDIO
,
matroska_audio
);
REGISTER_DEMUXER
(
MGSTS
,
mgsts
);
REGISTER_MUXDEMUX
(
MICRODVD
,
microdvd
);
REGISTER_MUXDEMUX
(
MJPEG
,
mjpeg
);
REGISTER_DEMUXER
(
MJPEG_2000
,
mjpeg_2000
);
REGISTER_MUXDEMUX
(
MLP
,
mlp
);
REGISTER_DEMUXER
(
MLV
,
mlv
);
REGISTER_DEMUXER
(
MM
,
mm
);
REGISTER_MUXDEMUX
(
MMF
,
mmf
);
REGISTER_MUXDEMUX
(
MOV
,
mov
);
REGISTER_MUXER
(
MP2
,
mp2
);
REGISTER_MUXDEMUX
(
MP3
,
mp3
);
REGISTER_MUXER
(
MP4
,
mp4
);
REGISTER_DEMUXER
(
MPC
,
mpc
);
REGISTER_DEMUXER
(
MPC8
,
mpc8
);
REGISTER_MUXER
(
MPEG1SYSTEM
,
mpeg1system
);
REGISTER_MUXER
(
MPEG1VCD
,
mpeg1vcd
);
REGISTER_MUXER
(
MPEG1VIDEO
,
mpeg1video
);
REGISTER_MUXER
(
MPEG2DVD
,
mpeg2dvd
);
REGISTER_MUXER
(
MPEG2SVCD
,
mpeg2svcd
);
REGISTER_MUXER
(
MPEG2VIDEO
,
mpeg2video
);
REGISTER_MUXER
(
MPEG2VOB
,
mpeg2vob
);
REGISTER_DEMUXER
(
MPEGPS
,
mpegps
);
REGISTER_MUXDEMUX
(
MPEGTS
,
mpegts
);
REGISTER_DEMUXER
(
MPEGTSRAW
,
mpegtsraw
);
REGISTER_DEMUXER
(
MPEGVIDEO
,
mpegvideo
);
REGISTER_MUXDEMUX
(
MPJPEG
,
mpjpeg
);
REGISTER_DEMUXER
(
MPL2
,
mpl2
);
REGISTER_DEMUXER
(
MPSUB
,
mpsub
);
REGISTER_DEMUXER
(
MSF
,
msf
);
REGISTER_DEMUXER
(
MSNWC_TCP
,
msnwc_tcp
);
REGISTER_DEMUXER
(
MTAF
,
mtaf
);
REGISTER_DEMUXER
(
MTV
,
mtv
);
REGISTER_DEMUXER
(
MUSX
,
musx
);
REGISTER_DEMUXER
(
MV
,
mv
);
REGISTER_DEMUXER
(
MVI
,
mvi
);
REGISTER_MUXDEMUX
(
MXF
,
mxf
);
REGISTER_MUXER
(
MXF_D10
,
mxf_d10
);
REGISTER_MUXER
(
MXF_OPATOM
,
mxf_opatom
);
REGISTER_DEMUXER
(
MXG
,
mxg
);
REGISTER_DEMUXER
(
NC
,
nc
);
REGISTER_DEMUXER
(
NISTSPHERE
,
nistsphere
);
REGISTER_DEMUXER
(
NSP
,
nsp
);
REGISTER_DEMUXER
(
NSV
,
nsv
);
REGISTER_MUXER
(
NULL
,
null
);
REGISTER_MUXDEMUX
(
NUT
,
nut
);
REGISTER_DEMUXER
(
NUV
,
nuv
);
REGISTER_MUXER
(
OGA
,
oga
);
REGISTER_MUXDEMUX
(
OGG
,
ogg
);
REGISTER_MUXER
(
OGV
,
ogv
);
REGISTER_MUXDEMUX
(
OMA
,
oma
);
REGISTER_MUXER
(
OPUS
,
opus
);
REGISTER_DEMUXER
(
PAF
,
paf
);
REGISTER_MUXDEMUX
(
PCM_ALAW
,
pcm_alaw
);
REGISTER_MUXDEMUX
(
PCM_MULAW
,
pcm_mulaw
);
REGISTER_MUXDEMUX
(
PCM_F64BE
,
pcm_f64be
);
REGISTER_MUXDEMUX
(
PCM_F64LE
,
pcm_f64le
);
REGISTER_MUXDEMUX
(
PCM_F32BE
,
pcm_f32be
);
REGISTER_MUXDEMUX
(
PCM_F32LE
,
pcm_f32le
);
REGISTER_MUXDEMUX
(
PCM_S32BE
,
pcm_s32be
);
REGISTER_MUXDEMUX
(
PCM_S32LE
,
pcm_s32le
);
REGISTER_MUXDEMUX
(
PCM_S24BE
,
pcm_s24be
);
REGISTER_MUXDEMUX
(
PCM_S24LE
,
pcm_s24le
);
REGISTER_MUXDEMUX
(
PCM_S16BE
,
pcm_s16be
);
REGISTER_MUXDEMUX
(
PCM_S16LE
,
pcm_s16le
);
REGISTER_MUXDEMUX
(
PCM_S8
,
pcm_s8
);
REGISTER_MUXDEMUX
(
PCM_U32BE
,
pcm_u32be
);
REGISTER_MUXDEMUX
(
PCM_U32LE
,
pcm_u32le
);
REGISTER_MUXDEMUX
(
PCM_U24BE
,
pcm_u24be
);
REGISTER_MUXDEMUX
(
PCM_U24LE
,
pcm_u24le
);
REGISTER_MUXDEMUX
(
PCM_U16BE
,
pcm_u16be
);
REGISTER_MUXDEMUX
(
PCM_U16LE
,
pcm_u16le
);
REGISTER_MUXDEMUX
(
PCM_U8
,
pcm_u8
);
REGISTER_DEMUXER
(
PJS
,
pjs
);
REGISTER_DEMUXER
(
PMP
,
pmp
);
REGISTER_MUXER
(
PSP
,
psp
);
REGISTER_DEMUXER
(
PVA
,
pva
);
REGISTER_DEMUXER
(
PVF
,
pvf
);
REGISTER_DEMUXER
(
QCP
,
qcp
);
REGISTER_DEMUXER
(
R3D
,
r3d
);
REGISTER_MUXDEMUX
(
RAWVIDEO
,
rawvideo
);
REGISTER_DEMUXER
(
REALTEXT
,
realtext
);
REGISTER_DEMUXER
(
REDSPARK
,
redspark
);
REGISTER_DEMUXER
(
RL2
,
rl2
);
REGISTER_MUXDEMUX
(
RM
,
rm
);
REGISTER_MUXDEMUX
(
ROQ
,
roq
);
REGISTER_DEMUXER
(
RPL
,
rpl
);
REGISTER_DEMUXER
(
RSD
,
rsd
);
REGISTER_MUXDEMUX
(
RSO
,
rso
);
REGISTER_MUXDEMUX
(
RTP
,
rtp
);
REGISTER_MUXER
(
RTP_MPEGTS
,
rtp_mpegts
);
REGISTER_MUXDEMUX
(
RTSP
,
rtsp
);
REGISTER_DEMUXER
(
S337M
,
s337m
);
REGISTER_DEMUXER
(
SAMI
,
sami
);
REGISTER_MUXDEMUX
(
SAP
,
sap
);
REGISTER_DEMUXER
(
SBG
,
sbg
);
REGISTER_MUXDEMUX
(
SCC
,
scc
);
REGISTER_DEMUXER
(
SDP
,
sdp
);
REGISTER_DEMUXER
(
SDR2
,
sdr2
);
REGISTER_DEMUXER
(
SDS
,
sds
);
REGISTER_DEMUXER
(
SDX
,
sdx
);
REGISTER_DEMUXER
(
SEGAFILM
,
segafilm
);
REGISTER_MUXER
(
SEGMENT
,
segment
);
REGISTER_MUXER
(
SEGMENT
,
stream_segment
);
REGISTER_DEMUXER
(
SHORTEN
,
shorten
);
REGISTER_DEMUXER
(
SIFF
,
siff
);
REGISTER_MUXER
(
SINGLEJPEG
,
singlejpeg
);
REGISTER_DEMUXER
(
SLN
,
sln
);
REGISTER_DEMUXER
(
SMACKER
,
smacker
);
REGISTER_MUXDEMUX
(
SMJPEG
,
smjpeg
);
REGISTER_MUXER
(
SMOOTHSTREAMING
,
smoothstreaming
);
REGISTER_DEMUXER
(
SMUSH
,
smush
);
REGISTER_DEMUXER
(
SOL
,
sol
);
REGISTER_MUXDEMUX
(
SOX
,
sox
);
REGISTER_MUXER
(
SPX
,
spx
);
REGISTER_MUXDEMUX
(
SPDIF
,
spdif
);
REGISTER_MUXDEMUX
(
SRT
,
srt
);
REGISTER_DEMUXER
(
STR
,
str
);
REGISTER_DEMUXER
(
STL
,
stl
);
REGISTER_DEMUXER
(
SUBVIEWER1
,
subviewer1
);
REGISTER_DEMUXER
(
SUBVIEWER
,
subviewer
);
REGISTER_MUXDEMUX
(
SUP
,
sup
);
REGISTER_DEMUXER
(
SVAG
,
svag
);
REGISTER_MUXDEMUX
(
SWF
,
swf
);
REGISTER_DEMUXER
(
TAK
,
tak
);
REGISTER_MUXER
(
TEE
,
tee
);
REGISTER_DEMUXER
(
TEDCAPTIONS
,
tedcaptions
);
REGISTER_MUXER
(
TG2
,
tg2
);
REGISTER_MUXER
(
TGP
,
tgp
);
REGISTER_DEMUXER
(
THP
,
thp
);
REGISTER_DEMUXER
(
THREEDOSTR
,
threedostr
);
REGISTER_DEMUXER
(
TIERTEXSEQ
,
tiertexseq
);
REGISTER_MUXER
(
MKVTIMESTAMP_V2
,
mkvtimestamp_v2
);
REGISTER_DEMUXER
(
TMV
,
tmv
);
REGISTER_MUXDEMUX
(
TRUEHD
,
truehd
);
REGISTER_MUXDEMUX
(
TTA
,
tta
);
REGISTER_DEMUXER
(
TXD
,
txd
);
REGISTER_DEMUXER
(
TTY
,
tty
);
REGISTER_DEMUXER
(
TY
,
ty
);
REGISTER_MUXER
(
UNCODEDFRAMECRC
,
uncodedframecrc
);
REGISTER_DEMUXER
(
V210
,
v210
);
REGISTER_DEMUXER
(
V210X
,
v210x
);
REGISTER_DEMUXER
(
VAG
,
vag
);
REGISTER_MUXDEMUX
(
VC1
,
vc1
);
REGISTER_MUXDEMUX
(
VC1T
,
vc1t
);
REGISTER_DEMUXER
(
VIVO
,
vivo
);
REGISTER_DEMUXER
(
VMD
,
vmd
);
REGISTER_DEMUXER
(
VOBSUB
,
vobsub
);
REGISTER_MUXDEMUX
(
VOC
,
voc
);
REGISTER_DEMUXER
(
VPK
,
vpk
);
REGISTER_DEMUXER
(
VPLAYER
,
vplayer
);
REGISTER_DEMUXER
(
VQF
,
vqf
);
REGISTER_MUXDEMUX
(
W64
,
w64
);
REGISTER_MUXDEMUX
(
WAV
,
wav
);
REGISTER_DEMUXER
(
WC3
,
wc3
);
REGISTER_MUXER
(
WEBM
,
webm
);
REGISTER_MUXDEMUX
(
WEBM_DASH_MANIFEST
,
webm_dash_manifest
);
REGISTER_MUXER
(
WEBM_CHUNK
,
webm_chunk
);
REGISTER_MUXER
(
WEBP
,
webp
);
REGISTER_MUXDEMUX
(
WEBVTT
,
webvtt
);
REGISTER_DEMUXER
(
WSAUD
,
wsaud
);
REGISTER_DEMUXER
(
WSD
,
wsd
);
REGISTER_DEMUXER
(
WSVQA
,
wsvqa
);
REGISTER_MUXDEMUX
(
WTV
,
wtv
);
REGISTER_DEMUXER
(
WVE
,
wve
);
REGISTER_MUXDEMUX
(
WV
,
wv
);
REGISTER_DEMUXER
(
XA
,
xa
);
REGISTER_DEMUXER
(
XBIN
,
xbin
);
REGISTER_DEMUXER
(
XMV
,
xmv
);
REGISTER_DEMUXER
(
XVAG
,
xvag
);
REGISTER_DEMUXER
(
XWMA
,
xwma
);
REGISTER_DEMUXER
(
YOP
,
yop
);
REGISTER_MUXDEMUX
(
YUV4MPEGPIPE
,
yuv4mpegpipe
);
/* image demuxers */
if
(
f
)
REGISTER_DEMUXER
(
IMAGE_BMP_PIPE
,
image_bmp_pipe
);
*
opaque
=
(
void
*
)(
i
+
1
);
REGISTER_DEMUXER
(
IMAGE_DDS_PIPE
,
image_dds_pipe
);
return
f
;
REGISTER_DEMUXER
(
IMAGE_DPX_PIPE
,
image_dpx_pipe
);
}
REGISTER_DEMUXER
(
IMAGE_EXR_PIPE
,
image_exr_pipe
);
REGISTER_DEMUXER
(
IMAGE_J2K_PIPE
,
image_j2k_pipe
);
#if FF_API_NEXT
REGISTER_DEMUXER
(
IMAGE_JPEG_PIPE
,
image_jpeg_pipe
);
FF_DISABLE_DEPRECATION_WARNINGS
REGISTER_DEMUXER
(
IMAGE_JPEGLS_PIPE
,
image_jpegls_pipe
);
static
AVOnce
av_format_next_init
=
AV_ONCE_INIT
;
REGISTER_DEMUXER
(
IMAGE_PAM_PIPE
,
image_pam_pipe
);
REGISTER_DEMUXER
(
IMAGE_PBM_PIPE
,
image_pbm_pipe
);
REGISTER_DEMUXER
(
IMAGE_PCX_PIPE
,
image_pcx_pipe
);
REGISTER_DEMUXER
(
IMAGE_PGMYUV_PIPE
,
image_pgmyuv_pipe
);
REGISTER_DEMUXER
(
IMAGE_PGM_PIPE
,
image_pgm_pipe
);
REGISTER_DEMUXER
(
IMAGE_PICTOR_PIPE
,
image_pictor_pipe
);
REGISTER_DEMUXER
(
IMAGE_PNG_PIPE
,
image_png_pipe
);
REGISTER_DEMUXER
(
IMAGE_PPM_PIPE
,
image_ppm_pipe
);
REGISTER_DEMUXER
(
IMAGE_PSD_PIPE
,
image_psd_pipe
);
REGISTER_DEMUXER
(
IMAGE_QDRAW_PIPE
,
image_qdraw_pipe
);
REGISTER_DEMUXER
(
IMAGE_SGI_PIPE
,
image_sgi_pipe
);
REGISTER_DEMUXER
(
IMAGE_SVG_PIPE
,
image_svg_pipe
);
REGISTER_DEMUXER
(
IMAGE_SUNRAST_PIPE
,
image_sunrast_pipe
);
REGISTER_DEMUXER
(
IMAGE_TIFF_PIPE
,
image_tiff_pipe
);
REGISTER_DEMUXER
(
IMAGE_WEBP_PIPE
,
image_webp_pipe
);
REGISTER_DEMUXER
(
IMAGE_XPM_PIPE
,
image_xpm_pipe
);
/* external libraries */
static
void
av_format_init_next
(
void
)
REGISTER_MUXER
(
CHROMAPRINT
,
chromaprint
);
{
REGISTER_DEMUXER
(
LIBGME
,
libgme
);
AVOutputFormat
*
prevout
=
NULL
,
*
out
;
REGISTER_DEMUXER
(
LIBMODPLUG
,
libmodplug
);
AVInputFormat
*
previn
=
NULL
,
*
in
;
REGISTER_DEMUXER
(
LIBOPENMPT
,
libopenmpt
);
void
*
i
=
0
;
while
((
out
=
(
AVOutputFormat
*
)
av_muxer_iterate
(
&
i
)))
{
if
(
prevout
)
prevout
->
next
=
out
;
prevout
=
out
;
}
i
=
0
;
while
((
in
=
(
AVInputFormat
*
)
av_demuxer_iterate
(
&
i
)))
{
if
(
previn
)
previn
->
next
=
in
;
previn
=
in
;
}
}
AVInputFormat
*
av_iformat_next
(
const
AVInputFormat
*
f
)
{
ff_thread_once
(
&
av_format_next_init
,
av_format_init_next
);
if
(
f
)
return
f
->
next
;
else
return
demuxer_list
[
0
];
}
AVOutputFormat
*
av_oformat_next
(
const
AVOutputFormat
*
f
)
{
ff_thread_once
(
&
av_format_next_init
,
av_format_init_next
);
if
(
f
)
return
f
->
next
;
else
return
muxer_list
[
0
];
}
}
void
av_register_all
(
void
)
void
av_register_all
(
void
)
{
{
static
AVOnce
control
=
AV_ONCE_INIT
;
ff_thread_once
(
&
av_format_next_init
,
av_format_init_next
);
}
ff_thread_once
(
&
control
,
register_all
);
void
av_register_input_format
(
AVInputFormat
*
format
)
{
ff_thread_once
(
&
av_format_next_init
,
av_format_init_next
);
}
void
av_register_output_format
(
AVOutputFormat
*
format
)
{
ff_thread_once
(
&
av_format_next_init
,
av_format_init_next
);
}
}
FF_ENABLE_DEPRECATION_WARNINGS
#endif
libavformat/avformat.h
View file @
0694d870
...
@@ -2011,6 +2011,7 @@ const char *avformat_configuration(void);
...
@@ -2011,6 +2011,7 @@ const char *avformat_configuration(void);
*/
*/
const
char
*
avformat_license
(
void
);
const
char
*
avformat_license
(
void
);
#if FF_API_NEXT
/**
/**
* Initialize libavformat and register all the muxers, demuxers and
* Initialize libavformat and register all the muxers, demuxers and
* protocols. If you do not call this function, then you can select
* protocols. If you do not call this function, then you can select
...
@@ -2019,10 +2020,14 @@ const char *avformat_license(void);
...
@@ -2019,10 +2020,14 @@ const char *avformat_license(void);
* @see av_register_input_format()
* @see av_register_input_format()
* @see av_register_output_format()
* @see av_register_output_format()
*/
*/
attribute_deprecated
void
av_register_all
(
void
);
void
av_register_all
(
void
);
attribute_deprecated
void
av_register_input_format
(
AVInputFormat
*
format
);
void
av_register_input_format
(
AVInputFormat
*
format
);
attribute_deprecated
void
av_register_output_format
(
AVOutputFormat
*
format
);
void
av_register_output_format
(
AVOutputFormat
*
format
);
#endif
/**
/**
* Do global initialization of network libraries. This is optional,
* Do global initialization of network libraries. This is optional,
...
@@ -2046,11 +2051,13 @@ int avformat_network_init(void);
...
@@ -2046,11 +2051,13 @@ int avformat_network_init(void);
*/
*/
int
avformat_network_deinit
(
void
);
int
avformat_network_deinit
(
void
);
#if FF_API_NEXT
/**
/**
* If f is NULL, returns the first registered input format,
* If f is NULL, returns the first registered input format,
* if f is non-NULL, returns the next registered input format after f
* if f is non-NULL, returns the next registered input format after f
* or NULL if f is the last one.
* or NULL if f is the last one.
*/
*/
attribute_deprecated
AVInputFormat
*
av_iformat_next
(
const
AVInputFormat
*
f
);
AVInputFormat
*
av_iformat_next
(
const
AVInputFormat
*
f
);
/**
/**
...
@@ -2058,7 +2065,31 @@ AVInputFormat *av_iformat_next(const AVInputFormat *f);
...
@@ -2058,7 +2065,31 @@ AVInputFormat *av_iformat_next(const AVInputFormat *f);
* if f is non-NULL, returns the next registered output format after f
* if f is non-NULL, returns the next registered output format after f
* or NULL if f is the last one.
* or NULL if f is the last one.
*/
*/
attribute_deprecated
AVOutputFormat
*
av_oformat_next
(
const
AVOutputFormat
*
f
);
AVOutputFormat
*
av_oformat_next
(
const
AVOutputFormat
*
f
);
#endif
/**
* Iterate over all registered muxers.
*
* @param opaque a pointer where libavformat will store the iteration state. Must
* point to NULL to start the iteration.
*
* @return the next registered muxer or NULL when the iteration is
* finished
*/
const
AVOutputFormat
*
av_muxer_iterate
(
void
**
opaque
);
/**
* Iterate over all registered demuxers.
*
* @param opaque a pointer where libavformat will store the iteration state. Must
* point to NULL to start the iteration.
*
* @return the next registered demuxer or NULL when the iteration is
* finished
*/
const
AVInputFormat
*
av_demuxer_iterate
(
void
**
opaque
);
/**
/**
* Allocate an AVFormatContext.
* Allocate an AVFormatContext.
...
...
libavformat/format.c
View file @
0694d870
...
@@ -34,65 +34,6 @@
...
@@ -34,65 +34,6 @@
* @file
* @file
* Format register and lookup
* Format register and lookup
*/
*/
/** head of registered input format linked list */
static
AVInputFormat
*
first_iformat
=
NULL
;
/** head of registered output format linked list */
static
AVOutputFormat
*
first_oformat
=
NULL
;
static
AVInputFormat
**
last_iformat
=
&
first_iformat
;
static
AVOutputFormat
**
last_oformat
=
&
first_oformat
;
AVInputFormat
*
av_iformat_next
(
const
AVInputFormat
*
f
)
{
if
(
f
)
return
f
->
next
;
else
return
first_iformat
;
}
AVOutputFormat
*
av_oformat_next
(
const
AVOutputFormat
*
f
)
{
if
(
f
)
return
f
->
next
;
else
return
first_oformat
;
}
static
AVMutex
iformat_register_mutex
=
AV_MUTEX_INITIALIZER
;
void
av_register_input_format
(
AVInputFormat
*
format
)
{
AVInputFormat
**
p
;
ff_mutex_lock
(
&
iformat_register_mutex
);
p
=
last_iformat
;
while
(
*
p
)
p
=
&
(
*
p
)
->
next
;
*
p
=
format
;
format
->
next
=
NULL
;
last_iformat
=
&
format
->
next
;
ff_mutex_unlock
(
&
iformat_register_mutex
);
}
static
AVMutex
oformat_register_mutex
=
AV_MUTEX_INITIALIZER
;
void
av_register_output_format
(
AVOutputFormat
*
format
)
{
AVOutputFormat
**
p
;
ff_mutex_lock
(
&
oformat_register_mutex
);
p
=
last_oformat
;
while
(
*
p
)
p
=
&
(
*
p
)
->
next
;
*
p
=
format
;
format
->
next
=
NULL
;
last_oformat
=
&
format
->
next
;
ff_mutex_unlock
(
&
oformat_register_mutex
);
}
int
av_match_ext
(
const
char
*
filename
,
const
char
*
extensions
)
int
av_match_ext
(
const
char
*
filename
,
const
char
*
extensions
)
{
{
...
@@ -111,6 +52,7 @@ AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
...
@@ -111,6 +52,7 @@ AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
const
char
*
mime_type
)
const
char
*
mime_type
)
{
{
AVOutputFormat
*
fmt
=
NULL
,
*
fmt_found
;
AVOutputFormat
*
fmt
=
NULL
,
*
fmt_found
;
void
*
i
=
0
;
int
score_max
,
score
;
int
score_max
,
score
;
/* specific test for image sequences */
/* specific test for image sequences */
...
@@ -124,7 +66,7 @@ AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
...
@@ -124,7 +66,7 @@ AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
/* Find the proper file type. */
/* Find the proper file type. */
fmt_found
=
NULL
;
fmt_found
=
NULL
;
score_max
=
0
;
score_max
=
0
;
while
((
fmt
=
av_
oformat_next
(
fmt
)))
{
while
((
fmt
=
av_
muxer_iterate
(
&
i
)))
{
score
=
0
;
score
=
0
;
if
(
fmt
->
name
&&
short_name
&&
av_match_name
(
short_name
,
fmt
->
name
))
if
(
fmt
->
name
&&
short_name
&&
av_match_name
(
short_name
,
fmt
->
name
))
score
+=
100
;
score
+=
100
;
...
@@ -176,7 +118,8 @@ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
...
@@ -176,7 +118,8 @@ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
AVInputFormat
*
av_find_input_format
(
const
char
*
short_name
)
AVInputFormat
*
av_find_input_format
(
const
char
*
short_name
)
{
{
AVInputFormat
*
fmt
=
NULL
;
AVInputFormat
*
fmt
=
NULL
;
while
((
fmt
=
av_iformat_next
(
fmt
)))
void
*
i
=
0
;
while
((
fmt
=
av_demuxer_iterate
(
&
i
)))
if
(
av_match_name
(
short_name
,
fmt
->
name
))
if
(
av_match_name
(
short_name
,
fmt
->
name
))
return
fmt
;
return
fmt
;
return
NULL
;
return
NULL
;
...
@@ -188,6 +131,7 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened,
...
@@ -188,6 +131,7 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened,
AVProbeData
lpd
=
*
pd
;
AVProbeData
lpd
=
*
pd
;
AVInputFormat
*
fmt1
=
NULL
,
*
fmt
;
AVInputFormat
*
fmt1
=
NULL
,
*
fmt
;
int
score
,
score_max
=
0
;
int
score
,
score_max
=
0
;
void
*
i
=
0
;
const
static
uint8_t
zerobuffer
[
AVPROBE_PADDING_SIZE
];
const
static
uint8_t
zerobuffer
[
AVPROBE_PADDING_SIZE
];
enum
nodat
{
enum
nodat
{
NO_ID3
,
NO_ID3
,
...
@@ -213,7 +157,7 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened,
...
@@ -213,7 +157,7 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened,
}
}
fmt
=
NULL
;
fmt
=
NULL
;
while
((
fmt1
=
av_
iformat_next
(
fmt1
)))
{
while
((
fmt1
=
av_
demuxer_iterate
(
&
i
)))
{
if
(
!
is_opened
==
!
(
fmt1
->
flags
&
AVFMT_NOFILE
)
&&
strcmp
(
fmt1
->
name
,
"image2"
))
if
(
!
is_opened
==
!
(
fmt1
->
flags
&
AVFMT_NOFILE
)
&&
strcmp
(
fmt1
->
name
,
"image2"
))
continue
;
continue
;
score
=
0
;
score
=
0
;
...
...
libavformat/version.h
View file @
0694d870
...
@@ -91,6 +91,9 @@
...
@@ -91,6 +91,9 @@
#ifndef FF_API_OLD_RTSP_OPTIONS
#ifndef FF_API_OLD_RTSP_OPTIONS
#define FF_API_OLD_RTSP_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 59)
#define FF_API_OLD_RTSP_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
#endif
#ifndef FF_API_NEXT
#define FF_API_NEXT (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
#ifndef FF_API_R_FRAME_RATE
#ifndef FF_API_R_FRAME_RATE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment