From f48a81fed0360d3728e15a22bea8909fac0a8b66 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 5 Oct 2014 18:29:56 +0200 Subject: [PATCH] x264: new package This package is based on an earlier package proposed by Ayaka in December 2013. Signed-off-by: David du Colombier <0intro@gmail.com> Signed-off-by: Peter Korsgaard --- package/Config.in | 1 + ...-arm-do-not-append-CFLAGS-to-ASFLAGS.patch | 34 +++++++++++ package/x264/Config.in | 23 ++++++++ package/x264/x264.mk | 57 +++++++++++++++++++ 4 files changed, 115 insertions(+) create mode 100644 package/x264/0001-arm-do-not-append-CFLAGS-to-ASFLAGS.patch create mode 100644 package/x264/Config.in create mode 100644 package/x264/x264.mk diff --git a/package/Config.in b/package/Config.in index 2dbe6f8ac3..e773715b05 100644 --- a/package/Config.in +++ b/package/Config.in @@ -757,6 +757,7 @@ menu "Multimedia" source "package/libtheora/Config.in" source "package/live555/Config.in" source "package/mediastreamer/Config.in" + source "package/x264/Config.in" endmenu menu "Networking" diff --git a/package/x264/0001-arm-do-not-append-CFLAGS-to-ASFLAGS.patch b/package/x264/0001-arm-do-not-append-CFLAGS-to-ASFLAGS.patch new file mode 100644 index 0000000000..3d405077e6 --- /dev/null +++ b/package/x264/0001-arm-do-not-append-CFLAGS-to-ASFLAGS.patch @@ -0,0 +1,34 @@ +From 716ee56d0b35e512e8e0ae1a3e71f26e65e86be3 Mon Sep 17 00:00:00 2001 +From: Janne Grunau +Date: Sun, 20 Jul 2014 12:55:53 +0200 +Subject: [PATCH 01/24] arm: do not append CFLAGS to ASFLAGS + +--- + configure | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 0a4cb94..a50f8d5 100755 +--- a/configure ++++ b/configure +@@ -296,7 +296,7 @@ opencl="yes" + CFLAGS="$CFLAGS -Wall -I. -I\$(SRCPATH)" + LDFLAGS="$LDFLAGS" + LDFLAGSCLI="$LDFLAGSCLI" +-ASFLAGS="$ASFLAGS" ++ASFLAGS="$ASFLAGS -I. -I\$(SRCPATH)" + RCFLAGS="$RCFLAGS" + HAVE_GETOPT_LONG=1 + cross_prefix="" +@@ -752,7 +752,7 @@ if [ $asm = auto -a $ARCH = ARM ] ; then + if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6 + cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2 + cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON +- ASFLAGS="$ASFLAGS $CFLAGS -c" ++ ASFLAGS="$ASFLAGS -c" + else + echo "You specified a pre-ARMv6 or Thumb-1 CPU in your CFLAGS." + echo "If you really want to run on such a CPU, configure with --disable-asm." +-- +1.8.3.1 + diff --git a/package/x264/Config.in b/package/x264/Config.in new file mode 100644 index 0000000000..5e614b56bf --- /dev/null +++ b/package/x264/Config.in @@ -0,0 +1,23 @@ +config BR2_PACKAGE_X264 + bool "x264" + depends on BR2_LARGEFILE + help + x264 is a free software library and application for + encoding video streams into the H.264/MPEG-4 AVC + compression format, and is released under the terms + of the GNU GPL. + + https://www.videolan.org/developers/x264.html + +if BR2_PACKAGE_X264 + +config BR2_PACKAGE_X264_CLI + bool "CLI" + help + Command-line tool to encode video streams into the + H.264/MPEG-4 AVC compression format. + +endif + +comment "x264 needs a toolchain w/ largefile" + depends on !BR2_LARGEFILE diff --git a/package/x264/x264.mk b/package/x264/x264.mk new file mode 100644 index 0000000000..c2397f8e9b --- /dev/null +++ b/package/x264/x264.mk @@ -0,0 +1,57 @@ +############################################################### +# +# x264 +# +############################################################### + +X264_VERSION = 20140930-2245-stable +X264_SOURCE = x264-snapshot-$(X264_VERSION).tar.bz2 +X264_SITE = ftp://ftp.videolan.org/pub/videolan/x264/snapshots +X264_LICENSE = GPLv2+ +X264_DEPENDENCIES = host-pkgconf +X264_LICENSE_FILES = COPYING +X264_INSTALL_STAGING = YES + +ifeq ($(BR2_i386)$(BR2_x86_64),y) + FFMPEG_DEPENDENCIES += host-yasm +else + X264_CONF_OPTS += --disable-asm +endif + +ifeq ($(BR2_PREFER_STATIC_LIB),) + X264_CONF_OPTS += --enable-pic --enable-shared +endif + +ifeq ($(BR2_PACKAGE_X264_CLI),) + X264_CONF_OPTS += --disable-cli +endif + +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),) + X264_CONF_OPTS += --disable-thread +endif + +# the configure script is not generated by autoconf +define X264_CONFIGURE_CMDS + (cd $(@D); $(TARGET_CONFIGURE_OPTS) ./configure \ + --prefix=/usr \ + --host="$(GNU_TARGET_NAME)" \ + --cross-prefix="$(TARGET_CROSS)" \ + --disable-ffms \ + --enable-static \ + $(X264_CONF_OPTS) \ + ) +endef + +define X264_BUILD_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) +endef + +define X264_INSTALL_STAGING_CMDS + $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(STAGING_DIR)" -C $(@D) install +endef + +define X264_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) DESTDIR="$(TARGET_DIR)" -C $(@D) install +endef + +$(eval $(generic-package))