summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ceresoli <luca@lucaceresoli.net>2010-06-14 19:41:44 (GMT)
committer Peter Korsgaard <jacmet@sunsite.dk>2010-06-14 21:39:15 (GMT)
commit56e4d692549d84e40035f551e9f87ab052138915 (patch)
treef245e456a433f5e67151fb20482e3f69e8e35fe5
parent5253efadb0f5ba7e3bc3c339a1fa2a83df86ac7e (diff)
downloadbuildroot-56e4d692549d84e40035f551e9f87ab052138915.tar.gz
buildroot-56e4d692549d84e40035f551e9f87ab052138915.tar.bz2
ffmpeg: allow customization of codecs, (de)muxers and other components
Add the option to customize the list of decoders, encoders, muxers, demuxers, parsers, protocols, bsfs and filters to be built into ffmpeg, and to compile or exclude input and output devices. [Peter: fix qstrip invocation] Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
-rw-r--r--package/multimedia/ffmpeg/Config.in88
-rw-r--r--package/multimedia/ffmpeg/ffmpeg.mk52
2 files changed, 140 insertions, 0 deletions
diff --git a/package/multimedia/ffmpeg/Config.in b/package/multimedia/ffmpeg/Config.in
index 16bb32d..c9fdd54 100644
--- a/package/multimedia/ffmpeg/Config.in
+++ b/package/multimedia/ffmpeg/Config.in
@@ -47,4 +47,92 @@ config BR2_PACKAGE_FFMPEG_FFSERVER
help
FFserver is a streaming server for both audio and video.
+config BR2_PACKAGE_FFMPEG_ENCODERS
+ string "Enabled encoders"
+ default "all"
+ help
+ Space-separated list of encoders to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-encoders in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_DECODERS
+ string "Enabled decoders"
+ default "all"
+ help
+ Space-separated list of decoders to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-decoders in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_MUXERS
+ string "Enabled muxers"
+ default "all"
+ help
+ Space-separated list of muxers to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-muxers in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_DEMUXERS
+ string "Enabled demuxers"
+ default "all"
+ help
+ Space-separated list of demuxers to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-demuxers in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_PARSERS
+ string "Enabled parsers"
+ default "all"
+ help
+ Space-separated list of parsers to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-parsers in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_BSFS
+ string "Enabled bitstreams"
+ default "all"
+ help
+ Space-separated list of bitstream filters to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-bsfs in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_PROTOCOLS
+ string "Enabled protocols"
+ default "all"
+ help
+ Space-separated list of protocols to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-protocols in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_FILTERS
+ string "Enabled filters"
+ default "all"
+ help
+ Space-separated list of filters to build in FFmpeg,
+ or "all" to build all of them.
+
+ Run ./configure --list-filters in the ffmpeg sources
+ directory to know the available options.
+
+config BR2_PACKAGE_FFMPEG_INDEVS
+ bool "Enable input devices"
+ default y
+
+config BR2_PACKAGE_FFMPEG_OUTDEVS
+ bool "Enable output devices"
+ default y
+
endif
diff --git a/package/multimedia/ffmpeg/ffmpeg.mk b/package/multimedia/ffmpeg/ffmpeg.mk
index 1f9f472..eea76f7 100644
--- a/package/multimedia/ffmpeg/ffmpeg.mk
+++ b/package/multimedia/ffmpeg/ffmpeg.mk
@@ -49,6 +49,58 @@ else
FFMPEG_CONF_OPT += --disable-ffserver
endif
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),all)
+FFMPEG_CONF_OPT += --disable-encoders \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_ENCODERS)),--enable-encoder=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),all)
+FFMPEG_CONF_OPT += --disable-decoders \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DECODERS)),--enable-decoder=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),all)
+FFMPEG_CONF_OPT += --disable-muxers \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_MUXERS)),--enable-muxer=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),all)
+FFMPEG_CONF_OPT += --disable-demuxers \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_DEMUXERS)),--enable-demuxer=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),all)
+FFMPEG_CONF_OPT += --disable-parsers \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PARSERS)),--enable-parser=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),all)
+FFMPEG_CONF_OPT += --disable-bsfs \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_BSFS)),--enable-bsf=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),all)
+FFMPEG_CONF_OPT += --disable-protocols \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_PROTOCOLS)),--enable-protocol=$(x))
+endif
+
+ifneq ($(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),all)
+FFMPEG_CONF_OPT += --disable-filters \
+ $(foreach x,$(call qstrip,$(BR2_PACKAGE_FFMPEG_FILTERS)),--enable-filter=$(x))
+endif
+
+ifeq ($(BR2_PACKAGE_FFMPEG_INDEVS),y)
+FFMPEG_CONF_OPT += --enable-indevs
+else
+FFMPEG_CONF_OPT += --disable-indevs
+endif
+
+ifeq ($(BR2_PACKAGE_FFMPEG_OUTDEVS),y)
+FFMPEG_CONF_OPT += --enable-outdevs
+else
+FFMPEG_CONF_OPT += --disable-outdevs
+endif
+
ifeq ($(BR2_PTHREADS_NONE),y)
FFMPEG_CONF_OPT += --disable-pthreads
else