Generate the lists of enabled protocols/bsfs from configure.
authorAnton Khirnov <anton@khirnov.net>
Sun, 20 Mar 2016 09:00:58 +0000 (10:00 +0100)
committerAnton Khirnov <anton@khirnov.net>
Tue, 19 Apr 2016 11:34:07 +0000 (13:34 +0200)
.gitignore
Makefile
configure
libavcodec/bitstream_filters.c
libavformat/protocols.c

index 6f14290..0d8f1fb 100644 (file)
 /doc/examples/transcode_aac
 /doc/print_options
 /lcov/
 /doc/examples/transcode_aac
 /doc/print_options
 /lcov/
+/libavformat/protocol_list.c
 /libavcodec/*_tablegen
 /libavcodec/*_tables.c
 /libavcodec/*_tables.h
 /libavcodec/*_tablegen
 /libavcodec/*_tables.c
 /libavcodec/*_tables.h
+/libavcodec/bsf_list.c
 /libavutil/avconfig.h
 /tests/audiogen
 /tests/base64
 /libavutil/avconfig.h
 /tests/audiogen
 /tests/base64
index 96ad55d..1d7bc4a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -217,7 +217,8 @@ clean::
 
 distclean::
        $(RM) $(DISTCLEANSUFFIXES)
 
 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)
 
 config:
        $(SRC_PATH)/configure $(value LIBAV_CONFIGURATION)
index 2eb686a..117e286 100755 (executable)
--- a/configure
+++ b/configure
@@ -5310,6 +5310,23 @@ cp_if_changed $TMPH libavutil/avconfig.h
 
 test -n "$WARNINGS" && printf "\n$WARNINGS"
 
 
 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(){
 # build pkg-config files
 
 lib_version(){
index 897e1f8..3b4026c 100644 (file)
@@ -37,45 +37,7 @@ extern const AVBitStreamFilter ff_text2movsub_bsf;
 extern const AVBitStreamFilter ff_noise_bsf;
 extern const AVBitStreamFilter ff_remove_extradata_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)
 {
 
 const AVBitStreamFilter *av_bsf_next(void **opaque)
 {
index b03adff..d254540 100644 (file)
@@ -58,113 +58,7 @@ extern const URLProtocol ff_librtmps_protocol;
 extern const URLProtocol ff_librtmpt_protocol;
 extern const URLProtocol ff_librtmpte_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)
 {
 
 const AVClass *ff_urlcontext_child_class_next(const AVClass *prev)
 {