ffmpeg: add new package
authorLuca Ceresoli <luca@lucaceresoli.net>
Mon, 14 Jun 2010 19:41:42 +0000 (21:41 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 14 Jun 2010 21:39:07 +0000 (23:39 +0200)
[Peter: configure doesn't support --disable-nls / --disable-largefile,
 needs largefile support in toolchain]
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/multimedia/Config.in
package/multimedia/ffmpeg/Config.in [new file with mode: 0644]
package/multimedia/ffmpeg/ffmpeg.mk [new file with mode: 0644]

index 3305f7b82daea9ec2ab762843c8987e03ff1d6c0..3b0eec500cd24a4a83036d4c4ea6dc7a9941dee1 100644 (file)
@@ -3,6 +3,7 @@ source "package/multimedia/alsa-lib/Config.in"
 source "package/multimedia/alsa-utils/Config.in"
 source "package/multimedia/aumix/Config.in"
 source "package/multimedia/flac/Config.in"
+source "package/multimedia/ffmpeg/Config.in"
 source "package/multimedia/gstreamer/Config.in"
 source "package/multimedia/gst-plugins-base/Config.in"
 source "package/multimedia/gst-plugins-good/Config.in"
diff --git a/package/multimedia/ffmpeg/Config.in b/package/multimedia/ffmpeg/Config.in
new file mode 100644 (file)
index 0000000..f60790a
--- /dev/null
@@ -0,0 +1,27 @@
+comment "ffmpeg requires a toolchain with LARGEFILE support"
+       depends on !BR2_LARGEFILE
+
+menuconfig BR2_PACKAGE_FFMPEG
+       bool "ffmpeg"
+       depends on BR2_LARGEFILE
+       help
+         FFmpeg is a complete, cross-platform solution to record, convert
+         and stream audio and video.
+
+        http://www.ffmpeg.org
+
+if BR2_PACKAGE_FFMPEG
+
+config BR2_PACKAGE_FFMPEG_GPL
+       bool "Enable GPL code"
+       help
+         allow use of GPL code, the resulting libs and binaries will
+         be under GPL
+
+config BR2_PACKAGE_FFMPEG_NONFREE
+       bool "Enable nonfree code"
+       help
+         allow use of nonfree code, the resulting libs and binaries
+         will be unredistributable
+
+endif
diff --git a/package/multimedia/ffmpeg/ffmpeg.mk b/package/multimedia/ffmpeg/ffmpeg.mk
new file mode 100644 (file)
index 0000000..618a3c4
--- /dev/null
@@ -0,0 +1,70 @@
+#############################################################
+#
+# ffmpeg
+#
+#############################################################
+FFMPEG_VERSION := 0.5.2
+FFMPEG_SOURCE := ffmpeg-$(FFMPEG_VERSION).tar.bz2
+FFMPEG_SITE := http://ffmpeg.org/releases
+FFMPEG_INSTALL_STAGING = YES
+FFMPEG_INSTALL_TARGET = YES
+
+FFMPEG_CONF_OPT = \
+       --prefix=/usr           \
+       --enable-shared         \
+       --disable-ffmpeg        \
+       --disable-ffplay        \
+       --disable-ffserver      \
+       --disable-avfilter      \
+       --disable-postproc      \
+       --disable-swscale       \
+       --disable-vhook         \
+
+ifeq ($(BR2_PACKAGE_FFMPEG_GPL),y)
+FFMPEG_CONF_OPT += --enable-gpl
+else
+FFMPEG_CONF_OPT += --disable-gpl
+endif
+
+ifeq ($(BR2_PACKAGE_FFMPEG_NONFREE),y)
+FFMPEG_CONF_OPT += --enable-nonfree
+else
+FFMPEG_CONF_OPT += --disable-nonfree
+endif
+
+ifeq ($(BR2_PTHREADS_NONE),y)
+FFMPEG_CONF_OPT += --disable-pthreads
+else
+FFMPEG_CONF_OPT += --enable-pthreads
+endif
+
+ifeq ($(BR2_PACKAGE_ZLIB),y)
+FFMPEG_CONF_OPT += --enable-zlib
+FFMPEG_DEPENDENCIES += zlib
+else
+FFMPEG_CONF_OPT += --disable-zlib
+endif
+
+# Override FFMPEG_CONFIGURE_CMDS: FFmpeg does not support --target and others
+define FFMPEG_CONFIGURE_CMDS
+       (cd $(FFMPEG_SRCDIR) && rm -rf config.cache && \
+       $(TARGET_CONFIGURE_OPTS) \
+       $(TARGET_CONFIGURE_ARGS) \
+       $(TARGET_CONFIGURE_ENV) \
+       $(FFMPEG_CONF_ENV) \
+       ./configure \
+               --enable-cross-compile  \
+               --cross-prefix=$(TARGET_CROSS) \
+               --sysroot=$(STAGING_DIR) \
+               --host-cc=$(HOSTCC) \
+               --arch=$(BR2_ARCH) \
+               --extra-cflags=-fPIC \
+               $(DISABLE_IPV6) \
+               $(FFMPEG_CONF_OPT) \
+       )
+endef
+
+# Override FFMPEG_INSTALL_TARGET_OPT: FFmpeg does not support install-strip
+FFMPEG_INSTALL_TARGET_OPT = DESTDIR=$(TARGET_DIR) install
+
+$(eval $(call AUTOTARGETS,package/multimedia,ffmpeg))