Skip to contentSkip to conversation

Import libav from meta-oe

PATCH In review Paul Eggleton 4 participants 14 messages Aug 9, 2013 – Aug 14, 2013

lore
Share & tools
lore
#0 lore raw

cover Import libav from meta-oe

Bring in the libav (ffmpeg replacement) recipe from meta-oe. Motivations behind this:

* Enhances the performance/capability of gst-ffmpeg (which we already have in OE-Core) by switching it to use an up-to-date version of libav instead of the old internal copy of ffmpeg
* Allows dropping the gst-ffmpeg bbappend from meta-oe which does the above
* Provides a standard libav recipe to prevent ffmpeg/libav needing to be added by other layers

A number of improvements to the recipes themselves have been made in the process, see individual changes for details. Note that these recipes are protected by LICENSE_FLAGS = "commercial".

The following changes since commit 291ab168fac15eae0e4c9234e16f394b0e1547a0:

subversion: Add patch to use neon 0.30 (2013-08-07 07:43:31 +0100)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib paule/libav
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/libav

Paul Eggleton (6):
yasm: add from meta-oe and tweak
x264: add from meta-oe, update and tweak
libav: add from meta-oe, update and tweak
gst-ffmpeg: merge in bbappend from meta-oe
gst-ffmpeg: enable using yasm during build
gst-ffmpeg: set SUMMARY instead of DESCRIPTION

 meta/recipes-devtools/yasm/yasm_1.2.0.bb           |  13 +++
 .../gstreamer/gst-ffmpeg_0.10.13.bb                |  12 +-
 .../0001-configure-enable-pic-for-AArch64.patch    |  23 ++++
 meta/recipes-multimedia/libav/libav.inc            | 129 +++++++++++++++++++++
 meta/recipes-multimedia/libav/libav_0.8.8.bb       |  18 +++
 meta/recipes-multimedia/libav/libav_git.bb         |  16 +++
 .../don-t-default-to-cortex-a9-with-neon.patch     |  20 ++++
 meta/recipes-multimedia/x264/x264_git.bb           |  52 +++++++++
 8 files changed, 277 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-devtools/yasm/yasm_1.2.0.bb
 create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch
 create mode 100644 meta/recipes-multimedia/libav/libav.inc
 create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb
 create mode 100644 meta/recipes-multimedia/libav/libav_git.bb
 create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
 create mode 100644 meta/recipes-multimedia/x264/x264_git.bb
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/6 yasm: add from meta-oe and tweak

This is needed for x264. Enabling it for libav also improves performance on x86 and x86-64. Two minor changes from the meta-oe recipe:

* Set SUMMARY instead of DESCRIPTION
* Drop setting of S - it was setting it to the same as the default

---
 meta/recipes-devtools/yasm/yasm_1.2.0.bb | 13 +++++++++++++
 1 file changed, 13 insertions(+)
 create mode 100644 meta/recipes-devtools/yasm/yasm_1.2.0.bb
meta/recipes-devtools/yasm/yasm_1.2.0.bb new file +13 -0
new file mode 100644
index 0000000..cc7459b
@@ -0,0 +1,13 @@
+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
+LICENSE = "BSD"
+HOMEPAGE = "http://www.tortall.net/projects/yasm/"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=26c9f3d11f88911950f9ff62189d3d4f"
+
+SRC_URI = "http://www.tortall.net/projects/yasm/releases/yasm-${PV}.tar.gz"
+SRC_URI[md5sum] = "4cfc0686cf5350dd1305c4d905eb55a6"
+SRC_URI[sha256sum] = "768ffab457b90a20a6d895c39749adb547c1b7cb5c108e84b151a838a23ccf31"
+
+inherit autotools gettext
+
+BBCLASSEXTEND = "native"
Signature · 1 line
1.8.1.2
#2 lore raw

Re: [PATCH 1/6] yasm: add from meta-oe and tweak

Quoted 1 line · Paul Eggleton

+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"

