Generate the lists of enabled protocols/bsfs from configure.

This commit is contained in:
Anton Khirnov 2016-03-20 10:00:58 +01:00
parent a0f469da74
commit 06edef3d5e
5 changed files with 23 additions and 147 deletions

2
.gitignore vendored
View File

@ -39,9 +39,11 @@
/doc/examples/transcode_aac
/doc/print_options
/lcov/
/libavformat/protocol_list.c
/libavcodec/*_tablegen
/libavcodec/*_tables.c
/libavcodec/*_tables.h
/libavcodec/bsf_list.c
/libavutil/avconfig.h
/tests/audiogen
/tests/base64

View File

@ -217,7 +217,8 @@ clean::
distclean::
$(RM) $(DISTCLEANSUFFIXES)
$(RM) config.* .config libavutil/avconfig.h .version avversion.h
$(RM) config.* .config libavutil/avconfig.h .version avversion.h \
libavcodec/bsf_list.c libavformat/protocol_list.c
config:
$(SRC_PATH)/configure $(value LIBAV_CONFIGURATION)

17
configure vendored
View File

@ -5310,6 +5310,23 @@ cp_if_changed $TMPH libavutil/avconfig.h
test -n "$WARNINGS" && printf "\n$WARNINGS"
# generate the lists of enabled components
print_enabled_components(){
file=$1
struct_name=$2
name=$3
shift 3
echo "static const $struct_name *$name[] = {" > $TMPH
for c in $*; do
enabled $c && printf " &ff_%s,\n" $c >> $TMPH
done
echo " NULL };" >> $TMPH
cp_if_changed $TMPH $file
}
print_enabled_components libavcodec/bsf_list.c AVBitStreamFilter bitstream_filters $BSF_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST
# build pkg-config files
lib_version(){

View File

@ -37,45 +37,7 @@ extern const AVBitStreamFilter ff_text2movsub_bsf;
extern const AVBitStreamFilter ff_noise_bsf;
extern const AVBitStreamFilter ff_remove_extradata_bsf;
static const AVBitStreamFilter *bitstream_filters[] = {
#if CONFIG_AAC_ADTSTOASC_BSF
&ff_aac_adtstoasc_bsf,
#endif
#if CONFIG_CHOMP_BSF
&ff_chomp_bsf,
#endif
#if CONFIG_DUMP_EXTRADATA_BSF
&ff_dump_extradata_bsf,
#endif
#if CONFIG_H264_MP4TOANNEXB_BSF
&ff_h264_mp4toannexb_bsf,
#endif
#if CONFIG_HEVC_MP4TOANNEXB_BSF
&ff_hevc_mp4toannexb_bsf,
#endif
#if CONFIG_IMX_DUMP_HEADER_BSF
&ff_imx_dump_header_bsf,
#endif
#if CONFIG_MJPEG2JPEG_BSF
&ff_mjpeg2jpeg_bsf,
#endif
#if CONFIG_MJPEGA_DUMP_HEADER_BSF
&ff_mjpeg2jpeg_bsf,
#endif
#if CONFIG_MOV2TEXTSUB_BSF
&ff_mov2textsub_bsf,
#endif
#if CONFIG_TEXT2MOVSUB_BSF
&ff_text2movsub_bsf,
#endif
#if CONFIG_NOISE_BSF
&ff_noise_bsf,
#endif
#if CONFIG_REMOVE_EXTRADATA_BSF
&ff_remove_extradata_bsf,
#endif
NULL,
};
#include "libavcodec/bsf_list.c"
const AVBitStreamFilter *av_bsf_next(void **opaque)
{

View File

@ -58,113 +58,7 @@ extern const URLProtocol ff_librtmps_protocol;
extern const URLProtocol ff_librtmpt_protocol;
extern const URLProtocol ff_librtmpte_protocol;
static const URLProtocol *url_protocols[] = {
#if CONFIG_CONCAT_PROTOCOL
&ff_concat_protocol,
#endif
#if CONFIG_CRYPTO_PROTOCOL
&ff_crypto_protocol,
#endif
#if CONFIG_FFRTMPCRYPT_PROTOCOL
&ff_ffrtmpcrypt_protocol,
#endif
#if CONFIG_FFRTMPHTTP_PROTOCOL
&ff_ffrtmphttp_protocol,
#endif
#if CONFIG_FILE_PROTOCOL
&ff_file_protocol,
#endif
#if CONFIG_GOPHER_PROTOCOL
&ff_gopher_protocol,
#endif
#if CONFIG_HLS_PROTOCOL
&ff_hls_protocol,
#endif
#if CONFIG_HTTP_PROTOCOL
&ff_http_protocol,
#endif
#if CONFIG_HTTPPROXY_PROTOCOL
&ff_httpproxy_protocol,
#endif
#if CONFIG_HTTPS_PROTOCOL
&ff_https_protocol,
#endif
#if CONFIG_ICECAST_PROTOCOL
&ff_icecast_protocol,
#endif
#if CONFIG_MMSH_PROTOCOL
&ff_mmsh_protocol,
#endif
#if CONFIG_MMST_PROTOCOL
&ff_mmst_protocol,
#endif
#if CONFIG_MD5_PROTOCOL
&ff_md5_protocol,
#endif
#if CONFIG_PIPE_PROTOCOL
&ff_pipe_protocol,
#endif
#if CONFIG_RTMP_PROTOCOL
&ff_rtmp_protocol,
#endif
#if CONFIG_RTMPE_PROTOCOL
&ff_rtmpe_protocol,
#endif
#if CONFIG_RTMPS_PROTOCOL
&ff_rtmps_protocol,
#endif
#if CONFIG_RTMPT_PROTOCOL
&ff_rtmpt_protocol,
#endif
#if CONFIG_RTMPTE_PROTOCOL
&ff_rtmpte_protocol,
#endif
#if CONFIG_RTMPTS_PROTOCOL
&ff_rtmpts_protocol,
#endif
#if CONFIG_RTP_PROTOCOL
&ff_rtp_protocol,
#endif
#if CONFIG_SCTP_PROTOCOL
&ff_sctp_protocol,
#endif
#if CONFIG_SRTP_PROTOCOL
&ff_srtp_protocol,
#endif
#if CONFIG_TCP_PROTOCOL
&ff_tcp_protocol,
#endif
#if CONFIG_TLS_GNUTLS_PROTOCOL
&ff_tls_gnutls_protocol,
#endif
#if CONFIG_TLS_OPENSSL_PROTOCOL
&ff_tls_openssl_protocol,
#endif
#if CONFIG_UDP_PROTOCOL
&ff_udp_protocol,
#endif
#if CONFIG_UNIX_PROTOCOL
&ff_unix_protocol,
#endif
/* external libraries */
#if CONFIG_LIBRTMP_PROTOCOL
&ff_librtmp_protocol,
#endif
#if CONFIG_LIBRTMPE_PROTOCOL
&ff_librtmpe_protocol,
#endif
#if CONFIG_LIBRTMPS_PROTOCOL
&ff_librtmps_protocol,
#endif
#if CONFIG_LIBRTMPT_PROTOCOL
&ff_librtmpt_protocol,
#endif
#if CONFIG_LIBRTMPTE_PROTOCOL
&ff_librtmpte_protocol,
#endif
NULL,
};
#include "libavformat/protocol_list.c"
const AVClass *ff_urlcontext_child_class_next(const AVClass *prev)
{