2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2010-10-07 15:55:08 +02:00
|
|
|
#
|
|
|
|
# gst-ffmpeg
|
|
|
|
#
|
2013-06-06 01:53:30 +02:00
|
|
|
################################################################################
|
2011-03-01 17:20:01 +01:00
|
|
|
|
2011-12-09 15:15:12 +01:00
|
|
|
GST_FFMPEG_VERSION = 0.10.13
|
2010-10-07 15:55:08 +02:00
|
|
|
GST_FFMPEG_SOURCE = gst-ffmpeg-$(GST_FFMPEG_VERSION).tar.bz2
|
|
|
|
GST_FFMPEG_SITE = http://gstreamer.freedesktop.org/src/gst-ffmpeg
|
|
|
|
GST_FFMPEG_INSTALL_STAGING = YES
|
2014-01-16 20:48:04 +01:00
|
|
|
GST_FFMPEG_DEPENDENCIES = host-pkgconf gstreamer gst-plugins-base
|
|
|
|
|
2014-10-19 21:33:19 +02:00
|
|
|
ifeq ($(BR2_PACKAGE_GST_FFMPEG_GPL),y)
|
|
|
|
GST_FFMPEG_CONF_OPTS += --disable-lgpl
|
2017-03-30 15:43:33 +02:00
|
|
|
GST_FFMPEG_LICENSE = GPL-2.0+ (gst-ffmpeg), GPL-2.0+/GPL-3.0+ (libav)
|
2014-10-19 21:33:19 +02:00
|
|
|
GST_FFMPEG_LICENSE_FILES = COPYING gst-libs/ext/libav/COPYING.GPLv2 gst-libs/ext/libav/COPYING.GPLv3
|
|
|
|
else
|
|
|
|
GST_FFMPEG_CONF_OPTS += --enable-lgpl
|
2017-03-30 15:43:37 +02:00
|
|
|
GST_FFMPEG_LICENSE = LGPL-2.0+ (gst-ffmpeg), LGPL-2.1+/LGPL-3.0+ (libav)
|
2014-10-19 21:33:19 +02:00
|
|
|
GST_FFMPEG_LICENSE_FILES = COPYING.LIB gst-libs/ext/libav/COPYING.LGPLv2.1 gst-libs/ext/libav/COPYING.LGPLv3
|
|
|
|
endif
|
|
|
|
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS = \
|
2014-12-22 09:12:05 +01:00
|
|
|
--cross-prefix=$(TARGET_CROSS) \
|
|
|
|
--target-os=linux \
|
|
|
|
--pkg-config='$(PKG_CONFIG_HOST_BINARY)'
|
2014-01-16 20:48:04 +01:00
|
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-zlib
|
2014-01-16 20:48:04 +01:00
|
|
|
GST_FFMPEG_DEPENDENCIES += zlib
|
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-zlib
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
2010-10-07 15:55:08 +02:00
|
|
|
|
|
|
|
ifeq ($(BR2_PACKAGE_BZIP2),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-bzlib
|
2010-10-07 15:55:08 +02:00
|
|
|
GST_FFMPEG_DEPENDENCIES += bzip2
|
2014-01-16 20:48:04 +01:00
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-bzlib
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BR2_X86_CPU_HAS_MMX),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-yasm
|
2014-01-16 20:48:04 +01:00
|
|
|
GST_FFMPEG_DEPENDENCIES += host-yasm
|
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-yasm
|
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-mmx
|
2010-10-07 15:55:08 +02:00
|
|
|
endif
|
|
|
|
|
2014-01-16 20:48:04 +01:00
|
|
|
ifeq ($(BR2_X86_CPU_HAS_SSE),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-sse
|
2014-01-16 20:48:04 +01:00
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-sse
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(BR2_X86_CPU_HAS_SSSE3),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-ssse3
|
2014-01-16 20:48:04 +01:00
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-ssse3
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
|
|
|
# Explicitly disable everything that doesn't match for ARM
|
|
|
|
# FFMPEG "autodetects" by compiling an extended instruction via AS
|
|
|
|
# This works on compilers that aren't built for generic by default
|
2014-10-21 22:26:51 +02:00
|
|
|
ifeq ($(BR2_ARM_CPU_ARMV4),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv5te
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
2014-10-21 22:26:52 +02:00
|
|
|
ifeq ($(BR2_ARM_CPU_ARMV6)$(BR2_ARM_CPU_ARMV7A),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-armv6
|
2014-01-16 20:48:04 +01:00
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-armv6 --disable-armv6t2
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
ifeq ($(BR2_ARM_CPU_HAS_NEON),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-neon
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
2014-05-13 07:28:17 +02:00
|
|
|
ifeq ($(BR2_POWERPC_CPU_HAS_ALTIVEC),y)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-altivec
|
2014-01-16 20:48:04 +01:00
|
|
|
else
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-altivec
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
gst-ffmpeg: work-around bogus configure logic on SPARC
The libav version built into the gst-ffmpeg code produces a bogus
binary on SPARC, which causes the following error of the
check-bin-arch script:
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstffmpeg.so is Sparc v8+, should be Sparc
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstpostproc.so is Sparc v8+, should be Sparc
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstffmpegscale.so is Sparc v8+, should be Sparc
The problem is the following bit of code in
gst-lib/ext/libav/configure:
elif enabled sparc; then
enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc &&
add_cflags -mcpu=ultrasparc -mtune=ultrasparc
I.e, it checks if the architecture supports the pdist
instruction... but forces -mcpu to ultrasparc while doing so. So it's
like "let's see if this Ultrasparc instruction exists when I force the
compiler to think I'm using Ultrasparc", which is non-sensical. This
has been fixed later on in libav upstream:
https://git.libav.org/?p=libav.git;a=commit;h=6aa93689abe8c095cec9fa828c2dee3131008995
However, this commit cannot be backported as-is since the shell
function check_inline_asm did not exist in the old libav version
bundled in gst-ffmpeg.
Therefore, we take the simpler route of disabling the VIS
optimizations on SPARCv8 and Leon3.
Fixes:
http://autobuild.buildroot.net/results/e82d179c3d4f92ad7423693a4b1d42379a3f5411/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-23 00:04:56 +01:00
|
|
|
# libav configure script misdetects the VIS optimizations as being
|
|
|
|
# available, so forcefully disable them.
|
|
|
|
ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y)
|
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --disable-vis
|
|
|
|
endif
|
|
|
|
|
2014-12-03 22:41:29 +01:00
|
|
|
ifeq ($(BR2_STATIC_LIBS),)
|
2014-09-27 21:32:50 +02:00
|
|
|
GST_FFMPEG_CONF_EXTRA_OPTS += --enable-pic
|
2014-01-16 20:48:04 +01:00
|
|
|
endif
|
|
|
|
|
2014-10-19 21:33:19 +02:00
|
|
|
GST_FFMPEG_CONF_OPTS += --with-ffmpeg-extra-configure="$(GST_FFMPEG_CONF_EXTRA_OPTS)"
|
2014-01-16 20:48:04 +01:00
|
|
|
|
2012-07-03 00:07:32 +02:00
|
|
|
$(eval $(autotools-package))
|