Does this mean we can drop nasm to avoid having numerous assemblers in oe-core? You can't feed them after midnight you know.

Ross

#3 lore raw

Re: [PATCH 1/6] yasm: add from meta-oe and tweak

Quoted 5 lines · Ross
Quoted 1 line · Paul Eggleton

+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"

Does this mean we can drop nasm to avoid having numerous assemblers in oe-core? You can't feed them after midnight you know.

I don't know what the comparison between the two is, but I suspect they are not interchangeable.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#4 lore raw

PATCH 2/6 x264: add from meta-oe, update and tweak

In reply to Paul Eggleton

This is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:

* Update to the latest revision from the stable branch (upstream does not seem to provide stable releases.)
* Add LICENSE_FLAGS = "commercial"
* Enable PIC to fix text relocation warnings and disable warning for i586 (since PIC can't be used there)
* Make SUMMARY value slightly shorter
* Indent SRC_URI properly

---
 .../don-t-default-to-cortex-a9-with-neon.patch     | 20 +++++++++
 meta/recipes-multimedia/x264/x264_git.bb           | 52 ++++++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
 create mode 100644 meta/recipes-multimedia/x264/x264_git.bb
meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch new file +20 -0
new file mode 100644
index 0000000..b844d88
@@ -0,0 +1,20 @@
+-march flag is not in CFLAGS so this will always default to -mcpu=cortex-a8
+-mfpu=neon.
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <[email protected]>
+
+Index: git/configure
+===================================================================
+--- git.orig/configure	2013-02-10 16:26:40.666343682 +0200
++++ git/configure	2013-02-10 16:27:49.198341677 +0200
+@@ -703,9 +703,6 @@
+ fi
+
+ if [ $asm = auto -a $ARCH = ARM ] ; then
+-    # set flags so neon is built by default
+-    echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
+-
+     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
meta/recipes-multimedia/x264/x264_git.bb new file +52 -0

52 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#5 lore raw

Re: [PATCH 2/6] x264: add from meta-oe, update and tweak

Quoted 10 lines · Paul Eggleton

This is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:

* Update to the latest revision from the stable branch (upstream does not seem to provide stable releases.)
* Add LICENSE_FLAGS = "commercial"
* Enable PIC to fix text relocation warnings and disable warning for i586 (since PIC can't be used there)
* Make SUMMARY value slightly shorter
* Indent SRC_URI properly

I think it was indented correctly and styleguide doesn't define how many spaces should be used for multiline variables.

Quoted 65 lines
---
 .../don-t-default-to-cortex-a9-with-neon.patch     | 20 +++++++++
 meta/recipes-multimedia/x264/x264_git.bb           | 52 ++++++++++++++++++++++
 2 files changed, 72 insertions(+)
 create mode 100644 meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
 create mode 100644 meta/recipes-multimedia/x264/x264_git.bb
meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch new file +20 -0
new file mode 100644
index 0000000..b844d88
@@ -0,0 +1,20 @@
+-march flag is not in CFLAGS so this will always default to -mcpu=cortex-a8
+-mfpu=neon.
+
+Upstream-Status: Pending
+Signed-off-by: Andrei Gherzan <[email protected]>
+
+Index: git/configure
+===================================================================
+--- git.orig/configure	2013-02-10 16:26:40.666343682 +0200
++++ git/configure	2013-02-10 16:27:49.198341677 +0200
+@@ -703,9 +703,6 @@
+ fi
+
+ if [ $asm = auto -a $ARCH = ARM ] ; then
+-    # set flags so neon is built by default
+-    echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
+-
+     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
meta/recipes-multimedia/x264/x264_git.bb new file +24 -0
new file mode 100644
index 0000000..6c6e9a5
@@ -0,0 +1,52 @@
+SUMMARY = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format"
+HOMEPAGE = "http://www.videolan.org/developers/x264.html"
+
+LICENSE = "GPLv2"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "yasm-native"
+
+SRC_URI = "git://git.videolan.org/x264.git \
+           file://don-t-default-to-cortex-a9-with-neon.patch \
+           "
+
+SRCREV = "585324fee380109acd9986388f857f413a60b896"
+
+PV = "r2265+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit lib_package pkgconfig
+
+X264_DISABLE_ASM = ""
+X264_DISABLE_ASM_armv4 = "--disable-asm"
+X264_DISABLE_ASM_armv5 = "--disable-asm"

meta/recipes-multimedia/x264/x264_git.bb line 34

Quoted 10 lines
meta/recipes-multimedia/x264/x264_git.bb new file +10 -0
+
+EXTRA_OECONF = '--prefix=${prefix} \
+                --host=${HOST_SYS} \
+                --cross-prefix=${TARGET_PREFIX} \
+                --sysroot=${STAGING_DIR_TARGET} \
+                --enable-shared \
+                --enable-static \
+                --disable-lavf \
+                --disable-swscale \
+		--enable-pic \

Don't mix tabs and spaces.

Quoted 25 lines
meta/recipes-multimedia/x264/x264_git.bb new file +18 -0
+                ${X264_DISABLE_ASM} \
+               '
+
+do_configure() {
+    ./configure ${EXTRA_OECONF}
+}
+
+# Get rid of -e
+EXTRA_OEMAKE = ""
+AS = "${TARGET_PREFIX}gcc"
+
+do_install() {
+    oe_runmake install DESTDIR=${D}
+}
+
+# PIC can't be enabled for 32-bit x86
+INSANE_SKIP_${PN}_append_i586 = " textrel"
+
Signature · 6 lines
1.8.1.2

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#6 lore raw

Re: [PATCH 2/6] x264: add from meta-oe, update and tweak

Hi Martin,

Quoted 11 lines · On Friday 09 August 2013 11:20:44 Martin Jansa wrote:
Quoted 10 lines · Paul Eggleton

This is required by the default configuration of libav being brought over from meta-oe. Changes from the meta-oe recipe:

* Update to the latest revision from the stable branch (upstream does

not seem to provide stable releases.)

* Add LICENSE_FLAGS = "commercial"
* Enable PIC to fix text relocation warnings and disable warning for

Quoted 7 lines
Quoted 4 lines

i586 (since PIC can't be used there)

* Make SUMMARY value slightly shorter
* Indent SRC_URI properly

I think it was indented correctly and styleguide doesn't define how many spaces should be used for multiline variables.

It doesn't, but the convention that is observed in OE-Core is to indent multiple-line statements to the level of the start of the value in the first line (as indeed the value of EXTRA_OECONF is indented in this recipe). FWIW, I have altered the commit message to refer to consistency with other recipes rather than correctness.

Quoted 11 lines

meta/recipes-multimedia/x264/x264_git.bb line 34

Quoted 9 lines
meta/recipes-multimedia/x264/x264_git.bb new file +9 -0
+EXTRA_OECONF = '--prefix=${prefix} \
+                --host=${HOST_SYS} \
+                --cross-prefix=${TARGET_PREFIX} \
+                --sysroot=${STAGING_DIR_TARGET} \
+                --enable-shared \
+                --enable-static \
+                --disable-lavf \
+                --disable-swscale \
+		--enable-pic \

Don't mix tabs and spaces.

Oops, that's what I get for using vi without configuring it. Fixed on the branch.

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre
#7 lore raw

PATCH 3/6 libav: add from meta-oe, update and tweak

In reply to Paul Eggleton

Changes from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* Add LICENSE_FLAGS = "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for it
* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).
* Drop PR

Notes for the git recipe:
* This hasn't been able to be built recently in meta-oe since there was a circular dependency between libav and libpostproc. libpostproc is part of libav 0.8.x but was split out in 9+ and is not needed at all anymore by libav itself, so this dependency was removed.
* Additionally the recipe was filtering out the option to enable libpostproc but this option wasn't being added by the inc file and thus the filter wasn't doing anything, so I dropped this as well.

---
 .../0001-configure-enable-pic-for-AArch64.patch    |  23 ++++
 meta/recipes-multimedia/libav/libav.inc            | 129 +++++++++++++++++++++
 meta/recipes-multimedia/libav/libav_0.8.8.bb       |  18 +++
 meta/recipes-multimedia/libav/libav_git.bb         |  16 +++
 4 files changed, 186 insertions(+)
 create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch
 create mode 100644 meta/recipes-multimedia/libav/libav.inc
 create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb
 create mode 100644 meta/recipes-multimedia/libav/libav_git.bb
meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch new file +23 -0
new file mode 100644
index 0000000..d9b22b9
@@ -0,0 +1,23 @@
+From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001
+From: Marcin Juszkiewicz <[email protected]>
+Date: Thu, 10 Jan 2013 12:42:19 +0100
+Subject: [PATCH] configure: enable pic for AArch64
+
+Signed-off-by: Marcin Juszkiewicz <[email protected]>
+
+Upstream-Status: Backport
+---
+ configure |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- git.orig/configure
++++ git/configure
+@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99
+ check_host_cflags -Wall
+ 
+ case "$arch" in
+-    alpha|ia64|mips|parisc|ppc|sparc)
++    alpha|ia64|mips|parisc|ppc|sparc|aarch64)
+         spic=$shared
+     ;;
+     x86)
meta/recipes-multimedia/libav/libav.inc new file +129 -0

