[FFmpeg-devel] enable/disable bitstream filters?
Jason Millard
jsm174
Fri May 11 16:30:28 CEST 2007
It seems like everything in libavcodec can be enabled / disabled
except for the bitstream filters.
Is it worth while to do the same to them? Possibly even move them to
bsf files like the parsers are?
Here are patches for configure and allcodecs.c. Granted it's not
really doing anything now, but maybe a start?
--- /c/ffmpeg-051107-orig/configure Fri May 11 07:06:46 2007
+++ ./configure Fri May 11 09:59:35 2007
@@ -158,6 +158,9 @@
echo " --enable-protocol=NAME enables protocol NAME"
echo " --disable-protocol=NAME disables protocol NAME"
echo " --disable-protocols disables all protocols"
+ echo " --enable-bsf=NAME enables bitstream filter NAME"
+ echo " --disable-bsf=NAME disables bitstream filter NAME"
+ echo " --disable-bsfs disables all bitstream filters"
echo
echo "Developer options (useful when working on FFmpeg itself):"
echo " --enable-gprof enable profiling with gprof [$gprof]"
@@ -554,6 +557,7 @@
encoders
decoders
parsers
+ bsfs
muxers
demuxers
audio_beos
@@ -910,8 +914,9 @@
MUXER_LIST=`sed -n 's/^[^#]*_MUX.*, *\(.*\)).*/\1_muxer/p'
"$source_path/libavformat/allformats.c"`
DEMUXER_LIST=`sed -n 's/^[^#]*DEMUX.*, *\(.*\)).*/\1_demuxer/p'
"$source_path/libavformat/allformats.c"`
PROTOCOL_LIST=`sed -n 's/^[^#]*PROTOCOL.*, *\(.*\)).*/\1_protocol/p'
"$source_path/libavformat/allformats.c"`
+BSF_LIST=`sed -n 's/^[^#]*BSF.*, *\(.*\)).*/\1_bsf/p'
"$source_path/libavcodec/allcodecs.c"`
-enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST
$DEMUXER_LIST $PROTOCOL_LIST
+enable $ENCODER_LIST $DECODER_LIST $PARSER_LIST $MUXER_LIST
$DEMUXER_LIST $PROTOCOL_LIST $BSF_LIST
die_unknown(){
echo "Unknown option \"$1\"."
@@ -980,6 +985,8 @@
;;
--disable-protocols) disable $PROTOCOL_LIST
;;
+ --disable-bsfs) disable $BSF_LIST
+ ;;
--enable-*=*|--disable-*=*)
eval `echo "$opt" | sed 's/=/-/;s/--/action=/;s/-/ thing=/;s/-/ name=/'`
case "$thing" in
@@ -1808,11 +1815,12 @@
enabled_any $MUXER_LIST && enable muxers
enabled_any $DEMUXER_LIST && enable demuxers
enabled_any $PROTOCOL_LIST && enable protocols
+enabled_any $BSF_LIST && enable bsfs
enabled_any $THREADS_LIST && enable threads
check_deps $CONFIG_LIST $HAVE_LIST $DECODER_LIST $ENCODER_LIST $PARSER_LIST \
- $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST
+ $DEMUXER_LIST $MUXER_LIST $PROTOCOL_LIST $BSF_LIST
enabled libogg && append pkg_requires "ogg >= 1.1"
enabled libtheora && append pkg_requires "theora"
@@ -2032,7 +2040,7 @@
fi
-for part in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST
$MUXER_LIST $PROTOCOL_LIST; do
+for part in $DECODER_LIST $ENCODER_LIST $PARSER_LIST $DEMUXER_LIST
$MUXER_LIST $PROTOCOL_LIST $BSF_LIST; do
ucname="`toupper $part`"
config_name="CONFIG_$ucname"
enabled_name="ENABLE_$ucname"
--- /c/ffmpeg-051107-orig/libavcodec/allcodecs.c Fri May 11 07:06:32 2007
+++ ./allcodecs.c Fri May 11 09:46:34 2007
@@ -34,6 +34,9 @@
#define REGISTER_PARSER(X,x) \
if(ENABLE_##X##_PARSER) av_register_codec_parser(&x##_parser)
+#define REGISTER_BSF(X,x) \
+ if(ENABLE_##X##_BSF) av_register_bitstream_filter(&x##_bsf)
+
/**
* Register all the codecs, parsers and bitstream filters which were enabled at
@@ -273,12 +276,13 @@
REGISTER_PARSER (PNM, pnm);
REGISTER_PARSER (VC1, vc1);
- av_register_bitstream_filter(&dump_extradata_bsf);
- av_register_bitstream_filter(&remove_extradata_bsf);
- av_register_bitstream_filter(&noise_bsf);
- av_register_bitstream_filter(&mp3_header_compress_bsf);
- av_register_bitstream_filter(&mp3_header_decompress_bsf);
- av_register_bitstream_filter(&mjpega_dump_header_bsf);
- av_register_bitstream_filter(&imx_dump_header_bsf);
+ /* bitstream filters */
+ REGISTER_BSF (DUMP_EXTRADATA, dump_extradata);
+ REGISTER_BSF (REMOVE_EXTRADATA, remove_extradata);
+ REGISTER_BSF (NOISE, noise);
+ REGISTER_BSF (MP3_HEADER_COMPRESS, mp3_header_compress);
+ REGISTER_BSF (MP3_HEADER_DECOMPRESS, mp3_header_decompress);
+ REGISTER_BSF (MJPEGA_DUMP_HEADER, mjpega_dump_header);
+ REGISTER_BSF (IMX_DUMP_HEADER, imx_dump_header);
}
-- Jason
More information about the ffmpeg-devel
mailing list