129 lines not on this page · raw message

meta/recipes-multimedia/libav/libav_0.8.8.bb new file +18 -0
new file mode 100644
index 0000000..9cb4cf2
@@ -0,0 +1,18 @@
+require libav.inc
+
+SRC_URI = "http://libav.org/releases/libav-0.8.8.tar.xz \
+           file://0001-configure-enable-pic-for-AArch64.patch"
+
+SRC_URI[md5sum] = "34b8f1279a04466386ed67731197efe3"
+SRC_URI[sha256sum] = "e95cf618eb6239177a62c46f15e840c37e02e8308baf94912fc5910ff4aacbf2"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
+                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+EXTRA_OECONF += " \
+    --enable-postproc \
+"
+
+
meta/recipes-multimedia/libav/libav_git.bb new file +16 -0
new file mode 100644
index 0000000..951baa9
@@ -0,0 +1,16 @@
+require libav.inc
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+PV = "9.8+git${SRCPV}"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "9aaca159bd220582c698f13d081a455f398c9975"
+SRC_URI = "git://git.libav.org/libav.git"
+
+S = "${WORKDIR}/git"
+
Signature · 1 line
1.8.1.2
#8 lore raw

Re: [PATCH 3/6] libav: add from meta-oe, update and tweak

Quoted 7 lines · Paul Eggleton

Changes from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* Add LICENSE_FLAGS = "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for it

Quoted 8 lines

* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).

only for i586? I've just seen them in armv4t build:
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libswscale/usr/lib/libswscale.so.2.1.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libpostproc/usr/lib/libpostproc.so.52.0.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavutil/usr/lib/libavutil.so.51.22.1' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavformat/usr/lib/libavformat.so.53.21.1' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavfilter/usr/lib/libavfilter.so.2.15.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavdevice/usr/lib/libavdevice.so.53.2.0' has relocations in .text
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libavcodec/usr/lib/libavcodec.so.53.35.0' has relocations in .text

But I know it's not new issue, the same problem was in meta-oe version.

Quoted 240 lines

* Drop PR

Notes for the git recipe:
* This hasn't been able to be built recently in meta-oe since there was a circular dependency between libav and libpostproc. libpostproc is part of libav 0.8.x but was split out in 9+ and is not needed at all anymore by libav itself, so this dependency was removed.
* Additionally the recipe was filtering out the option to enable libpostproc but this option wasn't being added by the inc file and thus the filter wasn't doing anything, so I dropped this as well.

---
 .../0001-configure-enable-pic-for-AArch64.patch    |  23 ++++
 meta/recipes-multimedia/libav/libav.inc            | 129 +++++++++++++++++++++
 meta/recipes-multimedia/libav/libav_0.8.8.bb       |  18 +++
 meta/recipes-multimedia/libav/libav_git.bb         |  16 +++
 4 files changed, 186 insertions(+)
 create mode 100644 meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch
 create mode 100644 meta/recipes-multimedia/libav/libav.inc
 create mode 100644 meta/recipes-multimedia/libav/libav_0.8.8.bb
 create mode 100644 meta/recipes-multimedia/libav/libav_git.bb
meta/recipes-multimedia/libav/libav-0.8.8/0001-configure-enable-pic-for-AArch64.patch new file +23 -0
new file mode 100644
index 0000000..d9b22b9
@@ -0,0 +1,23 @@
+From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001
+From: Marcin Juszkiewicz <[email protected]>
+Date: Thu, 10 Jan 2013 12:42:19 +0100
+Subject: [PATCH] configure: enable pic for AArch64
+
+Signed-off-by: Marcin Juszkiewicz <[email protected]>
+
+Upstream-Status: Backport
+---
+ configure |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- git.orig/configure
++++ git/configure
+@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99
+ check_host_cflags -Wall
+ 
+ case "$arch" in
+-    alpha|ia64|mips|parisc|ppc|sparc)
++    alpha|ia64|mips|parisc|ppc|sparc|aarch64)
+         spic=$shared
+     ;;
+     x86)
meta/recipes-multimedia/libav/libav.inc new file +129 -0
new file mode 100644
index 0000000..eae190d
@@ -0,0 +1,129 @@
+SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video."
+HOMEPAGE = "http://libav.org/"
+SECTION = "libs"
+LICENSE = "GPLv2+"
+LICENSE_FLAGS = "commercial"
+
+# Provides ffmpeg compat, see http://libav.org/about.html
+PROVIDES = "ffmpeg"
+
+ARM_INSTRUCTION_SET = "arm"
+
+DEPENDS = "virtual/libsdl zlib libogg libvorbis libtheora yasm-native"
+
+INC_PR = "r8"
+
+inherit autotools pkgconfig
+
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
+BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
+
+EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
+EXTRA_FFCONF ?= ""
+
+PACKAGECONFIG ??= "bzip2 x264 x11"
+PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
+PACKAGECONFIG[bzip2] = "--enable-bzlib,--disable-bzlib,bzip2"
+PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger"
+PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
+PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
+PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
+PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
+PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
+PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto"
+
+EXTRA_OECONF = " \
+    --enable-shared \
+    --enable-pthreads \
+    --enable-gpl \
+    --enable-avfilter \
+    \
+    --cross-prefix=${TARGET_PREFIX} \
+    --prefix=${prefix} \
+    \
+    --enable-avserver \
+    --enable-avplay \
+    --enable-libtheora  \
+    --enable-libvorbis \
+    --arch=${TARGET_ARCH} \
+    --target-os="linux" \
+    --enable-cross-compile \
+    --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
+    --extra-ldflags="${TARGET_LDFLAGS}" \
+    --sysroot="${STAGING_DIR_TARGET}" \
+    --enable-hardcoded-tables \
+    ${EXTRA_FFCONF} \
+"
+
+do_configure() {
+    # We don't have TARGET_PREFIX-pkgconfig
+    sed -i '/pkg_config_default="${cross_prefix}${pkg_config_default}"/d' ${S}/configure
+    mkdir -p ${B}
+    cd ${B}
+    ${S}/configure ${EXTRA_OECONF}
+    sed -i -e s:Os:O4:g ${B}/config.h
+}
+
+do_install_append() {
+    install -m 0644 ${S}/libavfilter/*.h ${D}${includedir}/libavfilter/
+}
+
+FFMPEG_LIBS = "libavcodec libavdevice libavformat \
+               libavutil libpostproc libswscale libavfilter"
+
+PACKAGES += "${PN}-vhook-dbg ${PN}-vhook ffmpeg-x264-presets"
+
+RSUGGESTS_${PN} = "mplayer"
+FILES_${PN} = "${bindir}"
+FILES_${PN}-dev = "${includedir}/${PN}"
+
+FILES_${PN}-vhook = "${libdir}/vhook"
+FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug"
+
+FILES_ffmpeg-x264-presets = "${datadir}/*.avpreset"
+
+LEAD_SONAME = "libavcodec.so"
+
+FILES_${PN}-dev = "${includedir}"
+
+python populate_packages_prepend() {
+    av_libdir = d.expand('${libdir}')
+    av_pkgconfig = d.expand('${libdir}/pkgconfig')
+
+    # Runtime package
+    do_split_packages(d, av_libdir, '^lib(.*)\.so\..*',
+                      output_pattern='lib%s',
+                      description='libav %s library',
+                      extra_depends='',
+                      prepend=True,
+                      allow_links=True)
+
+    # Development packages (-dev, -staticdev)
+    do_split_packages(d, av_libdir, '^lib(.*)\.so$',
+                      output_pattern='lib%s-dev',
+                      description='libav %s development package',
+                      extra_depends='${PN}-dev',
+                      prepend=True,
+                      allow_links=True)
+    do_split_packages(d, av_pkgconfig, '^lib(.*)\.pc$',
+                      output_pattern='lib%s-dev',
+                      description='libav %s development package',
+                      extra_depends='${PN}-dev',
+                      prepend=True)
+    do_split_packages(d, av_libdir, '^lib(.*)\.a$',
+                      output_pattern='lib%s-staticdev',
+                      description='libav %s development package - static library',
+                      extra_depends='${PN}-dev',
+                      prepend=True,
+                      allow_links=True)
+
+    if d.getVar('TARGET_ARCH', True) == 'i586':
+        # libav can't be build with -fPIC for 32-bit x86
+        pkgs = d.getVar('PACKAGES', True).split()
+        for pkg in pkgs:
+            d.appendVar('INSANE_SKIP_%s' % pkg, ' textrel')
+}
+
+PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|postproc).*"
meta/recipes-multimedia/libav/libav_0.8.8.bb new file +18 -0
new file mode 100644
index 0000000..9cb4cf2
@@ -0,0 +1,18 @@
+require libav.inc
+
+SRC_URI = "http://libav.org/releases/libav-0.8.8.tar.xz \
+           file://0001-configure-enable-pic-for-AArch64.patch"
+
+SRC_URI[md5sum] = "34b8f1279a04466386ed67731197efe3"
+SRC_URI[sha256sum] = "e95cf618eb6239177a62c46f15e840c37e02e8308baf94912fc5910ff4aacbf2"
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
+                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+EXTRA_OECONF += " \
+    --enable-postproc \
+"
+
+
meta/recipes-multimedia/libav/libav_git.bb new file +16 -0
new file mode 100644
index 0000000..951baa9
@@ -0,0 +1,16 @@
+require libav.inc
+
+LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+                    file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
+                    file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
+                    file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+PV = "9.8+git${SRCPV}"
+
+DEFAULT_PREFERENCE = "-1"
+
+SRCREV = "9aaca159bd220582c698f13d081a455f398c9975"
+SRC_URI = "git://git.libav.org/libav.git"
+
+S = "${WORKDIR}/git"
+
Signature · 6 lines
1.8.1.2

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#9 lore raw

Re: [PATCH 3/6] libav: add from meta-oe, update and tweak

Quoted 17 lines · Martin Jansa
Quoted 7 lines · Paul Eggleton

Changes from the meta-oe recipe:
* Update stable recipe to 0.8.8
* Update git recipe to the tag for 9.8 (for now)
* Switch over to a tarball for the release version recipe
* Add LICENSE_FLAGS = "commercial"
* Set SUMMARY instead of DESCRIPTION
* Add yasm-native to DEPENDS since there is now a recipe for it

Quoted 8 lines

* Remove libvpx from DEPENDS and add a PACKAGECONFIG option for it, disabled by default since it wasn't actually being enabled
* Add a PACKAGECONFIG option for x11 to enable/disable x11grab, and add the proper DEPENDS if so (still defaults to enabled)
* Add a number of other PACKAGECONFIG options, replacing some old comments as well as offering the ability to disable x264.
* Hide text relocation warning when building for i586 (PIC can't be enabled for 32-bit x86).

Quoted 2 lines

only for i586? I've just seen them in armv4t build:
WARNING: QA Issue: ELF binary '/OE/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/libav/0.8.8-r0/packages-split/libswscale/usr/lib/libswscale.so.2.1.0' has relocations in .text

That looks like you just need to add arm to...

Quoted 4 lines
Quoted 4 lines

+ case "$arch" in

+-    alpha|ia64|mips|parisc|ppc|sparc)
++    alpha|ia64|mips|parisc|ppc|sparc|aarch64)
+         spic=$shared

... this slightly odd list here. I'm not quite sure why aargh64 is in there but arm isn't.

p.

#10 lore raw

Re: [PATCH 3/6] libav: add from meta-oe, update and tweak

Quoted 1 line · Phil Blundell

I'm not quite sure why aargh64 is in there but arm isn't.

Is that an official architecture alias, or a typo? ;)

Ross

#11 lore raw

PATCH 4/6 gst-ffmpeg: merge in bbappend from meta-oe

In reply to Paul Eggleton

* Enable external libav for better optimisations/additional bugfixes (internal ffmpeg copy is quite old), default enabled but can be disabled using PACKAGECONFIG
* Add a PACKAGECONFIG for orc, disabled by default in line with other gstreamer recipes
* Bump PR to r7 so the bbappend can be dropped without PR going backwards

---
 meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +5 -1
index 8605ca4..d3f2b3e 100644
@@ -27,7 +27,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
 SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
 SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
 
-PR = "r4"
+PR = "r7"
 
 GSTREAMER_DEBUG ?= "--disable-debug"
 
@@ -45,6 +45,10 @@ FFMPEG_EXTRA_CONFIGURE_COMMON = \
 
 EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
 
+PACKAGECONFIG ??= "external-libav"
+PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
+PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
+
 # yasm not found, use --disable-yasm for a crippled build for libav
 EXTRA_OECONF_append_x86-64 = " --disable-yasm "
 EXTRA_OECONF_append_x86 = " --disable-yasm "
Signature · 1 line
1.8.1.2
#12 lore raw

PATCH 5/6 gst-ffmpeg: enable using yasm during build

In reply to Paul Eggleton

A recipe is now available for this, and it should enhance performance on x86/x86-64.

---
 meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +1 -5
index d3f2b3e..ceac4d8 100644
@@ -12,7 +12,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
 LICENSE_FLAGS = "commercial"
 HOMEPAGE = "http://www.gstreamer.net/"
-DEPENDS = "gstreamer gst-plugins-base zlib bzip2"
+DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native"
 
 inherit autotools pkgconfig
 
@@ -49,10 +49,6 @@ PACKAGECONFIG ??= "external-libav"
 PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
 PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
 
-# yasm not found, use --disable-yasm for a crippled build for libav
-EXTRA_OECONF_append_x86-64 = " --disable-yasm "
-EXTRA_OECONF_append_x86 = " --disable-yasm "
-
 FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
 FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
 FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
Signature · 1 line
1.8.1.2
#13 lore raw

PATCH 6/6 gst-ffmpeg: set SUMMARY instead of DESCRIPTION

In reply to Paul Eggleton

We only have a short description, so set SUMMARY and DESCRIPTION will be defaulted from it.

---
 meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb +1 -1
index ceac4d8..8873105 100644
@@ -1,4 +1,4 @@
-DESCRIPTION = "FFmpeg-based GStreamer plug-in"
+SUMMARY = "FFmpeg-based GStreamer plug-in"
 SECTION = "multimedia"
 LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
Signature · 1 line
1.8.1.2