summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia
diff options
context:
space:
mode:
authorAdrian Dudau <adrian.dudau@enea.com>2014-06-26 14:36:22 +0200
committerAdrian Dudau <adrian.dudau@enea.com>2014-06-26 15:32:53 +0200
commitf4cf9fe05bb3f32fabea4e54dd92d368967a80da (patch)
tree487180fa9866985ea7b28e625651765d86f515c3 /meta/recipes-multimedia
downloadpoky-f4cf9fe05bb3f32fabea4e54dd92d368967a80da.tar.gz
initial commit for Enea Linux 4.0
Migrated from the internal git server on the daisy-enea branch Signed-off-by: Adrian Dudau <adrian.dudau@enea.com>
Diffstat (limited to 'meta/recipes-multimedia')
-rw-r--r--meta/recipes-multimedia/alsa/alsa-fpu.inc6
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch50
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/Update-iatomic.h-functions-definitions-for-mips.patch68
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib/fix-tstamp-declaration.patch21
-rw-r--r--meta/recipes-multimedia/alsa/alsa-lib_1.0.27.2.bb49
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools/autotools.patch32
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch25
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools/mips_has_no_io_h.patch16
-rw-r--r--meta/recipes-multimedia/alsa/alsa-tools_1.0.27.bb35
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.27.2.bb17
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch40
-rw-r--r--meta/recipes-multimedia/alsa/alsa-utils_1.0.27.2.bb94
-rw-r--r--meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch35
-rw-r--r--meta/recipes-multimedia/flac/flac_1.3.0.bb43
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch22
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch26
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch57
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch21
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch19
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff16
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb56
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb11
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb12
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo.inc15
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb68
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch18
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb34
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb46
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch27
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch20
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb35
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch35
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb25
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch45
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb39
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-package.inc56
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb29
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins.inc30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c487
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h194
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb24
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb62
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc42
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb12
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb22
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc120
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc39
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb18
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc56
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb17
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb8
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc59
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0.inc27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch28
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb13
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb17
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb48
-rw-r--r--meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch59
-rw-r--r--meta/recipes-multimedia/lame/lame/no-gtk1.patch20
-rw-r--r--meta/recipes-multimedia/lame/lame_3.99.5.bb28
-rw-r--r--meta/recipes-multimedia/liba52/liba52/buildcleanup.patch89
-rw-r--r--meta/recipes-multimedia/liba52/liba52_0.7.4.bb23
-rw-r--r--meta/recipes-multimedia/libav/libav.inc132
-rw-r--r--meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch23
-rw-r--r--meta/recipes-multimedia/libav/libav_0.8.9.bb18
-rw-r--r--meta/recipes-multimedia/libav/libav_9.10.bb13
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch43
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch14
-rw-r--r--meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb22
-rw-r--r--meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch70
-rw-r--r--meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch33
-rw-r--r--meta/recipes-multimedia/libmad/libmad/no-force-mem.patch18
-rw-r--r--meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch14
-rw-r--r--meta/recipes-multimedia/libmad/libmad_0.15.1b.bb37
-rw-r--r--meta/recipes-multimedia/libogg/libogg_1.3.1.bb17
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch58
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch20
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch19
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch18
-rw-r--r--meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb35
-rw-r--r--meta/recipes-multimedia/libpng/libpng/0001-configure-lower-automake-requirement.patch31
-rw-r--r--meta/recipes-multimedia/libpng/libpng_1.6.8.bb27
-rw-r--r--meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb18
-rw-r--r--meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb30
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch15
-rw-r--r--meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb20
-rw-r--r--meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-1960.patch151
-rw-r--r--meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4232.patch15
-rw-r--r--meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4243.patch40
-rw-r--r--meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4244.patch19
-rw-r--r--meta/recipes-multimedia/libtiff/files/libtool2.patch19
-rw-r--r--meta/recipes-multimedia/libtiff/tiff_4.0.3.bb51
-rw-r--r--meta/recipes-multimedia/libvorbis/libvorbis_1.3.4.bb25
-rw-r--r--meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch43
-rw-r--r--meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb37
-rw-r--r--meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb29
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio.inc151
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch30
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio/volatiles.04_pulse2
-rw-r--r--meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb12
-rw-r--r--meta/recipes-multimedia/sbc/sbc_1.2.bb16
-rw-r--r--meta/recipes-multimedia/speex/speex-fpu.inc4
-rw-r--r--meta/recipes-multimedia/speex/speex_1.2rc1.bb25
-rw-r--r--meta/recipes-multimedia/tremor/tremor-20120314/obsolete_automake_macros.patch15
-rw-r--r--meta/recipes-multimedia/tremor/tremor-20120314/tremor-arm-thumb2.patch104
-rw-r--r--meta/recipes-multimedia/tremor/tremor_20120314.bb22
-rw-r--r--meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch20
-rw-r--r--meta/recipes-multimedia/x264/x264_git.bb55
121 files changed, 4726 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/alsa/alsa-fpu.inc b/meta/recipes-multimedia/alsa/alsa-fpu.inc
new file mode 100644
index 0000000000..50402307c5
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-fpu.inc
@@ -0,0 +1,6 @@
1
2def get_alsa_fpu_setting(bb, d):
3 if d.getVar('TARGET_FPU', True) in [ 'soft' ]:
4 return "--with-softfloat"
5 return ""
6
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch b/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch
new file mode 100644
index 0000000000..41b3c23a40
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib/Check-if-wordexp-function-is-supported.patch
@@ -0,0 +1,50 @@
1From 2555c5d62229cf269974f6ec6e4689ab97bbda42 Mon Sep 17 00:00:00 2001
2From: "Hong H. Pham" <hong.pham@windriver.com>
3Date: Tue, 26 Feb 2013 19:40:04 -0500
4Subject: [PATCH] Check if wordexp function is supported
5
6eglibc could be configured to build without wordexp, so it is not enough
7to check if wordexp.h exists (the header file could be installed, but it's
8possible that the wordexp() function is not supported). An additional
9check if wordexp() is supported by the system C library is needed.
10
11Upstream-Status: Pending
12
13Signed-off-by: Hong H. Pham <hong.pham@windriver.com>
14---
15 configure.in | 5 ++++-
16 src/userfile.c | 2 +-
17 2 files changed, 5 insertions(+), 2 deletions(-)
18
19diff --git a/configure.in b/configure.in
20index 4bcb0d6..ba1c2dd 100644
21--- a/configure.in
22+++ b/configure.in
23@@ -333,7 +333,10 @@ arm*)
24 esac
25
26 dnl Check for wordexp.h
27-AC_CHECK_HEADERS([wordexp.h])
28+AC_CHECK_HEADERS([wordexp.h],
29+ dnl Make sure wordexp is supported by the C library
30+ AC_CHECK_FUNCS([wordexp])
31+)
32
33 dnl Check for resmgr support...
34 AC_MSG_CHECKING(for resmgr support)
35diff --git a/src/userfile.c b/src/userfile.c
36index 3a73836..b8ce809 100644
37--- a/src/userfile.c
38+++ b/src/userfile.c
39@@ -32,7 +32,7 @@
40 * stores the first matchine one. The returned string is strdup'ed.
41 */
42
43-#ifdef HAVE_WORDEXP_H
44+#if (defined(HAVE_WORDEXP_H) && defined(HAVE_WORDEXP))
45 #include <wordexp.h>
46 #include <assert.h>
47 int snd_user_file(const char *file, char **result)
48--
491.7.10.4
50
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/Update-iatomic.h-functions-definitions-for-mips.patch b/meta/recipes-multimedia/alsa/alsa-lib/Update-iatomic.h-functions-definitions-for-mips.patch
new file mode 100644
index 0000000000..f1a7947c2b
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib/Update-iatomic.h-functions-definitions-for-mips.patch
@@ -0,0 +1,68 @@
1Upstream-Status: Backport
2
3Signed-off-by: Kai Kang <kai.kang@windriver.com>
4
5From f21f48a70f8437a671b58fcab75e54222a9eea16 Mon Sep 17 00:00:00 2001
6From: Kai Kang <jiashuo.kang at gmail.com>
7Date: Thu, 15 Aug 2013 17:17:19 +0800
8Subject: [PATCH] Update iatomic.h functions definitions for mips
9
10Functions atomic_add(s) and atomic_sub(s) are defined with 'extern
11__inline__' that may cause compile fails when cross compile for mips.
12The error message looks like:
13
14| pcm/.libs/libpcm.a(pcm_meter.o): In function `snd_pcm_meter_update_scope':
15| .../alsa-lib-1.0.27.2/src/pcm/pcm_meter.c:139: undefined reference to `atomic_sub'
16
17Replace the 'extern __inline__' with 'static __inline__' to fix this
18issue.
19
20Signed-off-by: Kai Kang <jiashuo.kang at gmail.com>
21Signed-off-by: Takashi Iwai <tiwai@suse.de>
22---
23 include/iatomic.h | 8 ++++----
24 1 file changed, 4 insertions(+), 4 deletions(-)
25
26diff --git a/include/iatomic.h b/include/iatomic.h
27index 5711fe8..2393297 100644
28--- a/include/iatomic.h
29+++ b/include/iatomic.h
30@@ -720,7 +720,7 @@ typedef struct { volatile int counter; } atomic_t;
31 * Atomically adds @i to @v. Note that the guaranteed useful range
32 * of an atomic_t is only 24 bits.
33 */
34-extern __inline__ void atomic_add(int i, atomic_t * v)
35+static __inline__ void atomic_add(int i, atomic_t * v)
36 {
37 unsigned long temp;
38
39@@ -744,7 +744,7 @@ extern __inline__ void atomic_add(int i, atomic_t * v)
40 * Atomically subtracts @i from @v. Note that the guaranteed
41 * useful range of an atomic_t is only 24 bits.
42 */
43-extern __inline__ void atomic_sub(int i, atomic_t * v)
44+static __inline__ void atomic_sub(int i, atomic_t * v)
45 {
46 unsigned long temp;
47
48@@ -763,7 +763,7 @@ extern __inline__ void atomic_sub(int i, atomic_t * v)
49 /*
50 * Same as above, but return the result value
51 */
52-extern __inline__ int atomic_add_return(int i, atomic_t * v)
53+static __inline__ int atomic_add_return(int i, atomic_t * v)
54 {
55 unsigned long temp, result;
56
57@@ -784,7 +784,7 @@ extern __inline__ int atomic_add_return(int i, atomic_t * v)
58 return result;
59 }
60
61-extern __inline__ int atomic_sub_return(int i, atomic_t * v)
62+static __inline__ int atomic_sub_return(int i, atomic_t * v)
63 {
64 unsigned long temp, result;
65
66--
671.8.1.2
68
diff --git a/meta/recipes-multimedia/alsa/alsa-lib/fix-tstamp-declaration.patch b/meta/recipes-multimedia/alsa/alsa-lib/fix-tstamp-declaration.patch
new file mode 100644
index 0000000000..32b84b7d7e
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib/fix-tstamp-declaration.patch
@@ -0,0 +1,21 @@
1# Author: Michael Lauer <mickey@vanille-media.de>
2# Date: Thu Jan 18 00:27:21 2007 +0000
3# alsa-lib: fix "error: field 'tstamp' has incomplete type" when including alsa headers with strict compilation options
4#
5# Acquired from OpenEmbedded
6
7Upstream-Status: Pending
8
9Index: alsa-lib-1.0.13/include/global.h
10===================================================================
11--- alsa-lib-1.0.13.orig/include/global.h
12+++ alsa-lib-1.0.13/include/global.h
13@@ -29,6 +29,8 @@
14 #define __ALSA_GLOBAL_H_
15
16 /* for timeval and timespec */
17+#define __need_timeval
18+#define __need_timespec
19 #include <time.h>
20
21 #ifdef __cplusplus
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.27.2.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.27.2.bb
new file mode 100644
index 0000000000..cbe04484a4
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.27.2.bb
@@ -0,0 +1,49 @@
1SUMMARY = "ALSA sound library"
2HOMEPAGE = "http://www.alsa-project.org"
3BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
4SECTION = "libs/multimedia"
5LICENSE = "LGPLv2.1 & GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \
7 file://src/socket.c;beginline=1;endline=26;md5=11ff89a8a7a4a690a5c78effe8159545"
8
9BBCLASSEXTEND = "native nativesdk"
10
11# configure.in sets -D__arm__ on the command line for any arm system
12# (not just those with the ARM instruction set), this should be removed,
13# (or replaced by a permitted #define).
14#FIXME: remove the following
15ARM_INSTRUCTION_SET = "arm"
16
17SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \
18 file://Check-if-wordexp-function-is-supported.patch \
19 file://fix-tstamp-declaration.patch \
20 file://Update-iatomic.h-functions-definitions-for-mips.patch \
21 "
22SRC_URI[md5sum] = "69129a7c37697f81ac092335e9fa452b"
23SRC_URI[sha256sum] = "690ed393e7efd4fc7e3a2d2cda5449298ca0c895197e5914e350882012430d19"
24
25inherit autotools pkgconfig
26
27require alsa-fpu.inc
28EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} "
29
30EXTRA_OECONF = "--disable-python"
31
32EXTRA_OECONF_append_libc-uclibc = " --with-versioned=no "
33
34PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev"
35FILES_${PN} += "${libdir}/${BPN}/smixer/*.so"
36FILES_${PN}-dbg += "${libdir}/${BPN}/smixer/.debug"
37FILES_${PN}-dev += "${libdir}/${BPN}/smixer/*.la"
38FILES_libasound = "${libdir}/libasound.so.*"
39FILES_alsa-server = "${bindir}/*"
40FILES_alsa-conf = "${datadir}/alsa/"
41FILES_alsa-dev += "${libdir}/pkgconfig/ ${includedir}/alsa ${datadir}/aclocal/*"
42FILES_alsa-conf-base = "\
43${datadir}/alsa/alsa.conf \
44${datadir}/alsa/cards/aliases.conf \
45${datadir}/alsa/pcm/default.conf \
46${datadir}/alsa/pcm/dmix.conf \
47${datadir}/alsa/pcm/dsnoop.conf"
48
49RDEPENDS_libasound = "alsa-conf-base"
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch b/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch
new file mode 100644
index 0000000000..5aec84c60d
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-tools/autotools.patch
@@ -0,0 +1,32 @@
1Add parameters to autoreconf to support cross compile.
2Remove some sub-components which needs further recipe support.
3
4Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
5
6Upstream-Status: Inappropriate [configuration]
7
8diff -ruN alsa-tools-1.0.24.1-orig//ld10k1/gitcompile alsa-tools-1.0.24.1/ld10k1/gitcompile
9--- alsa-tools-1.0.24.1-orig//ld10k1/gitcompile 2011-07-06 11:27:40.227665002 +0800
10+++ alsa-tools-1.0.24.1/ld10k1/gitcompile 2011-07-14 13:26:18.017665004 +0800
11@@ -1,6 +1,6 @@
12 #!/bin/bash
13
14-autoreconf -fi || exit 1
15+autoreconf $ACLOCAL_FLAGS -fi || exit 1
16 export CFLAGS='-O2 -Wall -pipe -g'
17 echo "CFLAGS=$CFLAGS"
18 echo "./configure $@"
19diff -ruN alsa-tools-1.0.24.1-orig//Makefile alsa-tools-1.0.24.1/Makefile
20--- alsa-tools-1.0.24.1-orig//Makefile 2011-07-06 11:27:40.207665000 +0800
21+++ alsa-tools-1.0.24.1/Makefile 2011-07-14 15:08:08.877665009 +0800
22@@ -1,8 +1,8 @@
23 VERSION = 1.0.27
24 TOP = .
25-SUBDIRS = as10k1 envy24control hdsploader hdspconf hdspmixer \
26+SUBDIRS = as10k1 envy24control \
27 mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \
28- us428control usx2yloader vxloader echomixer ld10k1 qlo10k1 \
29+ us428control usx2yloader vxloader echomixer \
30 hwmixvolume hdajackretask hda-verb
31
32 all:
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
new file mode 100644
index 0000000000..26657266a8
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-tools/makefile_no_gtk.patch
@@ -0,0 +1,25 @@
1Remove some sub-components which need gtk+.
2
3Upstream-Status: Inappropriate [configuration]
4
5Signed-off-by: Rogerio Nunes <ronunes@gmail.com>
6Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
7
8diff --git a/Makefile b/Makefile
9index 2457a1c..72346d9 100644
10--- a/Makefile
11+++ b/Makefile
12@@ -1,9 +1,9 @@
13 VERSION = 1.0.27
14 TOP = .
15-SUBDIRS = as10k1 envy24control \
16- mixartloader pcxhrloader rmedigicontrol sb16_csp seq sscape_ctl \
17- us428control usx2yloader vxloader echomixer \
18- hwmixvolume hdajackretask hda-verb
19+SUBDIRS = as10k1 \
20+ mixartloader pcxhrloader sb16_csp seq sscape_ctl \
21+ us428control usx2yloader vxloader \
22+ hwmixvolume hda-verb
23
24 all:
25 @for i in $(SUBDIRS); do \
diff --git a/meta/recipes-multimedia/alsa/alsa-tools/mips_has_no_io_h.patch b/meta/recipes-multimedia/alsa/alsa-tools/mips_has_no_io_h.patch
new file mode 100644
index 0000000000..09b10f17e6
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-tools/mips_has_no_io_h.patch
@@ -0,0 +1,16 @@
1Upstream-Status: Pending
2Signed-off-by: Saul Wold <sgw@linux.intel.com>
3
4Index: alsa-tools-1.0.26.1/hda-verb/hda-verb.c
5===================================================================
6--- alsa-tools-1.0.26.1.orig/hda-verb/hda-verb.c
7+++ alsa-tools-1.0.26.1/hda-verb/hda-verb.c
8@@ -13,7 +13,7 @@
9 #include <ctype.h>
10 #include <unistd.h>
11 #include <sys/ioctl.h>
12-#ifndef __PPC__
13+#if !(__PPC__ || __mips__)
14 #include <sys/io.h>
15 #endif
16 #include <sys/types.h>
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.0.27.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.0.27.bb
new file mode 100644
index 0000000000..4f64a387ec
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-tools_1.0.27.bb
@@ -0,0 +1,35 @@
1SUMMARY = "Advanced tools for certain ALSA sound card drivers"
2HOMEPAGE = "http://www.alsa-project.org"
3BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
4SECTION = "console/utils"
5LICENSE = "GPLv2 & LGPLv2+"
6DEPENDS = "alsa-lib ncurses"
7
8LIC_FILES_CHKSUM = "file://hdsploader/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
9 file://ld10k1/COPYING.LIB;md5=7fbc338309ac38fefcd64b04bb903e34"
10
11SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2 \
12 file://mips_has_no_io_h.patch \
13 file://autotools.patch \
14 ${@base_contains('DISTRO_FEATURES', 'x11', '', 'file://makefile_no_gtk.patch', d)}"
15
16SRC_URI[md5sum] = "1ea381d00a6069a98613aa7effa4cb51"
17SRC_URI[sha256sum] = "6562611b5a6560712f109e09740a9d4fa47296b07ed9590cb44139c5f154ada2"
18
19inherit autotools-brokensep
20
21EXTRA_OEMAKE += "GITCOMPILE_ARGS='--host=${HOST_SYS} --build=${BUILD_SYS} --target=${TARGET_SYS} --with-libtool-sysroot=${STAGING_DIR_HOST} --prefix=${prefix}'"
22
23PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'gtk+', '', d)}"
24PACKAGECONFIG[gtk+] = ",,gtk+ gtk+3,"
25
26# configure.ac/.in doesn't exist so force copy
27AUTOTOOLS_COPYACLOCAL = "1"
28
29do_compile_prepend () {
30 #Automake dir is not correctly detected in cross compilation case
31 export AUTOMAKE_DIR="$(automake --print-libdir)"
32 export ACLOCAL_FLAGS="--system-acdir=${ACLOCALDIR}/"
33}
34
35FILES_${PN} += "${datadir}/ld10k1"
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.27.2.bb b/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.27.2.bb
new file mode 100644
index 0000000000..968c81ee2b
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-utils-alsaconf_1.0.27.2.bb
@@ -0,0 +1,17 @@
1require alsa-utils_${PV}.bb
2
3SUMMARY = "Shell script that creates ALSA configuration files"
4
5FILESEXTRAPATHS_prepend := "${THISDIR}/alsa-utils:"
6
7PACKAGES = "${PN}"
8RDEPENDS_${PN} += "bash"
9
10FILES_${PN} = "${sbindir}/alsaconf"
11
12S = "${WORKDIR}/alsa-utils-${PV}"
13
14do_install() {
15 install -d ${D}${sbindir}
16 install -m 0755 ${S}/alsaconf/alsaconf ${D}${sbindir}/
17}
diff --git a/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch
new file mode 100644
index 0000000000..477cd11b12
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-utils/0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch
@@ -0,0 +1,40 @@
1From 37c99a3cbff36915b56a5703eeaed3c70796f80f Mon Sep 17 00:00:00 2001
2From: Koen Kooi <koen@dominion.thruhere.net>
3Date: Sun, 9 Oct 2011 20:06:35 +0200
4Subject: [PATCH] alsactl: don't let systemd unit restore the volume when asound.state is missing
5
6This avoids an error on bootup
7
8Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
9
10Filed as https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5459
11
12Upstream-Status: Pending
13
14Index: alsa-utils-1.0.27.2/alsactl/Makefile.am
15===================================================================
16--- alsa-utils-1.0.27.2.orig/alsactl/Makefile.am
17+++ alsa-utils-1.0.27.2/alsactl/Makefile.am
18@@ -36,8 +36,8 @@ install-data-hook:
19 endif
20
21 edit = \
22- $(SED) -r -e 's,@sbindir\@,$(sbindir),g' \
23- -e 's,@daemonswitch\@,$(ALSACTL_DAEMONSWITCH),g' \
24+ $(SED) -e 's,@localstatedir\@,$(localstatedir),g' -e 's,@sbindir\@,$(sbindir),g' \
25+ -e 's,@daemonswitch\@,$(ALSACTL_DAEMONSWITCH),g' \
26 < $< > $@ || rm $@
27
28 alsa-state.service: alsa-state.service.in
29Index: alsa-utils-1.0.27.2/alsactl/alsa-restore.service.in
30===================================================================
31--- alsa-utils-1.0.27.2.orig/alsactl/alsa-restore.service.in
32+++ alsa-utils-1.0.27.2/alsactl/alsa-restore.service.in
33@@ -10,6 +10,7 @@ DefaultDependencies=no
34 After=alsa-state.service
35 Before=shutdown.target
36 Conflicts=shutdown.target
37+ConditionPathExists=@localstatedir@/lib/alsa/asound.state
38
39 [Service]
40 Type=oneshot
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.0.27.2.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.0.27.2.bb
new file mode 100644
index 0000000000..056fca2dac
--- /dev/null
+++ b/meta/recipes-multimedia/alsa/alsa-utils_1.0.27.2.bb
@@ -0,0 +1,94 @@
1SUMMARY = "ALSA sound utilities"
2HOMEPAGE = "http://www.alsa-project.org"
3BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php"
4SECTION = "console/utils"
5LICENSE = "GPLv2+"
6LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
7 file://alsactl/utils.c;beginline=1;endline=20;md5=fe9526b055e246b5558809a5ae25c0b9"
8DEPENDS = "alsa-lib ncurses libsamplerate0 udev"
9
10PACKAGECONFIG ??= "udev"
11PACKAGECONFIG[udev] = "--with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d,,udev"
12
13SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \
14 file://0001-alsactl-don-t-let-systemd-unit-restore-the-volume-wh.patch \
15 "
16
17SRC_URI[md5sum] = "b65e9a04181bd7c9db7667a4566f8dc3"
18SRC_URI[sha256sum] = "02bfac39092f3b68d743c23ad3d688d6c5aa8df69f2ccd692c5b8282edb352ea"
19
20# lazy hack. needs proper fixing in gettext.m4, see
21# http://bugs.openembedded.org/show_bug.cgi?id=2348
22# please close bug and remove this comment when properly fixed
23#
24EXTRA_OECONF = "--disable-xmlto"
25EXTRA_OECONF_append_libc-uclibc = " --disable-nls"
26
27inherit autotools-brokensep gettext
28
29# This are all packages that we need to make. Also, the now empty alsa-utils
30# ipk depends on them.
31
32ALSA_UTILS_PKGS = "\
33 alsa-utils-alsamixer \
34 alsa-utils-midi \
35 alsa-utils-aplay \
36 alsa-utils-amixer \
37 alsa-utils-aconnect \
38 alsa-utils-iecset \
39 alsa-utils-speakertest \
40 alsa-utils-aseqnet \
41 alsa-utils-aseqdump \
42 alsa-utils-alsactl \
43 alsa-utils-alsaloop \
44 alsa-utils-alsaucm \
45 "
46
47PACKAGES += "${ALSA_UTILS_PKGS}"
48RDEPENDS_${PN} += "${ALSA_UTILS_PKGS}"
49
50FILES_${PN} = ""
51FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord"
52FILES_alsa-utils-amixer = "${bindir}/amixer"
53FILES_alsa-utils-alsamixer = "${bindir}/alsamixer"
54FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/speaker-test/"
55FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi"
56FILES_alsa-utils-aconnect = "${bindir}/aconnect"
57FILES_alsa-utils-aseqnet = "${bindir}/aseqnet"
58FILES_alsa-utils-iecset = "${bindir}/iecset"
59FILES_alsa-utils-alsactl = "${sbindir}/alsactl */udev/rules.d ${systemd_unitdir} ${localstatedir}/lib/alsa ${datadir}/alsa/init/"
60FILES_alsa-utils-aseqdump = "${bindir}/aseqdump"
61FILES_alsa-utils-alsaloop = "${bindir}/alsaloop"
62FILES_alsa-utils-alsaucm = "${bindir}/alsaucm"
63
64
65SUMMARY_alsa-utils-aplay = "Play (and record) sound files using ALSA"
66SUMMARY_alsa-utils-amixer = "Command-line control for ALSA mixer and settings"
67SUMMARY_alsa-utils-alsamixer = "ncurses-based control for ALSA mixer and settings"
68SUMMARY_alsa-utils-speakertest = "ALSA surround speaker test utility"
69SUMMARY_alsa-utils-midi = "Miscellaneous MIDI utilities for ALSA"
70SUMMARY_alsa-utils-aconnect = "ALSA sequencer connection manager"
71SUMMARY_alsa-utils-aseqnet = "Network client/server for ALSA sequencer"
72SUMMARY_alsa-utils-iecset = "ALSA utility for setting/showing IEC958 (S/PDIF) status bits"
73SUMMARY_alsa-utils-alsactl = "Saves/restores ALSA-settings in /etc/asound.state"
74SUMMARY_alsa-utils-aseqdump = "Shows the events received at an ALSA sequencer port"
75SUMMARY_alsa-utils-alsaloop = "ALSA PCM loopback utility"
76SUMMARY_alsa-utils-alsaucm = "ALSA Use Case Manager"
77
78RRECOMMENDS_alsa-utils-alsactl = "alsa-states"
79
80ALLOW_EMPTY_alsa-utils = "1"
81
82do_install() {
83 autotools_do_install
84
85 # We don't ship this here because it requires a dependency on bash.
86 # See alsa-utils-alsaconf_${PV}.bb
87 rm ${D}${sbindir}/alsaconf
88
89 if ${@base_contains('PACKAGECONFIG', 'udev', 'false', 'true', d)}; then
90 # This is where alsa-utils will install its rules if we don't tell it anything else.
91 rm -rf ${D}/lib/udev
92 rmdir --ignore-fail-on-non-empty ${D}/lib
93 fi
94}
diff --git a/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch b/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch
new file mode 100644
index 0000000000..d086cc910f
--- /dev/null
+++ b/meta/recipes-multimedia/flac/flac-1.3.0/0001-Fix-Makefile.am-altivec-logic.patch
@@ -0,0 +1,35 @@
1From 1b3597cdc7b5e604ea37db29b2a65aab91e263e6 Mon Sep 17 00:00:00 2001
2From: Gustavo Zacarias <gustavo@zacarias.com.ar>
3Date: Wed, 4 Dec 2013 13:31:28 -0300
4Subject: [PATCH] Fix Makefile.am altivec logic
5
6Upstream-Status: Backport
7
8Besides SPE (FSL e500v? cores) there are other powerpc processors
9that don't support altivec instructions so only enable them when it's
10100% sure that the target has it.
11
12Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
13Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
14Signed-off-by: Cristian Iorga <cristian.iorga@intel.com>
15---
16 src/libFLAC/Makefile.am | 3 +--
17 1 file changed, 1 insertion(+), 2 deletions(-)
18
19diff --git a/src/libFLAC/Makefile.am b/src/libFLAC/Makefile.am
20index 247e33c..258de40 100644
21--- a/src/libFLAC/Makefile.am
22+++ b/src/libFLAC/Makefile.am
23@@ -47,8 +47,7 @@ CPUCFLAGS = -faltivec -force_cpusubtype_ALL -DFLAC__NO_ASM
24 else
25 # Linux-gcc for PPC does not have -force_cpusubtype_ALL, it is Darwin-specific
26 CPUCFLAGS =
27-if FLaC__CPU_PPC_SPE
28-else
29+if FLaC__USE_ALTIVEC
30 CPUCFLAGS += -maltivec -mabi=altivec
31 endif
32 #@@@ PPC optimizations temporarily disabled
33--
341.8.3.2
35
diff --git a/meta/recipes-multimedia/flac/flac_1.3.0.bb b/meta/recipes-multimedia/flac/flac_1.3.0.bb
new file mode 100644
index 0000000000..ab37cbe0ad
--- /dev/null
+++ b/meta/recipes-multimedia/flac/flac_1.3.0.bb
@@ -0,0 +1,43 @@
1SUMMARY = "Free Lossless Audio Codec"
2DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, a lossless audio compression format."
3HOMEPAGE = "https://xiph.org/flac/"
4BUGTRACKER = "http://sourceforge.net/p/flac/bugs/"
5SECTION = "libs"
6LICENSE = "GFDL-1.2 & GPLv2+ & LGPLv2.1+ & BSD"
7LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \
8 file://src/Makefile.am;beginline=1;endline=17;md5=59575c1aa8f5f70d9361b776c2e2bdb5 \
9 file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://src/flac/main.c;beginline=1;endline=18;md5=d36a16abc38d5ffd346ac4ba1be1932b \
11 file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \
12 file://src/plugin_common/all.h;beginline=1;endline=18;md5=e33e281151e7f40db2d3d170d9b0c1bb \
13 file://COPYING.Xiph;md5=755582d124a03e3001afea59fc02b61b \
14 file://include/FLAC/all.h;beginline=65;endline=70;md5=64474f2b22e9e77b28d8b8b25c983a48"
15DEPENDS = "libogg"
16
17SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \
18 file://0001-Fix-Makefile.am-altivec-logic.patch \
19 "
20
21SRC_URI[md5sum] = "13b5c214cee8373464d3d65dee362cdd"
22SRC_URI[sha256sum] = "fa2d64aac1f77e31dfbb270aeb08f5b32e27036a52ad15e69a77e309528010dc"
23
24inherit autotools-brokensep gettext
25
26EXTRA_OECONF = "--disable-oggtest \
27 --with-ogg-libraries=${STAGING_LIBDIR} \
28 --with-ogg-includes=${STAGING_INCDIR} \
29 --disable-xmms-plugin \
30 --without-libiconv-prefix \
31 "
32
33EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "altivec", " --enable-altivec", " --disable-altivec", d)}"
34EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "core2", " --enable-sse", "", d)}"
35EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "corei7", " --enable-sse", "", d)}"
36
37PACKAGES += "libflac libflac++ liboggflac liboggflac++"
38FILES_${PN} = "${bindir}/*"
39FILES_libflac = "${libdir}/libFLAC.so.*"
40FILES_libflac++ = "${libdir}/libFLAC++.so.*"
41FILES_liboggflac = "${libdir}/libOggFLAC.so.*"
42FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*"
43
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch
new file mode 100644
index 0000000000..9ef6f7c4bf
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch
@@ -0,0 +1,22 @@
1Disable yasm for libav when --disable-yasm
2
3Upstream-Status: Inappropriate [configuration]
4
5Signed-off-by: Shane Wang <shane.wang@intel.com>
6
7diff -r f2f8f74c6e30 configure.ac
8--- a/configure.ac Thu Dec 22 23:56:09 2011 +0800
9+++ b/configure.ac Thu Dec 22 23:57:37 2011 +0800
10@@ -325,6 +325,12 @@
11 --enable-gpl"
12 fi
13
14+ AC_ARG_ENABLE(yasm,
15+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
16+ if test "x$enable_yasm" = "xno"; then
17+ embffmpeg_configure_args="$embffmpeg_configure_args --disable-yasm"
18+ fi
19+
20 # if we are cross-compiling, tell ffmpeg so
21 target_os=`echo $host_os | sed 's/-gnu//'`
22 if test "x$cross_compiling" = xyes; then
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
new file mode 100644
index 0000000000..a28404b072
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
@@ -0,0 +1,26 @@
1avcodec/cdgraphics: check buffer size before use
2
3Fixes out of array accesses
4
5Backported from:http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ad002e1a13a8df934bd6cb2c84175a4780ab8942
6
7Upstream-status: Backport
8
9Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11Signed-off-by: Ming Liu <ming.liu@windriver.com>
12
13diff -urpN a/gst-libs/ext/libav/libavcodec/cdgraphics.c b/gst-libs/ext/libav/libavcodec/cdgraphics.c
14--- a/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:17:08.399876575 +0800
15+++ b/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:18:05.880502267 +0800
16@@ -291,7 +291,9 @@ static int cdg_decode_frame(AVCodecConte
17 inst = bytestream_get_byte(&buf);
18 inst &= CDG_MASK;
19 buf += 2; /// skipping 2 unneeded bytes
20- bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
21+
22+ if (buf_size > CDG_HEADER_SIZE)
23+ bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
24
25 if ((command & CDG_MASK) == CDG_COMMAND) {
26 switch (inst) {
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
new file mode 100644
index 0000000000..ade24dc06a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
@@ -0,0 +1,57 @@
1Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1
2
3Fixes these errors on x86
4
5libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
6libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
7libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
8libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
9libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
10libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
11libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
12libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
13make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
14
15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Upstream-Status: Backport
18Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
19===================================================================
20--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
21+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
22@@ -398,7 +398,7 @@
23 "2: \n\t"\
24 \
25 : "+a"(src), "+c"(dst)\
26- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
27+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
28 : "memory"\
29 );\
30 src += 4-(h+5)*srcStride;\
31@@ -446,7 +446,7 @@
32 QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
33 "2: \n\t"\
34 : "+a"(src)\
35- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
36+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
37 : "memory"\
38 );\
39 tmp += 4;\
40@@ -823,7 +823,7 @@
41 "2: \n\t"\
42 \
43 : "+a"(src), "+c"(dst)\
44- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
45+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
46 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
47 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
48 "memory"\
49@@ -878,7 +878,7 @@
50 QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
51 "2: \n\t"
52 : "+a"(src)
53- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
54+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
55 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
56 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
57 "memory"
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
new file mode 100644
index 0000000000..eba4988031
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
@@ -0,0 +1,21 @@
1diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
2index 8473069..4f74952 100755
3--- a/gst-libs/ext/libav/configure
4+++ b/gst-libs/ext/libav/configure
5Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080)
6
7Upstream-Status: Backport
8
9Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
10
11@@ -2210,6 +2210,10 @@ elif enabled ppc; then
12 cpuflags="-mcpu=cell"
13 enable ldbrx
14 ;;
15+ e500mc)
16+ cpuflags="-mcpu=e500mc"
17+ disable altivec
18+ ;;
19 e500v2)
20 cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
21 disable altivec
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch
new file mode 100644
index 0000000000..d9ea2c29e0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch
@@ -0,0 +1,19 @@
1libav: Add configs for ppc e5500
2
3Upstream-Status: Pending
4
5Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
6
7--- gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:36.073104964 -0400
8+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:38.269104150 -0400
9@@ -2222,6 +2222,10 @@
10 cpuflags="-mcpu=8540 -mhard-float"
11 disable altivec
12 ;;
13+ e5500)
14+ cpuflags="-mcpu=e5500 -mhard-float"
15+ disable altivec
16+ ;;
17 esac
18
19 elif enabled x86; then
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff
new file mode 100644
index 0000000000..5f08afe59a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff
@@ -0,0 +1,16 @@
1Lower the rank of ffmpeg plugin so codecs that hook into accelerated pieces (e.g. dsp or hw engines) can get picked over this
2Derived from OE by Dongxiao Xu <dongxiao.xu@intel.com>
3
4Upstream-Status: Inappropriate [embedded specific]
5
6--- /tmp/gstffmpegdec.c 2009-03-05 09:31:15.000000000 +0100
7+++ gst-ffmpeg-0.10.6/ext/ffmpeg/gstffmpegdec.c 2009-03-05 09:33:09.000000000 +0100
8@@ -2588,7 +2588,7 @@
9 case CODEC_ID_MSMPEG4V3:
10 case CODEC_ID_H264:
11 case CODEC_ID_COOK:
12- rank = GST_RANK_PRIMARY;
13+ rank = GST_RANK_SECONDARY;
14 break;
15 case CODEC_ID_DVVIDEO:
16 /* we have a good dv decoder, fast on both ppc as well as x86. they say
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
new file mode 100644
index 0000000000..e1257a2697
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
@@ -0,0 +1,56 @@
1SUMMARY = "FFmpeg-based GStreamer plug-in"
2SECTION = "multimedia"
3LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://ext/libpostproc/gstpostproc.c;beginline=1;endline=18;md5=5896e445e41681324381f5869ee33d38 \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://ext/ffmpeg/gstffmpeg.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9 \
8 file://gst-libs/ext/libav/LICENSE;md5=abc3b8cb02856aa7823bbbd162d16232 \
9 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
12 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13LICENSE_FLAGS = "commercial"
14HOMEPAGE = "http://www.gstreamer.net/"
15DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native"
16
17inherit autotools pkgconfig
18
19SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
20 file://lower-rank.diff \
21 file://configure-fix.patch \
22 file://h264_qpel_mmx.patch \
23 file://libav_e500mc.patch \
24 file://libav_e5500.patch \
25 file://gst-ffmpeg-CVE-2013-3674.patch \
26"
27
28SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
29SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
30
31PR = "r8"
32
33GSTREAMER_DEBUG ?= "--disable-debug"
34
35FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure"
36# pass --cpu for powerpc. get cpu name by stripping "ppc" or "ppc64"
37# from DEFAULTTUNE
38FFMPEG_CPU_powerpc = "--cpu=${@d.getVar('DEFAULTTUNE')[3:]}"
39FFMPEG_CPU_powerpc64 = "--cpu=${@d.getVar('DEFAULTTUNE')[5:]}"
40FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux ${FFMPEG_CPU} \
41 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
42 --ranlib='${RANLIB}' \
43 ${GSTREAMER_DEBUG}"
44FFMPEG_EXTRA_CONFIGURE_COMMON = \
45'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"'
46
47EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
48
49PACKAGECONFIG ??= "external-libav"
50PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
51PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
52
53FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
54FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
55FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
56FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb
new file mode 100644
index 0000000000..47dbc3492b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb
@@ -0,0 +1,11 @@
1require gst-fluendo.inc
2
3SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2"
6LICENSE_FLAGS = "commercial"
7
8acpaths = "-I ${S}/common/m4 -I ${S}/m4"
9
10SRC_URI[md5sum] = "5d95a9a216dd15bc5c00c9414061115c"
11SRC_URI[sha256sum] = "30c79d24d8926f75dd4ef0f572942ce155ad541734b36a95591b9c0524dcc0f3"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb
new file mode 100644
index 0000000000..f79015403b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb
@@ -0,0 +1,12 @@
1require gst-fluendo.inc
2
3SUMMARY = "Fluendo closed-format mpeg video GStreamer plug-in"
4LICENSE = "MPLv1.1"
5LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \
6 file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd"
7LICENSE_FLAGS = "commercial"
8
9acpaths = "-I ${S}/common/m4 -I ${S}/m4"
10
11SRC_URI[md5sum] = "df726579404af65b9536428661ab4322"
12SRC_URI[sha256sum] = "a9784bc16352d0fb73de81b9c17142609e8bede46f6d9b881fc3d19673954abf"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
new file mode 100644
index 0000000000..c7e6595232
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
@@ -0,0 +1,15 @@
1SUMMARY = "Fluendo closed-format GStreamer plug-in"
2SECTION = "multimedia"
3HOMEPAGE = "http://www.fluendo.com/resources/source-plugins.php"
4DEPENDS = "gstreamer zlib"
5
6inherit autotools pkgconfig
7
8SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2"
9
10FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
11FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
12FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
13
14GSTREAMER_DEBUG ?= "--disable-debug"
15EXTRA_OECONF = "${GSTREAMER_DEBUG} --disable-valgrind"
diff --git a/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb b/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb
new file mode 100644
index 0000000000..9fb2f8fbb3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb
@@ -0,0 +1,68 @@
1SUMMARY = "GStreamer package groups"
2LICENSE = "MIT"
3DEPENDS = "gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad"
4LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
5 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
6
7
8PR = "r13"
9
10PACKAGES = "\
11 gst-meta-base \
12 gst-meta-x11-base \
13 gst-meta-audio \
14 gst-meta-debug \
15 gst-meta-video"
16
17ALLOW_EMPTY_gst-meta-base = "1"
18ALLOW_EMPTY_gst-meta-x11-base = "1"
19ALLOW_EMPTY_gst-meta-audio = "1"
20ALLOW_EMPTY_gst-meta-debug = "1"
21ALLOW_EMPTY_gst-meta-video = "1"
22
23RDEPENDS_gst-meta-base = "\
24 ${@base_contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \
25 gstreamer \
26 gst-plugins-base-playbin \
27 gst-plugins-base-decodebin \
28 gst-plugins-base-decodebin2 \
29 gst-plugins-base-gio \
30 gst-plugins-base-alsa \
31 gst-plugins-base-volume \
32 gst-plugins-base-audioconvert \
33 gst-plugins-base-audioresample \
34 gst-plugins-base-typefindfunctions \
35 gst-plugins-base-videoscale \
36 gst-plugins-base-ffmpegcolorspace \
37 gst-plugins-good-autodetect \
38 gst-plugins-good-souphttpsrc"
39
40RRECOMMENDS_gst-meta-x11-base = "\
41 gst-plugins-base-ximagesink \
42 gst-plugins-base-xvimagesink"
43
44RDEPENDS_gst-meta-audio = "\
45 gst-meta-base \
46 gst-plugins-base-vorbis \
47 gst-plugins-base-ogg \
48 gst-plugins-good-wavparse \
49 gst-plugins-good-flac \
50 ${COMMERCIAL_AUDIO_PLUGINS}"
51
52
53RDEPENDS_gst-meta-debug = "\
54 gst-meta-base \
55 gst-plugins-good-debug \
56 gst-plugins-base-audiotestsrc \
57 gst-plugins-base-videotestsrc"
58
59
60RDEPENDS_gst-meta-video = "\
61 gst-meta-base \
62 gst-plugins-good-avi \
63 gst-plugins-good-matroska \
64 gst-plugins-base-theora \
65 ${COMMERCIAL_VIDEO_PLUGINS}"
66
67RRECOMMENDS_gst-meta-video = "\
68 gst-meta-audio"
diff --git a/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch b/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch
new file mode 100644
index 0000000000..57a63b5a0f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch
@@ -0,0 +1,18 @@
1Upstream-Status: Pending
2
3Signed-off-by: Saul Wold <sgw@linux.intel.com>
4
5Index: gst-openmax-0.10.1/omx/gstomx.c
6===================================================================
7--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700
8+++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700
9@@ -238,7 +238,8 @@
10 const gchar *element_name = gst_structure_nth_field_name (element_table, i);
11 GstStructure *element = get_element_entry (element_name);
12 const gchar *type_name, *parent_type_name;
13- const gchar *component_name, *component_role, *library_name;
14+ const gchar *component_name, *library_name;
15+ const gchar __attribute__((__unused__)) *component_role;
16 GType type;
17 gint rank;
18
diff --git a/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb
new file mode 100644
index 0000000000..ea3b66ba8c
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb
@@ -0,0 +1,34 @@
1SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components"
2DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \
3communication with OpenMAX Integration Layer (IL) components. OpenMAX \
4IL is an industry standard that provides an abstraction layer for \
5computer graphics, video, and sound routines."
6HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX"
7DEPENDS = "gstreamer"
8RDEPENDS_${PN} = "libomxil"
9LICENSE = "LGPLv2.1"
10LICENSE_FLAGS = "commercial"
11LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
12 file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc"
13
14SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \
15 file://gcc_4.6.patch \
16 "
17
18inherit autotools
19
20# Tell configure that this isn't a development snapshot so we don't want
21# -Werror (hopefully fixed in 0.10.2)
22export GST_CVS="no"
23
24EXTRA_OECONF += "--disable-valgrind"
25
26PR = "r4"
27
28FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so"
29FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la"
30FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a"
31FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/"
32
33SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e"
34SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb
new file mode 100644
index 0000000000..dceb12cf2a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb
@@ -0,0 +1,46 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c"
8
9DEPENDS += "gst-plugins-base"
10
11PR = "r4"
12
13inherit gettext gsettings
14
15EXTRA_OECONF += "--disable-experimental \
16 --disable-sdl --disable-cdaudio --disable-directfb \
17 --disable-vdpau --disable-apexsink"
18
19PACKAGECONFIG ??= "bzip curl \
20 ${@base_contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}"
21
22PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2"
23PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
24PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg,"
25PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
26PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
27PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms"
28PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng"
29PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
30PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper"
31PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
32PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
33PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
34PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx"
35PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass"
36PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
37
38ARM_INSTRUCTION_SET = "arm"
39
40do_configure_prepend() {
41 # This m4 file contains nastiness which conflicts with libtool 2.2.2
42 rm ${S}/m4/lib-link.m4 || true
43}
44
45SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987"
46SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
new file mode 100644
index 0000000000..b8602c80d7
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
@@ -0,0 +1,27 @@
1Upstream-Status: Submitted [similar patch by other author, bugzilla]
2Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600
3
4Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't
5search for gstconfig.h in /usr/include.
6
7Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
8---
9 configure.ac | 2 +-
10 1 files changed, 1 insertions(+), 1 deletions(-)
11
12diff --git a/configure.ac b/configure.ac
13index 1901bcf..460fb0a 100644
14--- a/configure.ac
15+++ b/configure.ac
16@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume)
17 dnl check for gstreamer core features (subsystems)
18 dnl FIXME: this assumes srcdir == builddir for uninstalled setups
19 GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
20-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH)
21+AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH)
22 AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1")
23
24 dnl disable plug-ins that require libxml2's HTML support if it is not available
25--
261.7.5.4
27
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
new file mode 100644
index 0000000000..99dbc9d52e
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
@@ -0,0 +1,20 @@
1Remove -DTREMOR option since Tremor has dropped its internal
2libogg2, and gst-plugins-base has dependency on that.
3
4Upstream-Status: Inappropriate [configuration]
5
6Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
7Signed-off-by: Shane Wang <shane.wang@intel.com>
8
9diff -r 70065fb4e085 ext/vorbis/Makefile.am
10--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800
11+++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800
12@@ -30,7 +30,7 @@
13 gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
14 libgstivorbisdec_la_CFLAGS = \
15 $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
16- -DTREMOR $(IVORBIS_CFLAGS)
17+ $(IVORBIS_CFLAGS)
18 libgstivorbisdec_la_LIBADD = \
19 $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
20 $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb
new file mode 100644
index 0000000000..53cc55cc26
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb
@@ -0,0 +1,35 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0"
8
9DEPENDS += "alsa-lib liboil libogg libvorbis libtheora util-linux tremor glib-2.0-native"
10
11SRC_URI += "file://gst-plugins-base-tremor.patch \
12 file://configure.ac-fix-subparse-plugin.patch"
13
14SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a"
15SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976"
16
17PR = "r8"
18
19inherit gettext
20
21EXTRA_OECONF += "--disable-freetypetest"
22
23PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
24
25PACKAGECONFIG[gnomevfs] = "--enable-gnome_vfs,--disable-gnome_vfs,gnome-vfs"
26PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
27PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
28PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice"
29
30do_configure_prepend() {
31 # This m4 file contains nastiness which conflicts with libtool 2.2.2
32 rm -f ${S}/m4/lib-link.m4
33}
34
35FILES_${PN} += "${datadir}/${BPN}"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
new file mode 100644
index 0000000000..bc2f88b241
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
@@ -0,0 +1,35 @@
1From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001
2From: Jeremy Stashluk <jstashluk@dekaresearch.com>
3Date: Wed, 6 Feb 2013 09:59:48 -0500
4Subject: [PATCH] conditional gl framebuffer undefined use
5
6The OpenGL extension GL_ARB_framebuffer_object defines the macro
7GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error
8string if the extension provides functions that might return the macro.
9
10Upstream-Status: Pending
11
12Signed-off-by: Jeremy Stashluk <jstashluk@dekaresearch.com>
13---
14 gst-libs/gst/gl/gstgldisplay.c | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c
18index 3ed0b71..64c6c2c 100644
19--- a/gst-libs/gst/gl/gstgldisplay.c
20+++ b/gst-libs/gst/gl/gstgldisplay.c
21@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void)
22 GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS");
23 break;
24
25+#if defined(GL_ARB_framebuffer_object)
26 case GL_FRAMEBUFFER_UNDEFINED:
27 GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED");
28 break;
29+#endif
30
31 default:
32 GST_ERROR ("General FBO error");
33--
341.7.9.5
35
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb
new file mode 100644
index 0000000000..90efbcc025
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb
@@ -0,0 +1,25 @@
1require recipes-multimedia/gstreamer/gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
5
6SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938"
7SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210"
8
9SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch"
10
11DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew"
12
13PR = "r4"
14
15inherit gettext
16
17# This package doesn't have a configure switch for EGL or GL, so forcibly tell
18# configure that it can't find gl.h so it always uses EGL. If/when we have some
19# way for machines to specify their preferred GL flavour this can be
20# automatically adapted.
21EXTRA_OECONF += "ac_cv_header_GL_gl_h=no"
22
23ALLOW_EMPTY_${PN} = "1"
24ALLOW_EMPTY_${PN}-apps = "1"
25ALLOW_EMPTY_${PN}-glib = "1"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
new file mode 100644
index 0000000000..6456d3c6c2
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
@@ -0,0 +1,33 @@
1From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Wed, 5 Sep 2012 18:54:42 +0200
4Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input
5 field was removed
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10Upstream-Status: Backport
11
12[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012
13
14Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
15---
16 sys/v4l2/gstv4l2bufferpool.c | 1 -
17 1 files changed, 0 insertions(+), 1 deletions(-)
18
19diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
20index b81c6a4..51cc0ce 100644
21--- a/sys/v4l2/gstv4l2bufferpool.c
22+++ b/sys/v4l2/gstv4l2bufferpool.c
23@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
24 GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
25 ret->vbuffer.m.offset);
26 GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
27- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
28
29 data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
30 PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
31--
321.7.6.5
33
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
new file mode 100644
index 0000000000..bd0de583a5
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
@@ -0,0 +1,45 @@
1From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@windriver.com>
3Date: Thu, 22 Aug 2013 12:15:54 -0400
4Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER
5
6kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls]
7removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three
8years of depreciation.
9
10The ioctl values are still free, and the case statement which processess them
11in v4l2 userspace falls through to the proper replacement. So in the short
12term, we can explicitly define them using the old absolute values, and everything
13will work.
14
15Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
16---
17 sys/v4l2/v4l2_calls.c | 9 +++++++--
18 1 file changed, 7 insertions(+), 2 deletions(-)
19
20diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
21index 309bfb6..3c64544 100644
22--- a/sys/v4l2/v4l2_calls.c
23+++ b/sys/v4l2/v4l2_calls.c
24@@ -54,11 +54,16 @@
25 #include "gst/gst-i18n-plugin.h"
26
27 /* Those are ioctl calls */
28+
29+/* V4L2_CID_HCENTER has been removed from the mainline kernel, but
30+ the ioctl space is still present. Since these values fall through
31+ to their replacement, it is safe (in the short term) to re-use the
32+ old values explictily */
33 #ifndef V4L2_CID_HCENTER
34-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
35+#define V4L2_CID_HCENTER V4L2_CID_BASE+22
36 #endif
37 #ifndef V4L2_CID_VCENTER
38-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
39+#define V4L2_CID_VCENTER V4L2_CID_BASE+23
40 #endif
41
42 GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
43--
441.7.10.4
45
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
new file mode 100644
index 0000000000..e0443406a0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
@@ -0,0 +1,39 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
6 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
7
8PR = "r8"
9
10PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} jpeg"
11PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
12PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
13PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
14PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
15PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
16PACKAGECONFIG[v4l] = "--with-libv4l2,--without-libv4l2,libv4l"
17PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2"
18PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
19
20DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
21 speex libsoup-2.4"
22
23inherit gettext gconf
24
25SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch"
26SRC_URI += "file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch"
27
28EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \
29 --disable-examples --disable-taglib"
30
31do_configure_prepend() {
32 # This m4 file contains nastiness which conflicts with libtool 2.2.2
33 rm ${S}/m4/lib-link.m4 || true
34}
35
36SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6"
37SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6"
38
39FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
new file mode 100644
index 0000000000..0503b34ea3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
@@ -0,0 +1,56 @@
1PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages "
2PACKAGESPLITFUNCS_append = " set_metapkg_rdepends "
3
4python split_gstreamer10_packages () {
5 gst_libdir = d.expand('${libdir}/gstreamer-${LIBV}')
6 postinst = d.getVar('plugin_postinst', True)
7 glibdir = d.getVar('libdir', True)
8
9 do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
10 do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
11 do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends=d.expand('${PN}-dev'))
12 do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends=d.expand('${PN}-staticdev'))
13}
14
15python set_metapkg_rdepends () {
16 import os
17
18 pn = d.getVar('PN', True)
19 metapkg = pn + '-meta'
20 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
21 d.setVar('FILES_' + metapkg, "")
22 blacklist = [ pn, pn + '-locale', pn + '-dev', pn + '-dbg', pn + '-doc', pn + '-meta' ]
23 metapkg_rdepends = []
24 packages = d.getVar('PACKAGES', True).split()
25 pkgdest = d.getVar('PKGDEST', True)
26 for pkg in packages[1:]:
27 if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.count('locale') and not pkg.count('-staticdev'):
28 # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
29 # If this subdirectory is empty, then the package is.
30 # Empty packages do not get added to the meta package's RDEPENDS
31 pkgdir = os.path.join(pkgdest, pkg)
32 if os.path.exists(pkgdir):
33 dir_contents = os.listdir(pkgdir) or []
34 else:
35 dir_contents = []
36 is_empty = len(dir_contents) == 0
37 if not is_empty:
38 metapkg_rdepends.append(pkg)
39 d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
40 d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package')
41}
42
43# metapkg has runtime dependency on PN
44# each plugin depends on PN, plugin-dev on PN-dev, plugin-staticdev on PN-staticdev
45# so we need them even when empty (like in gst-plugins-good case)
46ALLOW_EMPTY_${PN} = "1"
47ALLOW_EMPTY_${PN}-dev = "1"
48ALLOW_EMPTY_${PN}-staticdev = "1"
49
50PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib"
51FILES_${PN}-apps = "${bindir}"
52
53FILES_${PN} = "${datadir}/gstreamer-${LIBV}"
54FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
55FILES_${PN}-glib = "${datadir}/glib-2.0"
56
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb
new file mode 100644
index 0000000000..2fdf03f348
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb
@@ -0,0 +1,29 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
4LICENSE_FLAGS = "commercial"
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \
7 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \
8 file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
9
10DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
11PR = "r3"
12
13inherit gettext
14
15EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \
16 --disable-orc"
17
18PACKAGECONFIG ??= ""
19PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
20PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
21PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
22
23do_configure_prepend() {
24 # This m4 file contains nastiness which conflicts with libtool 2.2.2
25 rm ${S}/m4/lib-link.m4 || true
26}
27
28SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2"
29SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
new file mode 100644
index 0000000000..b2d3d3c6a1
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
@@ -0,0 +1,30 @@
1SUMMARY = "Plugins for the GStreamer multimedia framework"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
4SECTION = "multimedia"
5DEPENDS = "gstreamer"
6
7inherit autotools pkgconfig
8
9FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
10
11SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2"
12
13GSTREAMER_DEBUG ?= "--disable-debug"
14EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples "
15
16acpaths = "-I ${S}/common/m4 -I ${S}/m4"
17
18LIBV = "0.10"
19require gst-plugins-package.inc
20
21PACKAGES_DYNAMIC += "^${PN}-.*"
22
23# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
24# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
25# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
26oe_runconf_prepend() {
27 if [ -e ${S}/po/Makefile.in.in ]; then
28 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
29 fi
30}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch
new file mode 100644
index 0000000000..5d8bb13403
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch
@@ -0,0 +1,19 @@
1# gstreamer: Fix a problem with configure if check has already been built
2# Richard Purdie <rpurdie@linux.intel.com>
3
4Upstream-Status: Inappropriate [configuration]
5
6diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac
7--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800
8+++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800
9@@ -543,8 +543,10 @@
10 *) BUILD_CHECK=yes ;;
11 esac
12 ])
13+
14 dnl bit of a misnomer, but keep the conditional named like this so we don't
15 dnl have to change too much elsewhere
16+HAVE_CHECK=no
17 AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes")
18
19 dnl configure the desired buffer alignment
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch
new file mode 100644
index 0000000000..30be85f59d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch
@@ -0,0 +1,16 @@
1# Fix crash with gst-inspect
2# Chris Lord <chris@openedhand.com>
3
4Upstream-Status: Pending
5
6--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100
7+++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100
8@@ -1123,7 +1123,7 @@
9 g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
10 g_option_context_add_group (ctx, gst_init_get_option_group ());
11 if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
12- g_print ("Error initializing: %s\n", err->message);
13+ g_print ("Error initializing: %s\n", err ? err->message : "(null)");
14 exit (1);
15 }
16 g_option_context_free (ctx);
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c
new file mode 100644
index 0000000000..c1f3e71af6
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c
@@ -0,0 +1,487 @@
1/* GStreamer
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3 * 2000 Wim Taymans <wtay@chello.be>
4 * 2005 David A. Schleef <ds@schleef.org>
5 *
6 * gstregistryxml.c: GstRegistry object, support routines
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it ulnder the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
22 */
23
24
25#include <gst/gstregistrybinary.h>
26
27/*
28** Simple handy function to write a memory location to the registry cache file
29*/
30inline static gboolean
31gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size)
32{
33 if (write(registry->cache_file, mem, size) != size)
34 {
35 GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n",
36 mem, size, strerror(errno));
37 return FALSE;
38 }
39 return TRUE;
40}
41
42/*
43** Save features GstBinary style
44*/
45static gboolean
46gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name)
47{
48 GstBinaryChunck *chk;
49
50 if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
51 return FALSE;
52
53 chk->data = dest;
54 chk->size = sizeof (GstBinaryPluginFeature);
55
56 *list = g_list_append(*list, chk);
57
58 dest->rank = orig->rank;
59 if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) ||
60 !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN))
61 {
62 GST_ERROR("Failed to write binary registry feature");
63 goto fail;
64 }
65
66 if (GST_IS_ELEMENT_FACTORY(orig))
67 {
68 GstElementFactory *factory = GST_ELEMENT_FACTORY(orig);
69
70 if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) ||
71 !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) ||
72 !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) ||
73 !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN))
74 {
75 GST_ERROR("Failed to write binary registry feature");
76 goto fail;
77 }
78 }
79
80 dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0;
81 return TRUE;
82
83 fail:
84 free(chk);
85 return FALSE;
86}
87
88
89/*
90** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version
91*/
92inline static gboolean
93gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m)
94{
95 if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) ||
96 !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
97 {
98 GST_ERROR("Failed to write magic to the registry magic structure");
99 return FALSE;
100 }
101 return TRUE;
102}
103
104/*
105** Check GstBinaryRegistryMagic validity.
106** Return a pointer pointing right after the magic structure
107*/
108static gchar *
109gst_registry_binary_check_magic(gchar *in)
110{
111 GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in;
112
113 if (m == NULL || m->magic == NULL || m->version == NULL)
114 {
115 GST_ERROR("Binary registry magic structure is broken");
116 return NULL;
117 }
118 if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0)
119 {
120 GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x",
121 GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff,
122 GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff,
123 m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff);
124 return NULL;
125 }
126 if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
127 {
128 GST_ERROR("Binary registry magic version is different : %s != %s",
129 GST_MAJORMINOR, m->version);
130 return NULL;
131 }
132 return (in + sizeof (GstBinaryRegistryMagic));
133}
134
135/*
136** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the
137** registry file.
138*/
139static gboolean
140gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin)
141{
142 GstBinaryPluginElement *e;
143 GstBinaryChunck *chk;
144 GList *walk;
145
146 if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL ||
147 (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
148 return FALSE;
149
150 chk->data = e;
151 chk->size = sizeof (GstBinaryPluginElement);
152 *list = g_list_append(*list, chk);
153
154 if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) ||
155 !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) ||
156 !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) ||
157 !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) ||
158 !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) ||
159 !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) ||
160 !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) ||
161 !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN))
162 {
163 GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement");
164 goto fail;
165 }
166
167 e->size = plugin->file_size;
168 e->m32p = plugin->file_mtime;
169
170 GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name);
171
172 for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++)
173 {
174 GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data);
175 GstBinaryPluginFeature *newfeat;
176 const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat));
177
178 if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL)
179 goto fail;
180
181 if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name))
182 {
183 GST_ERROR("Can't fill plugin feature, aborting.");
184 goto fail;
185 }
186 }
187
188 GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name);
189 return TRUE;
190
191 fail:
192 free(chk);
193 free(e);
194 return FALSE;
195}
196
197/*
198** Write the cache to file. Part of the code was taken from gstregistryxml.c
199*/
200gboolean
201gst_registry_binary_write_cache(GstRegistry *registry, const char *location)
202{
203 GList *walk;
204 char *tmp_location;
205 GstBinaryRegistryMagic *magic;
206 GstBinaryChunck *magic_chunck;
207 GList *to_write = NULL;
208
209 GST_INFO("Writing binary registry cache");
210
211 g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
212 tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL);
213 registry->cache_file = g_mkstemp (tmp_location);
214 if (registry->cache_file == -1)
215 {
216 char *dir;
217
218 /* oops, I bet the directory doesn't exist */
219 dir = g_path_get_dirname (location);
220 g_mkdir_with_parents (dir, 0777);
221 g_free (dir);
222
223 registry->cache_file = g_mkstemp (tmp_location);
224 }
225
226 if (registry->cache_file == -1)
227 goto fail;
228
229 if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL ||
230 !gst_registry_binary_initialize_magic(magic))
231 goto fail;
232
233 if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL)
234 goto fail;
235
236 magic_chunck->data = magic;
237 magic_chunck->size = sizeof (GstBinaryRegistryMagic);
238 to_write = g_list_append(to_write, magic_chunck);
239
240 /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */
241 for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk))
242 {
243 GstPlugin *plugin = GST_PLUGIN(walk->data);
244
245 if (!plugin->filename)
246 continue;
247
248 if (plugin->flags & GST_PLUGIN_FLAG_CACHED)
249 {
250 int ret;
251 struct stat statbuf;
252
253 ret = g_stat (plugin->filename, &statbuf);
254 if ((ret = g_stat (plugin->filename, &statbuf)) < 0 ||
255 plugin->file_mtime != statbuf.st_mtime ||
256 plugin->file_size != statbuf.st_size)
257 continue;
258 }
259
260 if (!gst_registry_binary_save_plugin(&to_write, registry, plugin))
261 {
262 GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename);
263 continue; /* Try anyway */
264 }
265 }
266
267 for (walk = g_list_first(to_write); walk; walk = g_list_next(walk))
268 {
269 GstBinaryChunck *cur = walk->data;
270
271 if (!gst_registry_binary_write(registry, cur->data, cur->size))
272 {
273 free(cur->data);
274 free(cur);
275 g_list_free(to_write);
276 goto fail;
277 }
278 free(cur->data);
279 free(cur);
280 }
281 g_list_free(to_write);
282
283 if (close(registry->cache_file) < 0)
284 {
285 GST_DEBUG("Can't close registry file : %s", strerror(errno));
286 goto fail;
287 }
288
289 if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) {
290#ifdef WIN32
291 remove (location);
292#endif
293 rename (tmp_location, location);
294 }
295
296 g_free (tmp_location);
297 return TRUE;
298
299 fail:
300 g_free(tmp_location);
301 return FALSE;
302}
303
304static GstPluginFeature*
305gst_registry_binary_load_feature(GstBinaryPluginFeature *in)
306{
307 GstPluginFeature *feature;
308 GType type;
309
310 if (!in->typename || !*(in->typename))
311 return NULL;
312
313 /* GST_INFO("Plugin feature typename : %s", in->typename);*/
314
315 if (!(type = g_type_from_name(in->typename)))
316 {
317 GST_ERROR("Unknown type from typename");
318 return NULL;
319 }
320 feature = g_object_new (type, NULL);
321
322 if (!feature) {
323 GST_ERROR("Can't create feature from type");
324 return NULL;
325 }
326
327 if (!GST_IS_PLUGIN_FEATURE (feature)) {
328 /* don't really know what it is */
329 if (GST_IS_OBJECT (feature))
330 gst_object_unref (feature);
331 else
332 g_object_unref (feature);
333 return NULL;
334 }
335
336 feature->name = g_strdup(in->name);
337 feature->rank = in->rank;
338
339 if (GST_IS_ELEMENT_FACTORY(feature))
340 {
341 GstElementFactory *factory = GST_ELEMENT_FACTORY(feature);
342
343 factory->details.longname = g_strdup(in->longname);
344 factory->details.klass = g_strdup(in->class);
345 factory->details.description = g_strdup(in->description);
346 factory->details.author = g_strdup(in->author);
347
348 /* GST_INFO("Element factory : %s", factory->details.longname); */
349 }
350
351 GST_DEBUG("Added feature %p with name %s", feature, feature->name);
352 return feature;
353}
354
355/*
356** Make a new plugin from current GstBinaryPluginElement structure
357** and save it to the GstRegistry. Return an offset to the next
358** GstBinaryPluginElement structure.
359*/
360static unsigned long
361gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in)
362{
363 GstBinaryPluginElement *p = (GstBinaryPluginElement *) in;
364 GstPlugin *plugin = NULL;
365 GList *plugin_features = NULL;
366 GstBinaryPluginFeature *feat;
367 unsigned int i;
368 unsigned long offset;
369
370 plugin = g_object_new (GST_TYPE_PLUGIN, NULL);
371
372 plugin->flags |= GST_PLUGIN_FLAG_CACHED;
373
374 plugin->desc.name = g_strdup(p->name);
375 plugin->desc.description= g_strdup(p->description);
376 plugin->filename = g_strdup(p->filename);
377 plugin->desc.version = g_strdup(p->version);
378 plugin->desc.license = g_strdup(p->license);
379 plugin->desc.source = g_strdup(p->source);
380 plugin->desc.package = g_strdup(p->package);
381 plugin->desc.origin = g_strdup(p->origin);
382 plugin->file_mtime = p->m32p;
383 plugin->file_size = p->size;
384 plugin->basename = g_path_get_basename (plugin->filename);
385
386 if (plugin->file_mtime < 0 || plugin->file_size < 0)
387 {
388 GST_ERROR("Plugin time or file size is not valid !");
389 g_free(plugin);
390 return -1;
391 }
392
393 if (p->nfeatures < 0)
394 {
395 GST_ERROR("The number of feature structure is not valid !");
396 gst_object_unref(plugin);
397 return -1;
398 }
399
400 for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0;
401 i < p->nfeatures; i++, feat++)
402 {
403 GstPluginFeature *gstfeat;
404
405 if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL)
406 {
407 g_list_free(plugin_features);
408 g_free(plugin);
409 GST_ERROR("Error while loading binary feature");
410 return -1;
411 }
412 gstfeat->plugin_name = g_strdup(plugin->desc.name);
413 plugin_features = g_list_prepend(plugin_features, gstfeat);
414 }
415
416 GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name);
417 GList *g;
418
419 gst_registry_add_plugin (registry, plugin);
420 for (g = plugin_features; g; g = g_list_next (g))
421 gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data));
422 /* g_list_free(plugin_features); */
423
424 offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature);
425 return offset;
426}
427
428
429/*
430** Read the cache and adapt it to fill GstRegistry
431*/
432gboolean
433gst_registry_binary_read_cache(GstRegistry *registry, const char *location)
434{
435 GMappedFile *mapped = NULL;
436 GTimer *timer = NULL;
437 gchar *contents = NULL;
438 gdouble seconds;
439 unsigned long offset, inc;
440 gsize size;
441
442 /* make sure these types exist */
443 GST_TYPE_ELEMENT_FACTORY;
444 GST_TYPE_TYPE_FIND_FACTORY;
445 GST_TYPE_INDEX_FACTORY;
446
447 timer = g_timer_new ();
448
449 if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL ||
450 (contents = g_mapped_file_get_contents(mapped)) == NULL)
451 {
452 GST_ERROR("Can't load file : %s", strerror(errno));
453 return FALSE;
454 }
455 if ((contents = gst_registry_binary_check_magic(contents)) == NULL)
456 {
457 GST_ERROR("Binary registry type not recognized (invalid magic)");
458 g_mapped_file_free(mapped);
459 return FALSE;
460 }
461
462 if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement))
463 {
464 GST_INFO("No binary plugins structure to read");
465 return TRUE; /* This is not really an error */
466 }
467
468 for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size &&
469 (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0;
470 offset += inc)
471 ; /* May want in the future to do something here */
472 if (inc < 0)
473 {
474 GST_DEBUG("Problem while reading binary registry");
475 return FALSE;
476 }
477
478 g_timer_stop (timer);
479 seconds = g_timer_elapsed (timer, NULL);
480 g_timer_destroy (timer);
481
482 GST_INFO ("loaded %s in %f seconds", location, seconds);
483
484 if (mapped)
485 g_mapped_file_free (mapped);
486 return TRUE;
487}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h
new file mode 100644
index 0000000000..2ef24d765d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h
@@ -0,0 +1,194 @@
1/* GStreamer
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3 * 2000 Wim Taymans <wim.taymans@chello.be>
4 *
5 * gstregistry.h: Header for registry handling
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
22
23/* SUGGESTIONS AND TODO :
24** ====================
25** - Use a compressed registry, but would induce performance loss
26** - Encrypt the registry, for security purpose, but would also reduce performances
27** - Also have a non-mmap based cache reading (work with file descriptors)
28*/
29
30#ifndef __GST_REGISTRYBINARY_H__
31#define __GST_REGISTRYBINARY_H__
32
33#ifdef HAVE_CONFIG_H
34# include "config.h"
35#endif
36
37#include <stdio.h>
38#include <errno.h>
39#include <sys/types.h>
40#include <sys/stat.h>
41#include <dirent.h>
42#include <fcntl.h>
43#include <sys/mman.h>
44#ifdef HAVE_UNISTD_H
45#include <unistd.h>
46#endif
47
48#include <gst/gst_private.h>
49#include <gst/gstelement.h>
50#include <gst/gsttypefind.h>
51#include <gst/gsttypefindfactory.h>
52#include <gst/gsturi.h>
53#include <gst/gstinfo.h>
54#include <gst/gstenumtypes.h>
55#include <gst/gstregistry.h>
56#include <gst/gstpadtemplate.h>
57
58#include "glib-compat-private.h"
59#include <glib/gstdio.h>
60
61/* A magic, written at the beginning of the file */
62#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d"
63#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
64#define GST_MAGIC_BINARY_VERSION_LEN (64)
65
66typedef struct _GstBinaryRegistryMagic
67{
68 char magic[GST_MAGIC_BINARY_REGISTRY_LEN];
69 char version[GST_MAGIC_BINARY_VERSION_LEN];
70} GstBinaryRegistryMagic;
71
72
73/* Used to store pointers to write */
74typedef struct _GstBinaryChunck
75{
76 void *data;
77 unsigned int size;
78} GstBinaryChunck;
79
80
81/* A structure containing (staticely) every information needed for a plugin
82**
83** Notes :
84** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have
85** right after the structure itself.
86*/
87
88/* Various lenght defines for our GstBinaryPluginElement structure
89** Note : We could eventually use smaller size
90*/
91#define GST_BINARY_REGISTRY_NAME_LEN (256)
92#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024)
93#define GST_BINARY_REGISTRY_VERSION_LEN (64)
94#define GST_BINARY_REGISTRY_LICENSE_LEN (256)
95#define GST_BINARY_REGISTRY_SOURCE_LEN (256)
96#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024)
97#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024)
98
99typedef struct _GstBinaryPluginElement
100{
101 char name[GST_BINARY_REGISTRY_NAME_LEN];
102 char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN];
103 char filename[_POSIX_PATH_MAX];
104 char version[GST_BINARY_REGISTRY_VERSION_LEN];
105 char license[GST_BINARY_REGISTRY_LICENSE_LEN];
106 char source[GST_BINARY_REGISTRY_SOURCE_LEN];
107 char package[GST_BINARY_REGISTRY_PACKAGE_LEN];
108 char origin[GST_BINARY_REGISTRY_ORIGIN_LEN];
109 unsigned long size;
110 unsigned long m32p;
111 unsigned int nfeatures;
112} GstBinaryPluginElement;
113
114
115/* A structure containing the plugin features
116**
117** Note :
118** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself.
119** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself.
120** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself.
121*/
122#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256)
123#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256)
124#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024)
125#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512)
126#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024)
127#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256)
128
129typedef struct _GstBinaryPluginFeature
130{
131 char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN];
132 char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN];
133 unsigned long rank;
134 char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN];
135 char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN];
136 char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN];
137 char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN];
138 unsigned int npadtemplates;
139 unsigned int ninterfaces;
140 unsigned int nuritypes;
141} GstBinaryPluginFeature;
142
143
144/*
145** A structure containing the static pad templates of a plugin feature
146*/
147#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256)
148#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024)
149
150typedef struct _GstBinaryPadTemplate
151{
152 char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN];
153 char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN];
154 int direction; /* Either 0:"sink" or 1:"src" */
155 GstPadPresence presence;
156} GstBinaryPadTemplate;
157
158/*
159** A very simple structure defining the plugin feature interface string
160*/
161#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512)
162typedef struct _GstBinaryInterface
163{
164 char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN];
165 unsigned long size;
166} GstBinaryInterface;
167
168/* Uri Type */
169typedef struct _GstBinaryUriType
170{
171 GstURIType type;
172 unsigned long nuriprotocols;
173} GstBinaryUriType;
174
175/*
176** Function prototypes
177*/
178
179/* Local prototypes */
180inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size);
181inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m);
182static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *);
183static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin);
184static gchar *gst_registry_binary_check_magic(gchar *in);
185static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *);
186static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in);
187
188/* Exportable */
189gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location);
190gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location);
191
192#endif /* !__GST_REGISTRYBINARY_H__ */
193
194
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
new file mode 100644
index 0000000000..84e6e95d36
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
@@ -0,0 +1,32 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2SECTION = "multimedia"
3LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
4LICENSE_FLAGS = "commercial"
5HOMEPAGE = "http://www.gstreamer.net/"
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2"
7
8inherit autotools pkgconfig
9
10# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
11# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
12# libav copy included in the gst-libav package.
13PACKAGECONFIG ??= " orc yasm "
14PACKAGECONFIG[libav] = "--with-system-libav,,libav"
15PACKAGECONFIG[lgpl] = "--enable-lgpl,,"
16PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native"
17PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
18
19
20GSTREAMER_1_0_DEBUG ?= "--disable-debug"
21
22LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure"
23LIBAV_EXTRA_CONFIGURE_COMMON = \
24'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"'
25
26EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}"
27
28FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
29FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
30FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
31FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
32
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
new file mode 100644
index 0000000000..1d99ad1251
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
@@ -0,0 +1,33 @@
1From 54bba228ea52d01fd84941d97be23c03f9862b64 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 6 Apr 2013 01:22:22 +0200
4Subject: [PATCH] Disable yasm for libav when --disable-yasm
5
6Upstream-Status: Inappropriate [configuration]
7
8Signed-off-by: Shane Wang <shane.wang@intel.com>
9Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
10---
11 configure.ac | 4 ++++
12 1 file changed, 4 insertions(+)
13
14diff --git a/configure.ac b/configure.ac
15index 22ede88..ef3c050 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -305,6 +305,12 @@ else
19 emblibav_configure_args="$emblibav_configure_args --enable-gpl"
20 fi
21
22+ AC_ARG_ENABLE(yasm,
23+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
24+ if test "x$enable_yasm" = "xno"; then
25+ emblibav_configure_args="$emblibav_configure_args --disable-yasm"
26+ fi
27+
28 # if we are cross-compiling, tell libav so
29 case $host in
30 *android*)
31--
321.8.2
33
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb
new file mode 100644
index 0000000000..9561e38c85
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb
@@ -0,0 +1,24 @@
1include gstreamer1.0-libav.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
4 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
5 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
6 file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
7 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
9 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
10 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
11
12SRC_URI = " \
13 http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
14 file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
15 "
16SRC_URI[md5sum] = "58c7998a054d8d8ca041fa35738f72b6"
17SRC_URI[sha256sum] = "ebc7fbe10955f40df6ccc4bf689075e7e296205fc7ecd8ff383d43c5cdf5bcd6"
18LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
19 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
20 --ranlib='${RANLIB}' \
21 ${GSTREAMER_1_0_DEBUG}"
22
23S = "${WORKDIR}/gst-libav-${PV}"
24
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
new file mode 100644
index 0000000000..5ce28ccbe7
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
@@ -0,0 +1,27 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-libav.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
6 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
7 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
8 file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
9 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
12 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13
14SRC_URI = "git://anongit.freedesktop.org/gstreamer/gst-libav;branch=master"
15S = "${WORKDIR}/git"
16
17SRCREV = "127202d6f65584891dabf92be031f0d170b0e7f1"
18
19LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
20 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
21 ${GSTREAMER_1_0_DEBUG}"
22
23do_configure() {
24 ./autogen.sh --noconfigure
25 oe_runconf
26}
27
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
new file mode 100644
index 0000000000..cb8dd1ac5f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
@@ -0,0 +1,62 @@
1DESCRIPTION = "Gstreamer1.0 package groups"
2LICENSE = "MIT"
3
4inherit packagegroup
5
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad"
7
8PACKAGES = "\
9 gstreamer1.0-meta-base \
10 gstreamer1.0-meta-x11-base \
11 gstreamer1.0-meta-audio \
12 gstreamer1.0-meta-debug \
13 gstreamer1.0-meta-video"
14
15ALLOW_EMPTY_gstreamer1.0-meta-base = "1"
16ALLOW_EMPTY_gstreamer1.0-meta-x11-base = "1"
17ALLOW_EMPTY_gstreamer1.0-meta-audio = "1"
18ALLOW_EMPTY_gstreamer1.0-meta-debug = "1"
19ALLOW_EMPTY_gstreamer1.0-meta-video = "1"
20
21RDEPENDS_gstreamer1.0-meta-base = "\
22 ${@base_contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \
23 gstreamer1.0 \
24 gstreamer1.0-plugins-base-playback \
25 gstreamer1.0-plugins-base-gio \
26 gstreamer1.0-plugins-base-alsa \
27 gstreamer1.0-plugins-base-volume \
28 gstreamer1.0-plugins-base-audioconvert \
29 gstreamer1.0-plugins-base-audioresample \
30 gstreamer1.0-plugins-base-typefindfunctions \
31 gstreamer1.0-plugins-base-videoscale \
32 gstreamer1.0-plugins-base-videoconvert \
33 gstreamer1.0-plugins-good-autodetect \
34 gstreamer1.0-plugins-good-souphttpsrc"
35
36RRECOMMENDS_gstreamer1.0-meta-x11-base = "\
37 gstreamer1.0-plugins-base-ximagesink \
38 gstreamer1.0-plugins-base-xvimagesink"
39
40RDEPENDS_gstreamer1.0-meta-audio = "\
41 gstreamer1.0-meta-base \
42 gstreamer1.0-plugins-base-vorbis \
43 gstreamer1.0-plugins-base-ogg \
44 gstreamer1.0-plugins-good-wavparse \
45 gstreamer1.0-plugins-good-flac \
46 ${COMMERCIAL_AUDIO_PLUGINS}"
47
48RDEPENDS_gstreamer1.0-meta-debug = "\
49 gstreamer1.0-meta-base \
50 gstreamer1.0-plugins-good-debug \
51 gstreamer1.0-plugins-base-audiotestsrc \
52 gstreamer1.0-plugins-base-videotestsrc"
53
54RDEPENDS_gstreamer1.0-meta-video = "\
55 gstreamer1.0-meta-base \
56 gstreamer1.0-plugins-good-avi \
57 gstreamer1.0-plugins-good-matroska \
58 gstreamer1.0-plugins-base-theora \
59 ${COMMERCIAL_VIDEO_PLUGINS}"
60
61RRECOMMENDS_gstreamer1.0-meta-video = "\
62 gstreamer1.0-meta-audio"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
new file mode 100644
index 0000000000..b76786bddb
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
@@ -0,0 +1,42 @@
1SUMMARY = "OpenMAX IL plugins for GStreamer"
2SECTION = "multimedia"
3LICENSE = "LGPLv2.1"
4LICENSE_FLAGS = "commercial"
5HOMEPAGE = "http://www.gstreamer.net/"
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
7RDEPENDS_${PN} = "libomxil"
8
9inherit autotools pkgconfig gettext
10
11acpaths = "-I ${S}/common/m4 -I ${S}/m4"
12
13PR = "r1"
14
15GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
16GSTREAMER_1_0_OMX_CORE_NAME ?= "/usr/lib/libomxil-bellagio.so.0"
17
18EXTRA_OECONF += "--disable-valgrind --with-omx-target=${GSTREAMER_1_0_OMX_TARGET}"
19
20python __anonymous () {
21 omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET", True)
22 if omx_target in ['generic', 'bellagio']:
23 srcdir = d.getVar("S", True)
24 # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,#
25 # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros);
26 # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this
27 d.appendVar("CFLAGS", " -I%s/omx/openmax" % srcdir)
28 elif omx_target == "rpi":
29 # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific
30 d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH", True))
31}
32
33set_omx_core_name() {
34 sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}/etc/xdg/gstomx.conf"
35}
36do_install[postfuncs] += " set_omx_core_name "
37
38FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
39FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
40FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
41FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
42
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch
new file mode 100644
index 0000000000..a428ac9c91
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch
@@ -0,0 +1,30 @@
1From f629e041e9f678fcd86ad764a15117dff63c271c Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 27 Apr 2013 02:50:25 +0200
4Subject: [PATCH] omx: fixed type error in printf call
5
6%zu expects size_t
7
8Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=699008]
9
10Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
11---
12 omx/gstomx.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/omx/gstomx.c b/omx/gstomx.c
16index a2945ed..1eca7cc 100644
17--- a/omx/gstomx.c
18+++ b/omx/gstomx.c
19@@ -1630,7 +1630,7 @@ gst_omx_port_allocate_buffers_unlocked (GstOMXPort * port,
20
21 GST_INFO_OBJECT (comp->parent,
22 "Allocating %d buffers of size %zu for %s port %u", n,
23- port->port_def.nBufferSize, comp->name, (guint) port->index);
24+ (size_t) (port->port_def.nBufferSize), comp->name, (guint) port->index);
25
26 if (!port->buffers)
27 port->buffers = g_ptr_array_sized_new (n);
28--
291.7.9.5
30
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb
new file mode 100644
index 0000000000..f5956c66df
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb
@@ -0,0 +1,12 @@
1include gstreamer1.0-omx.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
4 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
5
6SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
7
8SRC_URI[md5sum] = "bb34b5742223267298bcffc209104a92"
9SRC_URI[sha256sum] = "7a1d8d28d70dacc6bd3c7ee7d7e40df6d5a1d38d7c256d5c9c5c8ef15c005014"
10
11S = "${WORKDIR}/gst-omx-${PV}"
12
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
new file mode 100644
index 0000000000..11c77aeada
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
@@ -0,0 +1,22 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-omx.inc
4
5DEPENDS = "gstreamer1.0-plugins-bad"
6
7LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
8 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
9
10SRC_URI = " \
11 git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master \
12 file://0001-omx-fixed-type-error-in-printf-call.patch \
13 "
14S = "${WORKDIR}/git"
15
16SRCREV = "a2db76b048db278ef0aa798e106b7594264e06c0"
17
18do_configure() {
19 ./autogen.sh --noconfigure
20 oe_runconf
21}
22
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
new file mode 100644
index 0000000000..08440a2536
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
@@ -0,0 +1,120 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4
5DEPENDS += "gstreamer1.0-plugins-base bzip2"
6
7S = "${WORKDIR}/gst-plugins-bad-${PV}"
8
9inherit gettext
10
11
12PACKAGECONFIG ??= " \
13 ${@base_contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
14 ${@base_contains('DISTRO_FEATURES', 'opengl', 'eglgles', '', d)} \
15 ${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
16 ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
17 orc curl uvch264 neon \
18 hls sbc dash bz2 smoothstreaming \
19 "
20# dash = Dynamic Adaptive Streaming over HTTP
21PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass"
22PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
23PACKAGECONFIG[eglgles] = "--enable-eglgles,--disable-eglgles,virtual/egl virtual/libgles2"
24PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac"
25PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
26PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms"
27PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
28PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
29PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
30PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa"
31PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
32PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland"
33PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 udev"
34PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
35PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
36PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
37PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
38PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
39PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2"
40PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2"
41PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
42PACKAGECONFIG[schroedinger] = "--enable-schro,--disable-schro,schroedinger"
43PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
44PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
45PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg"
46
47# these plugins have not been ported to 1.0 (yet):
48# directdraw vcd apexsink cdaudio dc1394 lv2 linsys musepack mythtv
49# nas timidity teletextdec sdl sndfile xvid wininet acm gsettings
50# sndio cdxaparse dccp faceoverlay hdvparse ivfparse jp2kdecimator
51# linsys mve nuvdemux osx_video patchdetect quicktime real sdi stereo
52# tta videomeasure videosignal vmnc
53
54EXTRA_OECONF += " \
55 --enable-dvb \
56 --enable-shm \
57 --enable-mfc \
58 --enable-fbdev \
59 --enable-decklink \
60 --disable-acm \
61 --disable-android_media \
62 --disable-apexsink \
63 --disable-apple_media \
64 --disable-avc \
65 --disable-cdaudio \
66 --disable-chromaprint \
67 --disable-daala \
68 --disable-dc1394 \
69 --disable-direct3d \
70 --disable-directdraw \
71 --disable-directshow \
72 --disable-directsound \
73 --disable-dts \
74 --disable-gme \
75 --disable-gsettings \
76 --disable-gsm \
77 --disable-kate \
78 --disable-ladspa \
79 --disable-linsys \
80 --disable-lv2 \
81 --disable-mimic \
82 --disable-mpeg2enc \
83 --disable-mplex \
84 --disable-musepack \
85 --disable-mythtv \
86 --disable-nas \
87 --disable-ofa \
88 --disable-openjpeg \
89 --disable-opensles \
90 --disable-osx_video \
91 --disable-pvr \
92 --disable-quicktime \
93 --disable-resindvd \
94 --disable-rtmp \
95 --disable-sdl \
96 --disable-sdltest \
97 --disable-sndfile \
98 --disable-sndio \
99 --disable-soundtouch \
100 --disable-spandsp \
101 --disable-spc \
102 --disable-srtp \
103 --disable-teletextdec \
104 --disable-timidity \
105 --disable-vcd \
106 --disable-vdpau \
107 --disable-voaacenc \
108 --disable-voamrwbenc \
109 --disable-wasapi \
110 --disable-webp \
111 --disable-wildmidi \
112 --disable-wininet \
113 --disable-winscreencap \
114 --disable-xvid \
115 --disable-zbar \
116 ${GSTREAMER_1_0_ORC} \
117 "
118
119ARM_INSTRUCTION_SET = "arm"
120
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb
new file mode 100644
index 0000000000..a19988ca6f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb
@@ -0,0 +1,10 @@
1include gstreamer1.0-plugins-bad.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
4 file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \
5 file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
6 file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50"
7SRC_URI[md5sum] = "cfd6f303c8df2740b27cc63b945decef"
8SRC_URI[sha256sum] = "595d7911a9e6207dea37200587724bdbf841b81a5eb0730118be36976684278c"
9S = "${WORKDIR}/gst-plugins-bad-${PV}"
10
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
new file mode 100644
index 0000000000..e1a5904abf
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
@@ -0,0 +1,26 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-bad.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
6 file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \
7 file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
8 file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50"
9
10S = "${WORKDIR}/git"
11
12SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce"
13
14PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
15PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
16PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
17
18EXTRA_OECONF += " \
19 -disable-openjpeg \
20 "
21
22do_configure() {
23 ./autogen.sh --noconfigure
24 oe_runconf
25}
26
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
new file mode 100644
index 0000000000..b56c506486
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
@@ -0,0 +1,39 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+"
4
5DEPENDS += "${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxv', '', d)}"
6DEPENDS += "freetype liboil util-linux"
7
8inherit gettext
9
10PACKAGES_DYNAMIC =+ "^libgst.*"
11
12PACKAGECONFIG ??= " \
13 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
14 ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
15 orc ivorbis ogg theora vorbis \
16 "
17
18X11DEPENDS = "virtual/libx11 libsm libxrender"
19X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm"
20X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm"
21PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
22PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
23PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor"
24PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg"
25PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora"
26PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis"
27PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
28
29
30# cdparanoia and libvisual do not seem to exist anywhere in OE
31EXTRA_OECONF += " \
32 --disable-freetypetest \
33 --disable-cdparanoia \
34 --disable-libvisual \
35 ${GSTREAMER_1_0_ORC} \
36"
37
38FILES_${PN} += "${datadir}/gst-plugins-base"
39
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb
new file mode 100644
index 0000000000..4ef34cfe85
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb
@@ -0,0 +1,9 @@
1include gstreamer1.0-plugins-base.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
4 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
5 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
6 "
7SRC_URI[md5sum] = "17aeabfbcd232526f50c9bee375f1b97"
8SRC_URI[sha256sum] = "61edec35c270f86928bad434bd059da4efff865d1ef01bcc64ecbd903625dae1"
9S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
new file mode 100644
index 0000000000..a894abe501
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
@@ -0,0 +1,18 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-base.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
6 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
7 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
8 "
9
10S = "${WORKDIR}/git"
11
12SRCREV = "8d4cb64a4b9d84b10076bf350f80a0d6ea68ec2d"
13
14do_configure() {
15 ./autogen.sh --noconfigure
16 oe_runconf
17}
18
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
new file mode 100644
index 0000000000..06de4da5dd
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
@@ -0,0 +1,56 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+"
4
5# libid3tag
6DEPENDS += "gstreamer1.0-plugins-base zlib bzip2"
7
8inherit gettext
9
10
11PACKAGECONFIG ??= " \
12 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
13 ${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
14 orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib \
15 "
16
17X11DEPENDS = "virtual/libx11 libsm libxrender"
18X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm"
19X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm"
20PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
21PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
22PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo"
23PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
24PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
25PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
26PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
27PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng"
28PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4"
29PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
30PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib"
31PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx"
32PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
33
34# the 1394 plugins require both libraw1394 and libiec61883
35# the former is included in meta-oe, the latter isn't
36# -> disabled
37
38EXTRA_OECONF += " \
39 --enable-oss \
40 --enable-gst_v4l2 \
41 --without-libv4l2 \
42 --disable-directsound \
43 --disable-waveform \
44 --disable-oss4 \
45 --disable-sunaudio \
46 --disable-osx_audio \
47 --disable-osx_video \
48 --disable-aalib \
49 --disable-libcaca \
50 --disable-libdv \
51 --disable-shout2 \
52 --disable-examples \
53 --disable-dv1394 \
54 ${GSTREAMER_1_0_ORC} \
55"
56
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb
new file mode 100644
index 0000000000..d5e4b6a300
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb
@@ -0,0 +1,9 @@
1include gstreamer1.0-plugins-good.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
5 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
6SRC_URI[md5sum] = "1a1f96bc27ad446e559474299160a9a8"
7SRC_URI[sha256sum] = "bfb33536a515bdcc34482f64b8d9cc3e47c753878b254923b419bc2f7485e470"
8S = "${WORKDIR}/gst-plugins-good-${PV}"
9
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
new file mode 100644
index 0000000000..8b11b20b1b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
@@ -0,0 +1,17 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-good.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
7 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
8
9S = "${WORKDIR}/git"
10
11SRCREV = "fd0123800c8c1cf1468c0fa5d592ad0d0d8b4140"
12
13do_configure() {
14 ./autogen.sh --noconfigure
15 oe_runconf
16}
17
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
new file mode 100644
index 0000000000..0dd011bf33
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
@@ -0,0 +1,31 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
4LICENSE_FLAGS = "commercial"
5
6DEPENDS += "gstreamer1.0-plugins-base libid3tag"
7
8inherit gettext
9
10
11PACKAGECONFIG ??= " \
12 orc a52dec lame mad mpeg2dec \
13 "
14
15PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52"
16PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
17PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
18PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame"
19PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
20PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec"
21PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
22
23
24EXTRA_OECONF += " \
25 --disable-amrnb \
26 --disable-amrwb \
27 --disable-sidplay \
28 --disable-twolame \
29 ${GSTREAMER_1_0_ORC} \
30 "
31
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb
new file mode 100644
index 0000000000..33fd5ad50b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb
@@ -0,0 +1,8 @@
1include gstreamer1.0-plugins-ugly.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 "
5SRC_URI[md5sum] = "7ae60e2f759f58f32af5fcdc3c9193c4"
6SRC_URI[sha256sum] = "537b0a7607eee499026388bb705b5b68985a3fd59fe22ee09accaf8cdf57eb3b"
7S = "${WORKDIR}/gst-plugins-ugly-${PV}"
8
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
new file mode 100644
index 0000000000..2f72497363
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
@@ -0,0 +1,16 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-ugly.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 "
7
8S = "${WORKDIR}/git"
9
10SRCREV = "06b8ac10cee85c5c304ca320997aa8f44295a66f"
11
12do_configure() {
13 ./autogen.sh --noconfigure
14 oe_runconf
15}
16
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
new file mode 100644
index 0000000000..4ab8ea8eb3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
@@ -0,0 +1,59 @@
1SUMMARY = "Plugins for the GStreamer multimedia framework 1.x"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
4SECTION = "multimedia"
5DEPENDS = "gstreamer1.0"
6
7inherit autotools pkgconfig
8
9FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
10
11GSTREAMER_1_0_DEBUG ?= "--disable-debug"
12GSTREAMER_1_0_GIT_BRANCH ?= "master"
13EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_1_0_DEBUG} --disable-examples "
14
15acpaths = "-I ${S}/common/m4 -I ${S}/m4"
16
17LIBV = "1.0"
18require gst-plugins-package.inc
19
20PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
21
22PACKAGES_DYNAMIC = "^${PN}-.*"
23
24# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
25# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
26# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
27oe_runconf_prepend() {
28 if [ -e ${S}/po/Makefile.in.in ]; then
29 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
30 fi
31}
32
33SRC_URI = "${@get_gst_srcuri(d)}"
34
35def get_gst_srcuri(d):
36 # check if expected prefix is present
37 prefix = "gstreamer1.0-"
38 bpn = d.getVar("BPN", True)
39 if not bpn.startswith(prefix):
40 bb.fatal('Invalid GStreamer 1.0 plugin package name "%s" : must start with "%s"' % (bpn, prefix))
41
42 # replaced prefix with "gst-", which is what is used for the tarball and repository filenames
43 gstpkg_basename = "gst-" + bpn[len(prefix):]
44 pv = d.getVar("PV", True)
45 branch = d.getVar("GSTREAMER_1_0_GIT_BRANCH", True)
46
47 if pv == "git":
48 s = "git://anongit.freedesktop.org/gstreamer/%s;branch=%s" % (gstpkg_basename, branch)
49 else:
50 s = "http://gstreamer.freedesktop.org/src/%s/%s-%s.tar.xz" % (gstpkg_basename, gstpkg_basename, pv)
51 return s
52
53delete_liblink_m4_file() {
54 # This m4 file contains nastiness which conflicts with libtool 2.2.2
55 rm "${S}/m4/lib-link.m4" || true
56}
57
58do_configure[prefuncs] += " delete_liblink_m4_file "
59
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
new file mode 100644
index 0000000000..a01c33ce5f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
@@ -0,0 +1,27 @@
1SUMMARY = "GStreamer 1.0 multimedia framework"
2DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
3It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia"
7LICENSE = "LGPLv2+"
8DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
9
10inherit autotools pkgconfig gettext
11
12GSTREAMER_1_DEBUG ?= "--disable-debug"
13EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
14 --disable-dependency-tracking --disable-check \
15 --disable-examples --disable-tests \
16 --disable-valgrind ${GSTREAMER_1_DEBUG} \
17 "
18
19RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
20RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
21
22CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
23
24FILES_${PN} += " ${libdir}/gstreamer-1.0/*.so"
25FILES_${PN}-dev += " ${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a"
26FILES_${PN}-dbg += " ${libdir}/gstreamer-1.0/.debug/ ${libexecdir}/gstreamer-1.0/.debug/"
27
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
new file mode 100644
index 0000000000..94f5cc56e8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
@@ -0,0 +1,28 @@
1From 6b26f3dbf9bf577d71534ab7410de66d06e46ba2 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 6 Apr 2013 23:52:11 +0200
4Subject: [PATCH] Fix crash with gst-inspect Chris Lord <chris@openedhand.com>
5
6Upstream-Status: Pending
7
8Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
9---
10 tools/gst-inspect.c | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
14index 23b7c44..b79b02e 100644
15--- a/tools/gst-inspect.c
16+++ b/tools/gst-inspect.c
17@@ -1556,7 +1556,7 @@ main (int argc, char *argv[])
18 g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
19 g_option_context_add_group (ctx, gst_init_get_option_group ());
20 if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
21- g_printerr ("Error initializing: %s\n", err->message);
22+ g_printerr ("Error initializing: %s\n", err ? err->message : "(null)");
23 return -1;
24 }
25 g_option_context_free (ctx);
26--
271.8.2
28
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb
new file mode 100644
index 0000000000..f2c1db505b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb
@@ -0,0 +1,13 @@
1include gstreamer1.0.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
4 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
5
6SRC_URI = " \
7 http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
8 file://0001-Fix-crash-with-gst-inspect.patch \
9 "
10SRC_URI[md5sum] = "8155b9c7574ccaa361cc504e8e0e72dc"
11SRC_URI[sha256sum] = "0f9a9817a384b3448c368c23345e5122435caef9c00f1c40d7b1953827b0d8eb"
12S = "${WORKDIR}/gstreamer-${PV}"
13
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
new file mode 100644
index 0000000000..424c90a9e8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
@@ -0,0 +1,17 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
6 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
7
8SRC_URI = "git://anongit.freedesktop.org/gstreamer/gstreamer;branch=master"
9S = "${WORKDIR}/git"
10
11SRCREV = "3b8181a8c550e74acaba4e8c55bdc649fa551dc9"
12
13do_configure() {
14 ./autogen.sh --noconfigure
15 oe_runconf
16}
17
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
new file mode 100644
index 0000000000..99eee81761
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
@@ -0,0 +1,48 @@
1SUMMARY = "GStreamer multimedia framework"
2DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
3It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia"
7LICENSE = "LGPLv2+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
9 file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
10DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
11
12PR = "r2"
13
14SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
15 file://check_fix.patch \
16 file://gst-inspect-check-error.patch"
17
18SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
19SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30"
20
21inherit autotools pkgconfig gettext
22
23GSTREAMER_DEBUG ?= "--disable-debug"
24EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
25 --disable-dependency-tracking --disable-check \
26 --disable-examples --disable-tests \
27 --disable-valgrind ${GSTREAMER_DEBUG} \
28 "
29
30CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
31
32# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
33# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
34# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
35oe_runconf_prepend() {
36 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
37}
38
39#do_compile_prepend () {
40# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/
41#}
42
43RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
44RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
45
46FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
47FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
48FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"
diff --git a/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch b/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch
new file mode 100644
index 0000000000..571a1d07a3
--- /dev/null
+++ b/meta/recipes-multimedia/lame/lame/lame-3.99.5_fix_for_automake-1.12.x.patch
@@ -0,0 +1,59 @@
1Upstream-Status: Pending
2
3Fix this kind of errors with automake 1.12.x:
4| doc/man/Makefile.am:3: error: automatic de-ANSI-fication support has been removed
5| autoreconf: automake failed with exit status: 1
6
7Signed-Off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
82012/07/13
9
10Index: lame-3.99.5/configure.in
11===================================================================
12--- lame-3.99.5.orig/configure.in
13+++ lame-3.99.5/configure.in
14@@ -77,9 +77,6 @@ if test "${GCC}" = "yes"; then
15 AC_MSG_RESULT(${GCC_version})
16 fi
17
18-dnl more automake stuff
19-AM_C_PROTOTYPES
20-
21 AC_CHECK_HEADER(dmalloc.h)
22 if test "${ac_cv_header_dmalloc_h}" = "yes"; then
23 AM_WITH_DMALLOC
24Index: lame-3.99.5/doc/html/Makefile.am
25===================================================================
26--- lame-3.99.5.orig/doc/html/Makefile.am
27+++ lame-3.99.5/doc/html/Makefile.am
28@@ -1,6 +1,6 @@
29 ## $Id: Makefile.am,v 1.7 2010/09/30 20:58:40 jaz001 Exp $
30
31-AUTOMAKE_OPTIONS = foreign ansi2knr
32+AUTOMAKE_OPTIONS = foreign
33
34 docdir = $(datadir)/doc
35 pkgdocdir = $(docdir)/$(PACKAGE)
36Index: lame-3.99.5/libmp3lame/i386/Makefile.am
37===================================================================
38--- lame-3.99.5.orig/libmp3lame/i386/Makefile.am
39+++ lame-3.99.5/libmp3lame/i386/Makefile.am
40@@ -1,6 +1,6 @@
41 ## $Id: Makefile.am,v 1.26 2011/04/04 09:42:34 aleidinger Exp $
42
43-AUTOMAKE_OPTIONS = foreign $(top_srcdir)/ansi2knr
44+AUTOMAKE_OPTIONS = foreign
45
46 DEFS = @DEFS@ @CONFIG_DEFS@
47
48Index: lame-3.99.5/doc/man/Makefile.am
49===================================================================
50--- lame-3.99.5.orig/doc/man/Makefile.am
51+++ lame-3.99.5/doc/man/Makefile.am
52@@ -1,6 +1,6 @@
53 ## $Id: Makefile.am,v 1.1 2000/10/22 11:39:44 aleidinger Exp $
54
55-AUTOMAKE_OPTIONS = foreign ansi2knr
56+AUTOMAKE_OPTIONS = foreign
57
58 man_MANS = lame.1
59 EXTRA_DIST = ${man_MANS}
diff --git a/meta/recipes-multimedia/lame/lame/no-gtk1.patch b/meta/recipes-multimedia/lame/lame/no-gtk1.patch
new file mode 100644
index 0000000000..e88d7f1bb4
--- /dev/null
+++ b/meta/recipes-multimedia/lame/lame/no-gtk1.patch
@@ -0,0 +1,20 @@
1Upstream-Status: Inappropriate [configuration]
2
3# Acquired from OpenEmbedded
4
5--- lame-3.96.1/configure.in~no-gtk1.patch 2004-07-25 15:52:12.000000000 +0100
6+++ lame-3.96.1/configure.in 2004-09-10 15:54:39.000000000 +0100
7@@ -363,7 +363,12 @@
8
9 dnl configure use of features
10
11-AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no")
12+#AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no")
13+HAVE_GTK="no"
14+GTK_CFLAGS=""
15+GTK_LIBS=""
16+AC_SUBST(GTK_CFLAGS)
17+AC_SUBST(GTK_LIBS)
18
19 dnl ElectricFence malloc debugging
20 AC_MSG_CHECKING(use of ElectricFence malloc debugging)
diff --git a/meta/recipes-multimedia/lame/lame_3.99.5.bb b/meta/recipes-multimedia/lame/lame_3.99.5.bb
new file mode 100644
index 0000000000..907ff8f9d0
--- /dev/null
+++ b/meta/recipes-multimedia/lame/lame_3.99.5.bb
@@ -0,0 +1,28 @@
1SUMMARY = "High quality MP3 audio encoder"
2HOMEPAGE = "http://lame.sourceforge.net/"
3BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290"
4SECTION = "console/utils"
5LICENSE = "LGPLv2+"
6LICENSE_FLAGS = "commercial"
7
8DEPENDS = "ncurses"
9
10LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \
11 file://include/lame.h;beginline=1;endline=20;md5=a2258182c593c398d15a48262130a92b \
12"
13PR = "r1"
14
15SRC_URI = "${SOURCEFORGE_MIRROR}/lame/lame-${PV}.tar.gz \
16 file://no-gtk1.patch \
17 file://lame-3.99.5_fix_for_automake-1.12.x.patch "
18
19SRC_URI[md5sum] = "84835b313d4a8b68f5349816d33e07ce"
20SRC_URI[sha256sum] = "24346b4158e4af3bd9f2e194bb23eb473c75fb7377011523353196b19b9a23ff"
21
22inherit autotools
23
24PACKAGES += "libmp3lame libmp3lame-dev"
25FILES_${PN} = "${bindir}/lame"
26FILES_libmp3lame = "${libdir}/libmp3lame.so.*"
27FILES_libmp3lame-dev = "${includedir} ${libdir}/*"
28FILES_${PN}-dev = ""
diff --git a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
new file mode 100644
index 0000000000..5168100f3a
--- /dev/null
+++ b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch
@@ -0,0 +1,89 @@
1It makes much more sense to control our own CFLAGS and avoiding fPIC breaks
2some arches too. Assume we know what we're doing and remove all the messing
3around.
4
5RP 23/2/10
6
7Upstream-Status: Inappropriate [configuration]
8
9Index: a52dec-0.7.4/configure.in
10===================================================================
11--- a52dec-0.7.4.orig/configure.in 2010-02-23 14:51:50.000000000 +0000
12+++ a52dec-0.7.4/configure.in 2010-02-23 14:52:36.000000000 +0000
13@@ -14,62 +14,6 @@
14 AC_PROG_CC
15 AC_PROG_GCC_TRADITIONAL
16
17-if test x"$GCC" = x"yes"; then
18-
19- dnl GCC-specific flags - try to optimize them sometime
20- dnl -Wall -Werror moved to the end to not disturb the configure script
21-
22- dnl -O3
23- changequote(<<,>>)
24- OPT_CFLAGS=`echo "$CFLAGS"|sed "s/-O[0-9]*//g"`
25- changequote([,])
26- OPT_CFLAGS="$OPT_CFLAGS -O3"
27- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
28-
29- dnl -fomit-frame-pointer
30- OPT_CFLAGS="$CFLAGS -fomit-frame-pointer"
31- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS])
32-
33- dnl arch-specific flags
34- case "$host" in
35- i?86-* | k?-*)
36- case "$host" in
37- i386-*) OPT_CFLAGS="$CFLAGS -mcpu=i386";;
38- i486-*) OPT_CFLAGS="$CFLAGS -mcpu=i486";;
39- i586-*) OPT_CFLAGS="$CFLAGS -mcpu=pentium";;
40- i686-*) OPT_CFLAGS="$CFLAGS -mcpu=pentiumpro";;
41- k6-*) OPT_CFLAGS="$CFLAGS -mcpu=k6";;
42- esac
43- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
44- sparc-* | sparc64-*)
45- OPT_CFLAGS="$CFLAGS -mtune=ultrasparc"
46- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
47- mips-sgi-irix6.*) dnl do we need to be that specific ?
48- OPT_CFLAGS="$CFLAGS -mabi=64"
49- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
50- esac
51-elif test x"$CC" = x"tcc" -a x"`$CC -version 2>&1 | grep TenDRA`" != x""; then
52- dnl TenDRA portability checking compiler
53- TENDRA=yes
54- CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE"
55- enable_mlib=no
56- enable_oss=no
57- enable_solaris_audio=no
58-elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then
59- dnl Intel C++ compiler
60- CFLAGS="-g -O3 -unroll -ip"
61-else
62- dnl non-gcc flags - we probably need exact configuration triplets here.
63- case "$host" in
64- mips-sgi-irix6.*)
65- OPT_CFLAGS="$CFLAGS -64"
66- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
67- sparc-sun-solaris*)
68- OPT_CFLAGS="$CFLAGS -xCC -fast -xO5"
69- AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);;
70- esac
71-fi
72-
73 dnl Checks for libtool - this must be done after we set cflags
74 AC_DISABLE_SHARED
75 AC_LIBTOOL_WIN32_DLL
76Index: a52dec-0.7.4/liba52/configure.incl
77===================================================================
78--- a52dec-0.7.4.orig/liba52/configure.incl 2010-02-23 14:51:44.000000000 +0000
79+++ a52dec-0.7.4/liba52/configure.incl 2010-02-23 14:51:59.000000000 +0000
80@@ -1,9 +1,6 @@
81 AC_SUBST([LIBA52_CFLAGS])
82 AC_SUBST([LIBA52_LIBS])
83
84-dnl avoid -fPIC when possible
85-LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic"
86-
87 AC_ARG_ENABLE([double],
88 [ --enable-double use double-precision samples])
89 if test x"$enable_double" = x"yes"; then
diff --git a/meta/recipes-multimedia/liba52/liba52_0.7.4.bb b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
new file mode 100644
index 0000000000..94b66b189e
--- /dev/null
+++ b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb
@@ -0,0 +1,23 @@
1SUMMARY = "ATSC A/52 surround sound stream decoder"
2HOMEPAGE = "http://liba52.sourceforge.net/"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1"
6SECTION = "libs"
7PR = "r4"
8
9inherit autotools
10
11SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \
12 file://buildcleanup.patch"
13
14SRC_URI[md5sum] = "caa9f5bc44232dc8aeea773fea56be80"
15SRC_URI[sha256sum] = "a21d724ab3b3933330194353687df82c475b5dfb997513eef4c25de6c865ec33"
16S = "${WORKDIR}/a52dec-${PV}"
17
18EXTRA_OECONF = " --enable-shared "
19
20PACKAGES =+ "a52dec a52dec-doc"
21
22FILES_a52dec = " ${bindir}/* "
23FILES_a52dec-doc = " ${mandir}/man1/* "
diff --git a/meta/recipes-multimedia/libav/libav.inc b/meta/recipes-multimedia/libav/libav.inc
new file mode 100644
index 0000000000..5e675be3ca
--- /dev/null
+++ b/meta/recipes-multimedia/libav/libav.inc
@@ -0,0 +1,132 @@
1SUMMARY = "A complete, cross-platform solution to record, convert and stream audio and video"
2HOMEPAGE = "http://libav.org/"
3SECTION = "libs"
4LICENSE = "GPLv2+"
5LICENSE_FLAGS = "commercial"
6
7# Provides ffmpeg compat, see http://libav.org/about.html
8PROVIDES = "ffmpeg"
9
10ARM_INSTRUCTION_SET = "arm"
11
12DEPENDS = "virtual/libsdl zlib libogg libvorbis libtheora yasm-native"
13
14INC_PR = "r8"
15
16inherit autotools pkgconfig
17
18B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
19
20FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math"
21BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
22
23EXTRA_FFCONF_armv7a = "--cpu=cortex-a8"
24EXTRA_FFCONF ?= ""
25
26PACKAGECONFIG ??= "bzip2 x264 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
27PACKAGECONFIG[jack] = "--enable-indev=jack,--disable-indev=jack,jack"
28PACKAGECONFIG[bzip2] = "--enable-bzlib,--disable-bzlib,bzip2"
29PACKAGECONFIG[schroedinger] = "--enable-libschroedinger,--disable-libschroedinger,schroedinger"
30PACKAGECONFIG[gsm] = "--enable-libgsm,--disable-libgsm,libgsm"
31PACKAGECONFIG[x264] = "--enable-libx264,--disable-libx264,x264"
32PACKAGECONFIG[vpx] = "--enable-libvpx,--disable-libvpx,libvpx"
33PACKAGECONFIG[mp3lame] = "--enable-libmp3lame,--disable-libmp3lame,lame"
34PACKAGECONFIG[faac] = "--enable-libfaac,--disable-libfaac,faac"
35PACKAGECONFIG[x11] = "--enable-x11grab,--disable-x11grab,virtual/libx11 libxfixes libxext xproto"
36
37EXTRA_OECONF = " \
38 --enable-shared \
39 --enable-pthreads \
40 --enable-gpl \
41 --enable-avfilter \
42 \
43 --cross-prefix=${TARGET_PREFIX} \
44 --prefix=${prefix} \
45 \
46 --enable-avserver \
47 --enable-avplay \
48 --ld="${CCLD}" \
49 --enable-libtheora \
50 --enable-libvorbis \
51 --arch=${TARGET_ARCH} \
52 --target-os="linux" \
53 --enable-cross-compile \
54 --extra-cflags="${TARGET_CFLAGS} ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" \
55 --extra-ldflags="${TARGET_LDFLAGS}" \
56 --sysroot="${STAGING_DIR_TARGET}" \
57 --enable-hardcoded-tables \
58 ${EXTRA_FFCONF} \
59 --libdir=${libdir} \
60 --shlibdir=${libdir} \
61"
62
63do_configure() {
64 # We don't have TARGET_PREFIX-pkgconfig
65 sed -i '/pkg_config_default="${cross_prefix}${pkg_config_default}"/d' ${S}/configure
66 mkdir -p ${B}
67 cd ${B}
68 ${S}/configure ${EXTRA_OECONF}
69 sed -i -e s:Os:O4:g ${B}/config.h
70}
71
72do_install_append() {
73 install -m 0644 ${S}/libavfilter/*.h ${D}${includedir}/libavfilter/
74}
75
76FFMPEG_LIBS = "libavcodec libavdevice libavformat \
77 libavutil libpostproc libswscale libavfilter"
78
79PACKAGES += "${PN}-vhook-dbg ${PN}-vhook ffmpeg-x264-presets"
80
81RSUGGESTS_${PN} = "mplayer"
82FILES_${PN} = "${bindir}"
83FILES_${PN}-dev = "${includedir}/${PN}"
84
85FILES_${PN}-vhook = "${libdir}/vhook"
86FILES_${PN}-vhook-dbg += "${libdir}/vhook/.debug"
87
88FILES_ffmpeg-x264-presets = "${datadir}/*.avpreset"
89
90LEAD_SONAME = "libavcodec.so"
91
92FILES_${PN}-dev = "${includedir}"
93
94python populate_packages_prepend() {
95 av_libdir = d.expand('${libdir}')
96 av_pkgconfig = d.expand('${libdir}/pkgconfig')
97
98 # Runtime package
99 do_split_packages(d, av_libdir, '^lib(.*)\.so\..*',
100 output_pattern='lib%s',
101 description='libav %s library',
102 extra_depends='',
103 prepend=True,
104 allow_links=True)
105
106 # Development packages (-dev, -staticdev)
107 do_split_packages(d, av_libdir, '^lib(.*)\.so$',
108 output_pattern='lib%s-dev',
109 description='libav %s development package',
110 extra_depends='${PN}-dev',
111 prepend=True,
112 allow_links=True)
113 do_split_packages(d, av_pkgconfig, '^lib(.*)\.pc$',
114 output_pattern='lib%s-dev',
115 description='libav %s development package',
116 extra_depends='${PN}-dev',
117 prepend=True)
118 do_split_packages(d, av_libdir, '^lib(.*)\.a$',
119 output_pattern='lib%s-staticdev',
120 description='libav %s development package - static library',
121 extra_depends='${PN}-dev',
122 prepend=True,
123 allow_links=True)
124
125 if d.getVar('TARGET_ARCH', True) == 'i586':
126 # libav can't be build with -fPIC for 32-bit x86
127 pkgs = d.getVar('PACKAGES', True).split()
128 for pkg in pkgs:
129 d.appendVar('INSANE_SKIP_%s' % pkg, ' textrel')
130}
131
132PACKAGES_DYNAMIC += "^lib(av(codec|device|filter|format|util)|postproc|swscale).*"
diff --git a/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch b/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch
new file mode 100644
index 0000000000..d9b22b9b6a
--- /dev/null
+++ b/meta/recipes-multimedia/libav/libav/0001-configure-enable-pic-for-AArch64.patch
@@ -0,0 +1,23 @@
1From 58db99e98f615d79ea90cac8f4bcf11c94e3e7c7 Mon Sep 17 00:00:00 2001
2From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
3Date: Thu, 10 Jan 2013 12:42:19 +0100
4Subject: [PATCH] configure: enable pic for AArch64
5
6Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
7
8Upstream-Status: Backport
9---
10 configure | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13--- git.orig/configure
14+++ git/configure
15@@ -2393,7 +2393,7 @@ check_host_cflags -std=c99
16 check_host_cflags -Wall
17
18 case "$arch" in
19- alpha|ia64|mips|parisc|ppc|sparc)
20+ alpha|ia64|mips|parisc|ppc|sparc|aarch64)
21 spic=$shared
22 ;;
23 x86)
diff --git a/meta/recipes-multimedia/libav/libav_0.8.9.bb b/meta/recipes-multimedia/libav/libav_0.8.9.bb
new file mode 100644
index 0000000000..7c807e887e
--- /dev/null
+++ b/meta/recipes-multimedia/libav/libav_0.8.9.bb
@@ -0,0 +1,18 @@
1require libav.inc
2
3SRC_URI = "http://libav.org/releases/${BP}.tar.xz \
4 file://0001-configure-enable-pic-for-AArch64.patch"
5
6SRC_URI[md5sum] = "7c0e5743cd5c4d4b1bcafd02a2e82e09"
7SRC_URI[sha256sum] = "4f5181164e4007d5b0013bb3cc5e3b7393ab71ac286319c714b7697e2784f77f"
8
9LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
12 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13
14PROVIDES += "libpostproc"
15
16EXTRA_OECONF += " \
17 --enable-postproc \
18"
diff --git a/meta/recipes-multimedia/libav/libav_9.10.bb b/meta/recipes-multimedia/libav/libav_9.10.bb
new file mode 100644
index 0000000000..48bab7d018
--- /dev/null
+++ b/meta/recipes-multimedia/libav/libav_9.10.bb
@@ -0,0 +1,13 @@
1require libav.inc
2
3LIC_FILES_CHKSUM = "file://COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
4 file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
5 file://COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
6 file://COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
7
8SRC_URI = "http://libav.org/releases/${BP}.tar.xz"
9
10SRC_URI[md5sum] = "4b49d1d8734815ca095bb0600d41c5cb"
11SRC_URI[sha256sum] = "83dbe640779da1c1e8d8836c99575f57f749d18407494ebca451578afee9300d"
12
13DEFAULT_PREFERENCE = "-1"
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch b/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
new file mode 100644
index 0000000000..38d40c3632
--- /dev/null
+++ b/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
@@ -0,0 +1,43 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: libid3tag-0.15.1b/Makefile.am
4===================================================================
5--- libid3tag-0.15.1b.orig/Makefile.am 2009-07-29 09:29:20.000000000 +0100
6+++ libid3tag-0.15.1b/Makefile.am 2009-07-29 09:29:47.000000000 +0100
7@@ -27,6 +27,9 @@
8 lib_LTLIBRARIES = libid3tag.la
9 include_HEADERS = id3tag.h
10
11+pkgconfigdir = $(libdir)/pkgconfig
12+pkgconfig_DATA = id3tag.pc
13+
14 ## From the libtool documentation on library versioning:
15 ##
16 ## CURRENT
17Index: libid3tag-0.15.1b/configure.ac
18===================================================================
19--- libid3tag-0.15.1b.orig/configure.ac 2009-07-29 09:27:15.000000000 +0100
20+++ libid3tag-0.15.1b/configure.ac 2009-07-29 09:27:45.000000000 +0100
21@@ -201,5 +201,5 @@
22 dnl AC_SUBST(LTLIBOBJS)
23
24 AC_CONFIG_FILES([Makefile msvc++/Makefile \
25- libid3tag.list])
26+ libid3tag.list id3tag.pc])
27 AC_OUTPUT
28Index: libid3tag-0.15.1b/id3tag.pc.in
29===================================================================
30--- /dev/null 1970-01-01 00:00:00.000000000 +0000
31+++ libid3tag-0.15.1b/id3tag.pc.in 2009-07-29 09:29:10.000000000 +0100
32@@ -0,0 +1,11 @@
33+prefix=@prefix@
34+exec_prefix=@exec_prefix@
35+libdir=@libdir@
36+includedir=@includedir@
37+
38+Name: id3tag
39+Description: ID3 tag reading library
40+Requires:
41+Version: @VERSION@
42+Libs: -L${libdir} -lid3tag -lz
43+Cflags: -I${includedir}
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch b/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
new file mode 100644
index 0000000000..8a04b54efd
--- /dev/null
+++ b/meta/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
@@ -0,0 +1,14 @@
1Upstream-Status: Submitted [https://sourceforge.net/tracker/?func=detail&aid=3599280&group_id=12349&atid=112349]
2
3Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4diff -Nurd libid3tag-0.15.1b/configure.ac libid3tag-0.15.1b/configure.ac
5--- libid3tag-0.15.1b/configure.ac 2004-01-24 01:22:46.000000000 +0200
6+++ libid3tag-0.15.1b/configure.ac 2013-01-03 06:41:02.734835014 +0200
7@@ -28,7 +28,7 @@
8
9 AM_INIT_AUTOMAKE
10
11-AM_CONFIG_HEADER([config.h])
12+AC_CONFIG_HEADERS([config.h])
13
14 dnl System type.
diff --git a/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
new file mode 100644
index 0000000000..05a8a47631
--- /dev/null
+++ b/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
@@ -0,0 +1,22 @@
1SUMMARY = "Library for interacting with ID3 tags in MP3 files"
2HOMEPAGE = "http://sourceforge.net/projects/mad/"
3BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
6 file://COPYRIGHT;md5=5e6279efb87c26c6e5e7a68317a6a87a \
7 file://version.h;beginline=1;endline=8;md5=86ac68b67f054b7afde9e149bbc3fe63"
8SECTION = "libs"
9DEPENDS = "zlib gperf-native"
10PR = "r7"
11
12SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libid3tag-${PV}.tar.gz \
13 file://addpkgconfig.patch \
14 file://obsolete_automake_macros.patch \
15"
16
17SRC_URI[md5sum] = "e5808ad997ba32c498803822078748c3"
18SRC_URI[sha256sum] = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151"
19
20S = "${WORKDIR}/libid3tag-${PV}"
21
22inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch b/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch
new file mode 100644
index 0000000000..b49dc8c983
--- /dev/null
+++ b/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch
@@ -0,0 +1,70 @@
1Here is a patch for adding pkg-config support to libmad.
2It would make life a bit easier for distro maintainers if this was applied.
3In case you didn't know, pkg-config is a tool for providing LDFLAGS and
4CFLAGS for packages using shared libraries. It's on freedesktop.org.
5Debian has already been distributing the pkg-config file mad.pc with
6libmad for some time, and people developing on debian (notably xmms2
7developers) have started relying on this support being present, causing
8some confusion for people installing from source and on some BSDs which
9do not provide mad.pc (google: pkgconfig libmad).
10
11EMH
12
13Upstream-Status: Inappropriate [configuration]
14
15--h31gzZEtNLTqOjlF
16Content-Type: text/plain; charset=us-ascii
17Content-Disposition: attachment; filename=&quot;libmad-0.15.1b-pkgconfig.patch&quot;
18
19diff -Naur libmad-0.15.1b.old/configure.ac libmad-0.15.1b/configure.ac
20--- libmad-0.15.1b.old/configure.ac 2004-01-23 10:41:32.000000000 +0100
21+++ libmad-0.15.1b/configure.ac 2004-08-07 02:25:24.633462168 +0200
22@@ -429,5 +429,5 @@
23 dnl AC_SUBST(LTLIBOBJS)
24
25 AC_CONFIG_FILES([Makefile msvc++/Makefile \
26- libmad.list])
27+ libmad.list mad.pc])
28 AC_OUTPUT
29diff -Naur libmad-0.15.1b.old/mad.pc.in libmad-0.15.1b/mad.pc.in
30--- libmad-0.15.1b.old/mad.pc.in 1970-01-01 01:00:00.000000000 +0100
31+++ libmad-0.15.1b/mad.pc.in 2004-08-07 02:04:59.617692872 +0200
32@@ -0,0 +1,14 @@
33+# libmad pkg-config source file
34+
35+prefix=@prefix@
36+exec_prefix=@exec_prefix@
37+libdir=@libdir@
38+includedir=@includedir@
39+
40+Name: mad
41+Description: MPEG Audio Decoder
42+Version: @VERSION@
43+Requires:
44+Conflicts:
45+Libs: -L${libdir} -lmad -lm
46+Cflags: -I${includedir}
47diff -Naur libmad-0.15.1b.old/Makefile.am libmad-0.15.1b/Makefile.am
48--- libmad-0.15.1b.old/Makefile.am 2004-02-17 03:02:03.000000000 +0100
49+++ libmad-0.15.1b/Makefile.am 2004-08-07 02:03:19.859858368 +0200
50@@ -24,6 +24,9 @@
51 SUBDIRS =
52 DIST_SUBDIRS = msvc++
53
54+pkgconfigdir = $(libdir)/pkgconfig
55+pkgconfig_DATA = mad.pc
56+
57 lib_LTLIBRARIES = libmad.la
58 include_HEADERS = mad.h
59
60@@ -34,7 +37,8 @@
61 minimad_LDADD = libmad.la
62
63 EXTRA_DIST = mad.h.sed \
64- CHANGES COPYRIGHT CREDITS README TODO VERSION
65+ CHANGES COPYRIGHT CREDITS README TODO VERSION \
66+ mad.pc.in
67
68 exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \
69 synth.h decoder.h
70
diff --git a/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
new file mode 100644
index 0000000000..01c7aa3c8c
--- /dev/null
+++ b/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
@@ -0,0 +1,33 @@
1gcc 4.4 did this: The MIPS port no longer recognizes the h asm constraint. It was necessary to remove this constraint in order to avoid generating unpredictable code sequences.
2
3so the libmad build with gcc-4.5.0 was failing.
4
5Found a solution here:
6
7http://us.generation-nt.com/answer/bug-568418-libmad0-dev-mpg321-compilation-errors-mips-mipsel-architectures-help-169033451.html
8
9Upstream-Status: Pending
10
112010/07/29
12Nitin A Kamble <nitin.a.kamble@intel.com>
13
14Index: libmad-0.15.1b/fixed.h
15===================================================================
16--- libmad-0.15.1b.orig/fixed.h
17+++ libmad-0.15.1b/fixed.h
18@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t
19
20 /* --- MIPS ---------------------------------------------------------------- */
21
22+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
23+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
24+# define MAD_F_MLX(hi, lo, x, y) \
25+ do { \
26+ u64_di_t __ll = (u64_di_t) (x) * (y); \
27+ hi = __ll >> 32; \
28+ lo = __ll; \
29+ } while (0)
30+
31 # elif defined(FPM_MIPS)
32
33 /*
diff --git a/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch b/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch
new file mode 100644
index 0000000000..d5e6d206e2
--- /dev/null
+++ b/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch
@@ -0,0 +1,18 @@
1This option no longer exists in gcc 3.4.1
2
3RP - 18/07/2008
4
5Upstream-Status: Inappropriate [configuration]
6
7Index: libmad-0.15.1b/configure.ac
8===================================================================
9--- libmad-0.15.1b.orig/configure.ac 2008-07-18 15:45:30.000000000 +0100
10+++ libmad-0.15.1b/configure.ac 2008-07-18 15:45:37.000000000 +0100
11@@ -140,7 +140,6 @@
12 case "$optimize" in
13 -O|"-O "*)
14 optimize="-O"
15- optimize="$optimize -fforce-mem"
16 optimize="$optimize -fforce-addr"
17 : #x optimize="$optimize -finline-functions"
18 : #- optimize="$optimize -fstrength-reduce"
diff --git a/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch b/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch
new file mode 100644
index 0000000000..cc87d299ed
--- /dev/null
+++ b/meta/recipes-multimedia/libmad/libmad/obsolete_automake_macros.patch
@@ -0,0 +1,14 @@
1Upstream-Status: Submitted [https://sourceforge.net/tracker/?group_id=12349&atid=112349]
2
3Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4diff -Nurd libmad-0.15.1b/configure.ac libmad-0.15.1b/configure.ac
5--- libmad-0.15.1b/configure.ac 2004-01-23 11:41:32.000000000 +0200
6+++ libmad-0.15.1b/configure.ac 2013-01-03 08:28:23.718693697 +0200
7@@ -28,7 +28,7 @@
8
9 AM_INIT_AUTOMAKE
10
11-AM_CONFIG_HEADER([config.h])
12+AC_CONFIG_HEADERS([config.h])
13
14 dnl System type.
diff --git a/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb b/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb
new file mode 100644
index 0000000000..58d68a639b
--- /dev/null
+++ b/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb
@@ -0,0 +1,37 @@
1SUMMARY = "MPEG Audio Decoder library"
2HOMEPAGE = "http://sourceforge.net/projects/mad/"
3BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
4LICENSE = "GPLv2+"
5LICENSE_FLAGS = "commercial"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
7 file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \
8 file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454"
9SECTION = "libs"
10DEPENDS = "libid3tag"
11PR = "r3"
12
13SRC_URI = "${SOURCEFORGE_MIRROR}/mad/libmad-${PV}.tar.gz \
14 file://no-force-mem.patch \
15 file://add-pkgconfig.patch \
16 file://fix_for_mips_with_gcc-4.5.0.patch \
17 file://obsolete_automake_macros.patch \
18"
19
20SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c"
21SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690"
22
23S = "${WORKDIR}/libmad-${PV}"
24
25inherit autotools pkgconfig
26
27EXTRA_OECONF = "-enable-speed --enable-shared"
28# The ASO's don't take any account of thumb...
29EXTRA_OECONF_append_thumb = " --disable-aso --enable-fpm=default"
30EXTRA_OECONF_append_arm = " --enable-fpm=arm"
31
32do_configure_prepend () {
33# damn picky automake...
34 touch NEWS AUTHORS ChangeLog
35}
36
37ARM_INSTRUCTION_SET = "arm"
diff --git a/meta/recipes-multimedia/libogg/libogg_1.3.1.bb b/meta/recipes-multimedia/libogg/libogg_1.3.1.bb
new file mode 100644
index 0000000000..0c12e07c7c
--- /dev/null
+++ b/meta/recipes-multimedia/libogg/libogg_1.3.1.bb
@@ -0,0 +1,17 @@
1SUMMARY = "Ogg bitstream and framing libary"
2DESCRIPTION = "libogg is the bitstream and framing library \
3for the Ogg project. It provides functions which are \
4necessary to codec libraries like libvorbis."
5HOMEPAGE = "http://xiph.org/"
6BUGTRACKER = "https://trac.xiph.org/newticket"
7SECTION = "libs"
8LICENSE = "BSD"
9LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
10 file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b"
11
12SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.xz"
13
14SRC_URI[md5sum] = "ca25d8da0ddfc8c6cbbf78d847a209fe"
15SRC_URI[sha256sum] = "3a5bad78d81afb78908326d11761c0fb1a0662ee7150b6ad587cc586838cdcfa"
16
17inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
new file mode 100644
index 0000000000..876e80ef76
--- /dev/null
+++ b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/configure-fix.patch
@@ -0,0 +1,58 @@
1To enable --disable-Werror for libomxil to avoid some compilers which check code strictly.
2
3For example, at least the following errors happened to some compilers:
4
51) OMX_INDEXTYPE in include/OMX_Index.h IS NOT OMX_INDEXVENDORTYPE in src/base/omx_base_component.h
6| i586-poky-linux-libtool: compile: i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_Climinate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c OMXComponentRMExt.c -fPIC -DPIC -o .libs/libomxbase_la-OMXComponentRMExt.o
7| omx_base_component.c: In function 'omx_base_component_GetParameter':
8| omx_base_component.c:991:3: error: case value '2130706435' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
9| omx_base_component.c:918:3: error: case value '2130706436' not in enumerated type 'OMX_INDEXTYPE' [-Werror=switch]
10
112)
12| i586-poky-linux-gcc -m32 -march=i586 --sysroot=/home/yocto-build5/poky/build/tmp/sysroots/qemux86 -DHAVE_CONFIG_H -I. -I.. -DOMXILCOMPOminate-unused-debug-types -Wall -Werror -DCONFIG_DEBUG_LEVEL=0 -c -o omxregister_bellagio-omxregister.o `test -f 'omxregister.c' || echo './'`o
13| omxregister.c: In function 'buildComponentsList':
14| omxregister.c:175:7: error: variable 'err' set but not used [-Werror=unused-but-set-variable]
15| cc1: all warnings being treated as errors
16
17Upstream-Status: Inappropriate [configuration]
18
19Signed-off-by: Shane Wang <shane.wang@intel.com>
20
21diff -r 82d742d3ea90 configure.ac
22--- a/configure.ac Tue Dec 27 15:30:35 2011 +0800
23+++ b/configure.ac Tue Dec 27 16:26:03 2011 +0800
24@@ -5,7 +5,7 @@
25 AC_PREREQ([2.59])
26
27 AC_CONFIG_HEADERS([config.h])
28-CFLAGS="${CFLAGS} -Wall -Werror"
29+CFLAGS="${CFLAGS} -Wall"
30
31 ################################################################################
32 # Set the shared versioning info, according to section 6.3 of the libtool info #
33@@ -122,6 +122,14 @@
34 [with_android=$enableval],
35 [with_android=no])
36
37+AC_ARG_ENABLE(
38+ [Werror],
39+ [AC_HELP_STRING(
40+ [--disable-Werror],
41+ [whether to diable treating gcc warnings as errors])],
42+ [with_Werror=$enableval],
43+ [with_Werror=yes])
44+
45 ################################################################################
46 # Check for programs #
47 ################################################################################
48@@ -193,6 +201,10 @@
49 CFG_DEBUG_LEVEL=255
50 fi
51
52+if test "x$with_Werror" = "xyes"; then
53+ CFLAGS="${CFLAGS} -Werror"
54+fi
55+
56 AC_SUBST(CFG_DEBUG_LEVEL)
57 CFLAGS="${CFLAGS} -DCONFIG_DEBUG_LEVEL=$CFG_DEBUG_LEVEL"
58
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
new file mode 100644
index 0000000000..787953a99b
--- /dev/null
+++ b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/dynamicloader-linking.patch
@@ -0,0 +1,20 @@
1This patch fixes link issue when libomxdynamicloader.so is loaded :
2Missing symbol RM_Deinit.
3
4This patch comes from "http://pkgs.fedoraproject.org/cgit/libomxil-bellagio.git/commit/?h=f17&id=4996a95828943d345e51ded6876c3103653eecf8"
5
6Upstream-Status: Pending
7
8Signed-off-by: Sébastien Mennetrier <s.mennetrier@innotis.org>
9
10--- a/src/dynamic_loader/Makefile.am 2014-02-25 15:29:10.128549636 +0100
11+++ b/src/dynamic_loader/Makefile.am 2014-02-25 15:30:15.756548808 +0100
12@@ -3,7 +3,7 @@
13 omxdynamicloader_LTLIBRARIES = libomxdynamicloader.la
14 libomxdynamicloader_la_SOURCES = ste_dynamic_component_loader.c ste_dynamic_component_loader.h
15
16-libomxdynamicloader_la_LDFLAGS =
17+libomxdynamicloader_la_LDFLAGS = -lomxil-bellagio -L$(top_builddir)/src/.libs
18 libomxdynamicloader_la_CFLAGS = -I$(top_srcdir)/include \
19 -I$(top_srcdir)/src \
20 -I$(top_srcdir)/src/base \
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
new file mode 100644
index 0000000000..dbe8c41f74
--- /dev/null
+++ b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/makefile-docdir-fix.patch
@@ -0,0 +1,19 @@
1This patch is to remove DESTDIR in docdir.
2Otherwise, when users install by running `make install DESTDIR=/alternate/directory' specified in the file INSTALL, the doc will go into /alternate/directory/alternate/directory, which is not expected.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r 30b597e4e70d Makefile.am
9--- a/Makefile.am Wed Dec 28 15:38:35 2011 +0800
10+++ b/Makefile.am Wed Dec 28 15:39:25 2011 +0800
11@@ -7,7 +7,7 @@
12 pkgconfigdir = $(libdir)/pkgconfig
13 pkgconfig_DATA = libomxil-bellagio.pc
14
15-docdir = $(DESTDIR)$(prefix)/share/doc/@PACKAGE@
16+docdir = $(prefix)/share/doc/@PACKAGE@
17 doc_DATA = README \
18 ChangeLog \
19 TODO
diff --git a/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
new file mode 100644
index 0000000000..483ca1328b
--- /dev/null
+++ b/meta/recipes-multimedia/libomxil/libomxil-0.9.3/parallel-make.patch
@@ -0,0 +1,18 @@
1This patch is to make libomxil Makefile support "make -jN".
2The omxregister_bellagio stuffs depend on libomxil_bellagio library.
3
4Upstream-Status: Pending
5
6Signed-off-by: Shane Wang <shane.wang@intel.com>
7
8diff -r f59d077d3dd5 Makefile.am
9--- a/src/Makefile.am Wed Dec 28 10:54:36 2011 +0800
10+++ b/src/Makefile.am Wed Dec 28 10:55:46 2011 +0800
11@@ -7,6 +7,7 @@
12 omxregister_bellagio_SOURCES = omxregister.c common.c common.h
13 omxregister_bellagio_CFLAGS = -DOMXILCOMPONENTSPATH=\"$(plugindir)/\" \
14 -I$(top_srcdir)/include
15+omxregister_bellagio_LDADD = $(lib_LTLIBRARIES)
16 omxregister_bellagio_LDFLAGS = -lomxil-bellagio -L$(builddir)
17
18 lib_LTLIBRARIES = libomxil-bellagio.la
diff --git a/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
new file mode 100644
index 0000000000..103d789482
--- /dev/null
+++ b/meta/recipes-multimedia/libomxil/libomxil_0.9.3.bb
@@ -0,0 +1,35 @@
1SUMMARY = "Bellagio OpenMAX Integration Layer (IL)"
2DESCRIPTION = "Bellagio is an opensource implementation of the Khronos OpenMAX \
3 Integration Layer API to access multimedia components."
4HOMEPAGE = "http://omxil.sourceforge.net/"
5
6LICENSE = "LGPLv2.1+"
7LICENSE_FLAGS = "commercial"
8LIC_FILES_CHKSUM = "file://COPYING;md5=ae6f0f4dbc7ac193b50f323a6ae191cb \
9 file://src/omxcore.h;beginline=1;endline=27;md5=806b1e5566c06486fe8e42b461e03a90"
10
11SRC_URI = "${SOURCEFORGE_MIRROR}/omxil/libomxil-bellagio-${PV}.tar.gz \
12 file://configure-fix.patch \
13 file://parallel-make.patch \
14 file://makefile-docdir-fix.patch \
15 file://dynamicloader-linking.patch"
16
17SRC_URI[md5sum] = "a1de827fdb75c02c84e55f740ca27cb8"
18SRC_URI[sha256sum] = "593c0729c8ef8c1467b3bfefcf355ec19a46dd92e31bfc280e17d96b0934d74c"
19
20S = "${WORKDIR}/${BPN}-bellagio-${PV}"
21
22inherit autotools
23
24EXTRA_OECONF += "--disable-doc --disable-Werror"
25
26FILES_${PN} += "${libdir}/bellagio/*${SOLIBS} \
27 ${libdir}/omxloaders/*${SOLIBS}"
28FILES_${PN}-staticdev += "${libdir}/bellagio/*.a \
29 ${libdir}/omxloaders/*.a"
30FILES_${PN}-dev += "${libdir}/bellagio/*.la \
31 ${libdir}/bellagio/*${SOLIBSDEV} \
32 ${libdir}/omxloaders/*.la \
33 ${libdir}/omxloaders/*${SOLIBSDEV}"
34FILES_${PN}-dbg += "${libdir}/bellagio/.debug/ \
35 ${libdir}/omxloaders/.debug/"
diff --git a/meta/recipes-multimedia/libpng/libpng/0001-configure-lower-automake-requirement.patch b/meta/recipes-multimedia/libpng/libpng/0001-configure-lower-automake-requirement.patch
new file mode 100644
index 0000000000..bbbca89e8f
--- /dev/null
+++ b/meta/recipes-multimedia/libpng/libpng/0001-configure-lower-automake-requirement.patch
@@ -0,0 +1,31 @@
1From fff7cbc01e061a235852f385866fe75fb17867e3 Mon Sep 17 00:00:00 2001
2From: Valentin Popa <valentin.popa@intel.com>
3Date: Tue, 26 Nov 2013 12:06:55 +0200
4Subject: [PATCH] configure: lower automake requirement
5
6We're not using parallel tests in OE-core yet
7
8Signed-off-by: Valentin Popa <valentin.popa@intel.com>
9Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
10
11Upstream-Status: Inapropriate [OE specific build hack]
12---
13 configure.ac | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/configure.ac b/configure.ac
17index 28200c3..fab2515 100644
18--- a/configure.ac
19+++ b/configure.ac
20@@ -27,7 +27,7 @@ AC_CONFIG_MACRO_DIR([scripts])
21 # dist-xz requires automake 1.11 or later
22 # 1.12.2 fixes a security issue in 1.11.2 and 1.12.1
23 # 1.13 is required for parallel tests
24-AM_INIT_AUTOMAKE([1.13 foreign dist-xz color-tests silent-rules subdir-objects])
25+AM_INIT_AUTOMAKE([1.12.2 foreign dist-xz color-tests silent-rules subdir-objects])
26 # The following line causes --disable-maintainer-mode to be the default to
27 # configure, this is necessary because libpng distributions cannot rely on the
28 # time stamps of the autotools generated files being correct
29--
301.8.3.2
31
diff --git a/meta/recipes-multimedia/libpng/libpng_1.6.8.bb b/meta/recipes-multimedia/libpng/libpng_1.6.8.bb
new file mode 100644
index 0000000000..d063495f05
--- /dev/null
+++ b/meta/recipes-multimedia/libpng/libpng_1.6.8.bb
@@ -0,0 +1,27 @@
1SUMMARY = "PNG image format decoding library"
2HOMEPAGE = "http://www.libpng.org/"
3SECTION = "libs"
4LICENSE = "Libpng"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=44bc22578be94b6536c8bdc3a01e5db9 \
6 file://png.h;endline=15;md5=aa42e53406a5ebb9500bae72fa314b6d \
7 file://png.h;beginline=209;endline=323;md5=83e13159b5bf0a4d9fb634acbda7cb5b"
8DEPENDS = "zlib"
9LIBV = "16"
10
11SRC_URI = "${SOURCEFORGE_MIRROR}/project/libpng/libpng${LIBV}/${PV}/libpng-${PV}.tar.xz \
12 file://0001-configure-lower-automake-requirement.patch \
13 "
14
15SRC_URI[md5sum] = "51ce71a1642cdde1f4485a7ff82193c0"
16SRC_URI[sha256sum] = "24f73d8b5e1d74a9482c81b65c3f93f96c7da7ed0417b8a948a75d2d99133081"
17
18inherit autotools binconfig pkgconfig
19
20# Work around missing symbols
21EXTRA_OECONF_append_arm = " ${@bb.utils.contains("TUNE_FEATURES", "neon", "--enable-arm-neon=on", "--enable-arm-neon=off" ,d)}"
22
23PACKAGES =+ "${PN}-tools"
24
25FILES_${PN}-tools = "${bindir}/png-fix-itxt ${bindir}/pngfix"
26
27BBCLASSEXTEND = "native nativesdk"
diff --git a/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb
new file mode 100644
index 0000000000..f06935c8ba
--- /dev/null
+++ b/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.8.bb
@@ -0,0 +1,18 @@
1SUMMARY = "Audio Sample Rate Conversion library"
2HOMEPAGE = "http://www.mega-nerd.com/SRC/"
3SECTION = "libs"
4LICENSE = "GPLv2+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
6 file://src/samplerate.c;beginline=1;endline=17;md5=d0807c35fc906466d24a50463534815a"
7DEPENDS = "flac libsndfile1"
8PR = "r1"
9
10SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz"
11
12SRC_URI[md5sum] = "1c7fb25191b4e6e3628d198a66a84f47"
13SRC_URI[sha256sum] = "93b54bdf46d5e6d2354b7034395fe329c222a966790de34520702bb9642f1c06"
14S = "${WORKDIR}/libsamplerate-${PV}"
15
16inherit autotools pkgconfig
17
18PACKAGECONFIG[fftw] = ",--disable-fftw,fftw"
diff --git a/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb
new file mode 100644
index 0000000000..fe0e39721c
--- /dev/null
+++ b/meta/recipes-multimedia/libsndfile/libsndfile1_1.0.25.bb
@@ -0,0 +1,30 @@
1SUMMARY = "Audio format Conversion library"
2HOMEPAGE = "http://www.mega-nerd.com/libsndfile"
3AUTHOR = "Erik de Castro Lopo"
4DEPENDS = "sqlite3"
5SECTION = "libs/multimedia"
6LICENSE = "LGPLv2.1"
7PR = "r2"
8
9SRC_URI = "http://www.mega-nerd.com/libsndfile/files/libsndfile-${PV}.tar.gz"
10
11SRC_URI[md5sum] = "e2b7bb637e01022c7d20f95f9c3990a2"
12SRC_URI[sha256sum] = "59016dbd326abe7e2366ded5c344c853829bebfd1702ef26a07ef662d6aa4882"
13
14LIC_FILES_CHKSUM = "file://COPYING;md5=e77fe93202736b47c07035910f47974a"
15
16S = "${WORKDIR}/libsndfile-${PV}"
17
18PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)}"
19PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
20
21EXTRA_OECONF = "--disable-external-libs"
22
23inherit autotools lib_package pkgconfig
24
25do_configure_prepend_arm() {
26 export ac_cv_sys_largefile_source=1
27 export ac_cv_sys_file_offset_bits=64
28 ac_cv_sizeof_off_t=8
29}
30
diff --git a/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch b/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch
new file mode 100644
index 0000000000..359f3d1a7a
--- /dev/null
+++ b/meta/recipes-multimedia/libtheora/libtheora-1.1.1/no-docs.patch
@@ -0,0 +1,15 @@
1Upstream-Status: Inappropriate [configuration]
2
3Index: libtheora-1.1.1/Makefile.am
4===================================================================
5--- libtheora-1.1.1.orig/Makefile.am 2009-11-25 22:01:53.593775926 +0100
6+++ libtheora-1.1.1/Makefile.am 2009-11-25 22:02:00.777524017 +0100
7@@ -8,7 +8,7 @@
8 EXAMPLES_DIR =
9 endif
10
11-SUBDIRS = lib include doc tests m4 $(EXAMPLES_DIR)
12+SUBDIRS = lib include tests m4 $(EXAMPLES_DIR)
13
14
15 # we include the whole debian/ dir in EXTRA_DIST because there's a problem
diff --git a/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
new file mode 100644
index 0000000000..18cb168c52
--- /dev/null
+++ b/meta/recipes-multimedia/libtheora/libtheora_1.1.1.bb
@@ -0,0 +1,20 @@
1SUMMARY = "Theora Video Codec"
2DESCRIPTION = "The libtheora reference implementation provides the standard encoder and decoder under a BSD license."
3HOMEPAGE = "http://xiph.org/"
4BUGTRACKER = "https://trac.xiph.org/newticket"
5SECTION = "libs"
6LICENSE = "BSD"
7LIC_FILES_CHKSUM = "file://COPYING;md5=cf91718f59eb6a83d06dc7bcaf411132"
8DEPENDS = "libogg"
9
10PR = "r1"
11
12SRC_URI = "http://downloads.xiph.org/releases/theora/libtheora-${PV}.tar.bz2 \
13 file://no-docs.patch"
14
15SRC_URI[md5sum] = "292ab65cedd5021d6b7ddd117e07cd8e"
16SRC_URI[sha256sum] = "b6ae1ee2fa3d42ac489287d3ec34c5885730b1296f0801ae577a35193d3affbc"
17
18inherit autotools pkgconfig
19
20EXTRA_OECONF = "--disable-examples"
diff --git a/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-1960.patch b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-1960.patch
new file mode 100644
index 0000000000..e4348f1d2c
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-1960.patch
@@ -0,0 +1,151 @@
1This patch comes from: http://pkgs.fedoraproject.org/cgit/libtiff.git/plain/libtiff-CVE-2013-1960.patch
2
3Upstream-Status: Pending
4
5Signed-off-by: Ming Liu <ming.liu@windriver.com>
6
7diff -Naur a/tools/tiff2pdf.c b/tools/tiff2pdf.c
8--- a/tools/tiff2pdf.c 2012-07-25 22:56:43.000000000 -0400
9+++ b/tools/tiff2pdf.c 2013-05-02 12:04:49.057090227 -0400
10@@ -3341,33 +3341,56 @@
11 uint32 height){
12
13 tsize_t i=0;
14- uint16 ri =0;
15- uint16 v_samp=1;
16- uint16 h_samp=1;
17- int j=0;
18-
19- i++;
20-
21- while(i<(*striplength)){
22+
23+ while (i < *striplength) {
24+ tsize_t datalen;
25+ uint16 ri;
26+ uint16 v_samp;
27+ uint16 h_samp;
28+ int j;
29+ int ncomp;
30+
31+ /* marker header: one or more FFs */
32+ if (strip[i] != 0xff)
33+ return(0);
34+ i++;
35+ while (i < *striplength && strip[i] == 0xff)
36+ i++;
37+ if (i >= *striplength)
38+ return(0);
39+ /* SOI is the only pre-SOS marker without a length word */
40+ if (strip[i] == 0xd8)
41+ datalen = 0;
42+ else {
43+ if ((*striplength - i) <= 2)
44+ return(0);
45+ datalen = (strip[i+1] << 8) | strip[i+2];
46+ if (datalen < 2 || datalen >= (*striplength - i))
47+ return(0);
48+ }
49 switch( strip[i] ){
50- case 0xd8:
51- /* SOI - start of image */
52+ case 0xd8: /* SOI - start of image */
53 _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), 2);
54 *bufferoffset+=2;
55- i+=2;
56 break;
57- case 0xc0:
58- case 0xc1:
59- case 0xc3:
60- case 0xc9:
61- case 0xca:
62+ case 0xc0: /* SOF0 */
63+ case 0xc1: /* SOF1 */
64+ case 0xc3: /* SOF3 */
65+ case 0xc9: /* SOF9 */
66+ case 0xca: /* SOF10 */
67 if(no==0){
68- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
69- for(j=0;j<buffer[*bufferoffset+9];j++){
70- if( (buffer[*bufferoffset+11+(2*j)]>>4) > h_samp)
71- h_samp = (buffer[*bufferoffset+11+(2*j)]>>4);
72- if( (buffer[*bufferoffset+11+(2*j)] & 0x0f) > v_samp)
73- v_samp = (buffer[*bufferoffset+11+(2*j)] & 0x0f);
74+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
75+ ncomp = buffer[*bufferoffset+9];
76+ if (ncomp < 1 || ncomp > 4)
77+ return(0);
78+ v_samp=1;
79+ h_samp=1;
80+ for(j=0;j<ncomp;j++){
81+ uint16 samp = buffer[*bufferoffset+11+(3*j)];
82+ if( (samp>>4) > h_samp)
83+ h_samp = (samp>>4);
84+ if( (samp & 0x0f) > v_samp)
85+ v_samp = (samp & 0x0f);
86 }
87 v_samp*=8;
88 h_samp*=8;
89@@ -3381,45 +3404,43 @@
90 (unsigned char) ((height>>8) & 0xff);
91 buffer[*bufferoffset+6]=
92 (unsigned char) (height & 0xff);
93- *bufferoffset+=strip[i+2]+2;
94- i+=strip[i+2]+2;
95-
96+ *bufferoffset+=datalen+2;
97+ /* insert a DRI marker */
98 buffer[(*bufferoffset)++]=0xff;
99 buffer[(*bufferoffset)++]=0xdd;
100 buffer[(*bufferoffset)++]=0x00;
101 buffer[(*bufferoffset)++]=0x04;
102 buffer[(*bufferoffset)++]=(ri >> 8) & 0xff;
103 buffer[(*bufferoffset)++]= ri & 0xff;
104- } else {
105- i+=strip[i+2]+2;
106 }
107 break;
108- case 0xc4:
109- case 0xdb:
110- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
111- *bufferoffset+=strip[i+2]+2;
112- i+=strip[i+2]+2;
113+ case 0xc4: /* DHT */
114+ case 0xdb: /* DQT */
115+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
116+ *bufferoffset+=datalen+2;
117 break;
118- case 0xda:
119+ case 0xda: /* SOS */
120 if(no==0){
121- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), strip[i+2]+2);
122- *bufferoffset+=strip[i+2]+2;
123- i+=strip[i+2]+2;
124+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), datalen+2);
125+ *bufferoffset+=datalen+2;
126 } else {
127 buffer[(*bufferoffset)++]=0xff;
128 buffer[(*bufferoffset)++]=
129 (unsigned char)(0xd0 | ((no-1)%8));
130- i+=strip[i+2]+2;
131 }
132- _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i-1]), (*striplength)-i-1);
133- *bufferoffset+=(*striplength)-i-1;
134+ i += datalen + 1;
135+ /* copy remainder of strip */
136+ _TIFFmemcpy(&(buffer[*bufferoffset]), &(strip[i]), *striplength - i);
137+ *bufferoffset+= *striplength - i;
138 return(1);
139 default:
140- i+=strip[i+2]+2;
141+ /* ignore any other marker */
142+ break;
143 }
144+ i += datalen + 1;
145 }
146-
147
148+ /* failed to find SOS marker */
149 return(0);
150 }
151 #endif
diff --git a/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4232.patch b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4232.patch
new file mode 100644
index 0000000000..9ebf8f9a2d
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4232.patch
@@ -0,0 +1,15 @@
1This patch comes from: http://bugzilla.maptools.org/attachment.cgi?id=513&action=diff
2
3Upstream-Status: Pending
4
5Signed-off-by: Baogen shang <baogen.shang@windriver.com>
6--- a/tools/tiff2pdf.c 2013-10-21 10:36:38.214170346 +0800
7+++ b/tools/tiff2pdf.c 2013-10-21 10:38:58.246170329 +0800
8@@ -2387,6 +2387,7 @@
9 TIFFFileName(input));
10 t2p->t2p_error = T2P_ERR_ERROR;
11 _TIFFfree(buffer);
12+ return(0);
13 } else {
14 buffer=samplebuffer;
15 t2p->tiff_datasize *= t2p->tiff_samplesperpixel;
diff --git a/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4243.patch b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4243.patch
new file mode 100644
index 0000000000..642a117976
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4243.patch
@@ -0,0 +1,40 @@
1This patch comes from: http://bugzilla.maptools.org/attachment.cgi?id=518&action=diff#tools/gif2tiff.c_sec2
2
3Upstream-Status: Pending
4
5Signed-off-by: Baogen shang <baogen.shang@windriver.com>
6--- a/tools/gif2tiff.c 2013-10-14 17:08:43.966239709 +0800
7+++ b/tools/gif2tiff.c 2013-10-14 17:18:22.994239638 +0800
8@@ -280,6 +280,10 @@
9 fprintf(stderr, "no colormap present for image\n");
10 return (0);
11 }
12+ if (width == 0 || height == 0) {
13+ fprintf(stderr, "Invalid value of width or height\n");
14+ return(0);
15+ }
16 if ((raster = (unsigned char*) _TIFFmalloc(width*height+EXTRAFUDGE)) == NULL) {
17 fprintf(stderr, "not enough memory for image\n");
18 return (0);
19@@ -397,6 +401,10 @@
20 return 1;
21 }
22
23+ if (*fill >= raster + width*height) {
24+ fprintf(stderr, "raster full before eoi code\n");
25+ return 0;
26+ }
27 if (oldcode == -1) {
28 *(*fill)++ = suffix[code];
29 firstchar = oldcode = code;
30@@ -428,6 +436,10 @@
31 }
32 oldcode = incode;
33 do {
34+ if (*fill >= raster + width*height) {
35+ fprintf(stderr, "raster full before eoi code\n");
36+ return 0;
37+ }
38 *(*fill)++ = *--stackp;
39 } while (stackp > stack);
40 return 1;
diff --git a/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4244.patch b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4244.patch
new file mode 100644
index 0000000000..1a668307ae
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/files/libtiff-CVE-2013-4244.patch
@@ -0,0 +1,19 @@
1This patch comes from: https://github.com/vadz/libtiff/commit/ce6841d9e41d621ba23cf18b190ee6a23b2cc833
2
3Upstream-Status: Backport
4
5Signed-off-by: Baogen shang <baogen.shang@windriver.com>
6--- a/tools/gif2tiff.c 2013-12-17 16:46:02.160814995 +0800
7+++ b/tools/gif2tiff.c 2013-12-17 16:52:25.140814949 +0800
8@@ -406,6 +406,11 @@
9 return 0;
10 }
11 if (oldcode == -1) {
12+ if (code >= clear) {
13+ fprintf(stderr, "bad input: code=%d is larger than clear=%d\n",code, clear);
14+ return 0;
15+ }
16+
17 *(*fill)++ = suffix[code];
18 firstchar = oldcode = code;
19 return 1;
diff --git a/meta/recipes-multimedia/libtiff/files/libtool2.patch b/meta/recipes-multimedia/libtiff/files/libtool2.patch
new file mode 100644
index 0000000000..457202eae5
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/files/libtool2.patch
@@ -0,0 +1,19 @@
1Upstream-Status: Inappropriate [configuration]
2
3---
4 configure.ac | 2 +-
5 1 file changed, 1 insertion(+), 1 deletion(-)
6
7Index: tiff-3.9.5/configure.ac
8===================================================================
9--- tiff-3.9.5.orig/configure.ac
10+++ tiff-3.9.5/configure.ac
11@@ -27,7 +27,7 @@ dnl Process this file with autoconf to p
12 AC_PREREQ(2.64)
13 AC_INIT([LibTIFF Software],[3.9.5],[tiff@lists.maptools.org],[tiff])
14 AC_CONFIG_AUX_DIR(config)
15-AC_CONFIG_MACRO_DIR(m4)
16+dnl AC_CONFIG_MACRO_DIR(m4)
17 AC_LANG(C)
18
19 dnl Compute the canonical host (run-time) system type variable
diff --git a/meta/recipes-multimedia/libtiff/tiff_4.0.3.bb b/meta/recipes-multimedia/libtiff/tiff_4.0.3.bb
new file mode 100644
index 0000000000..fb9e0bf67d
--- /dev/null
+++ b/meta/recipes-multimedia/libtiff/tiff_4.0.3.bb
@@ -0,0 +1,51 @@
1SUMMARY = "Provides support for the Tag Image File Format (TIFF)"
2LICENSE = "BSD-2-Clause"
3LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=34da3db46fab7501992f9615d7e158cf"
4HOMEPAGE = "http://www.remotesensing.org/libtiff/"
5
6SRC_URI = "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${PV}.tar.gz \
7 file://libtool2.patch \
8 file://libtiff-CVE-2013-1960.patch \
9 file://libtiff-CVE-2013-4232.patch \
10 file://libtiff-CVE-2013-4243.patch \
11 file://libtiff-CVE-2013-4244.patch"
12
13SRC_URI[md5sum] = "051c1068e6a0627f461948c365290410"
14SRC_URI[sha256sum] = "ea1aebe282319537fb2d4d7805f478dd4e0e05c33d0928baba76a7c963684872"
15
16inherit autotools
17
18CACHED_CONFIGUREVARS = "ax_cv_check_gl_libgl=no"
19
20PACKAGECONFIG ?= "cxx jpeg zlib lzma \
21 strip-chopping extrasample-as-alpha check-ycbcr-subsampling"
22
23PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,,"
24PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg,"
25PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib,"
26PACKAGECONFIG[lzma] = "--enable-lzma,--disable-lzma,xz,"
27
28# Convert single-strip uncompressed images to multiple strips of specified
29# size (default: 8192) to reduce memory usage
30PACKAGECONFIG[strip-chopping] = "--enable-strip-chopping,--disable-strip-chopping,,"
31
32# Treat a fourth sample with no EXTRASAMPLE_ value as being ASSOCALPHA
33PACKAGECONFIG[extrasample-as-alpha] = "--enable-extrasample-as-alpha,--disable-extrasample-as-alpha,,"
34
35# Control picking up YCbCr subsample info. Disable to support files lacking
36# the tag
37PACKAGECONFIG[check-ycbcr-subsampling] = "--enable-check-ycbcr-subsampling,--disable-check-ycbcr-subsampling,,"
38
39# Support a mechanism allowing reading large strips (usually one strip files)
40# in chunks when using TIFFReadScanline. Experimental 4.0+ feature
41PACKAGECONFIG[chunky-strip-read] = "--enable-chunky-strip-read,--disable-chunky-strip-read,,"
42
43PACKAGES =+ "tiffxx tiffxx-dbg tiffxx-dev tiffxx-staticdev tiff-utils tiff-utils-dbg"
44FILES_tiffxx = "${libdir}/libtiffxx.so.*"
45FILES_tiffxx-dev = "${libdir}/libtiffxx.so ${libdir}/libtiffxx.la"
46FILES_tiffxx-staticdev = "${libdir}/libtiffxx.a"
47FILES_tiffxx-dbg += "${libdir}/.debug/libtiffxx.so*"
48FILES_tiff-utils = "${bindir}/*"
49FILES_tiff-utils-dbg += "${bindir}/.debug/"
50
51BBCLASSEXTEND = "native"
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.4.bb b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.4.bb
new file mode 100644
index 0000000000..0788c94bce
--- /dev/null
+++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.4.bb
@@ -0,0 +1,25 @@
1SUMMARY = "Ogg Vorbis Audio Codec"
2DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
3that is free of intellectual property restrictions. libvorbis \
4is the main vorbis codec library."
5HOMEPAGE = "http://www.vorbis.com/"
6BUGTRACKER = "https://trac.xiph.org"
7SECTION = "libs"
8LICENSE = "BSD"
9LIC_FILES_CHKSUM = "file://COPYING;md5=ca77c6c3ea4d29cb68dce8ef5ab0d897 \
10 file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb"
11DEPENDS = "libogg"
12
13SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.xz"
14
15SRC_URI[md5sum] = "55f2288055e44754275a17c9a2497391"
16SRC_URI[sha256sum] = "2f05497d29195dc23ee952a24ee3973a74e6277569c4c2eca0ec5968e541f372"
17
18inherit autotools pkgconfig
19
20# vorbisfile.c reveals a problem in the gcc register spilling for the
21# thumb instruction set...
22FULL_OPTIMIZATION_thumb = "-O0"
23
24EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \
25 --with-ogg-includes=${STAGING_INCDIR}"
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch b/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch
new file mode 100644
index 0000000000..7dc56436f0
--- /dev/null
+++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec-0.4.1/altivec_h_needed.patch
@@ -0,0 +1,43 @@
1Add new method to judge whether <altivec.h> is needed
2
3The original logic will use "typedef vector int t;" to judge
4whether <altivec.h> is needed. altivec.h contains the following
5statement:
6
7 #if !defined(__APPLE_ALTIVEC__)
8 #define vector __vector
9 #define pixel __pixel
10 #define bool
11 #endif
12
13In gcc-4.3.3, __APPLE_ALTIVEC__ is not defined by compiler, neither
14as vector, pixel, and bool. In order to make "typedef vector int t;"
15pass the compilation, we need to include altivec.h.
16
17However in gcc-4.5.0, __APPLE_ALTIVEC__ is defined by compiler,
18so as vector, pixel, and bool. We could not judge whether
19altivec.h is needed by "typedef vector int t;".
20Here we include another statement "int tmp = __CR6_EQ;", in
21which __CR6_EQ is defined in altivec.h.
22
23Upstream-Status: Pending
24
25Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
26
27diff -ruN mpeg2dec-0.4.1-orig/configure.in mpeg2dec-0.4.1/configure.in
28--- mpeg2dec-0.4.1-orig/configure.in 2010-09-14 20:55:42.399687663 +0800
29+++ mpeg2dec-0.4.1/configure.in 2010-09-14 20:56:43.403204648 +0800
30@@ -75,11 +75,11 @@
31 CFLAGS="$OPT_CFLAGS $TRY_CFLAGS $CFLAGS"
32 AC_MSG_CHECKING([if <altivec.h> is needed])
33 AC_TRY_COMPILE([],
34- [typedef vector int t;
35+ [typedef vector int t; int tmp = __CR6_EQ;
36 vec_ld(0, (unsigned char *)0);],
37 [have_altivec=yes; AC_MSG_RESULT(no)],
38 [AC_TRY_COMPILE([#include <altivec.h>],
39- [typedef vector int t; vec_ld(0, (unsigned char *)0);],
40+ [typedef vector int t; int tmp = __CR6_EQ; vec_ld(0, (unsigned char *)0);],
41 [AC_DEFINE([HAVE_ALTIVEC_H],,
42 [Define to 1 if you have the <altivec.h> header.])
43 have_altivec=yes; AC_MSG_RESULT(yes)],
diff --git a/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb
new file mode 100644
index 0000000000..aee2f3be48
--- /dev/null
+++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb
@@ -0,0 +1,37 @@
1SUMMARY = "Library and test program for decoding MPEG-2 and MPEG-1 video streams"
2HOMEPAGE = "http://libmpeg2.sourceforge.net/"
3SECTION = "libs"
4LICENSE = "GPLv2+"
5LICENSE_FLAGS = "commercial"
6LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
7 file://include/mpeg2.h;beginline=1;endline=22;md5=ead62602d4638329d3b5b86a55803154"
8
9DEPENDS = "${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)}"
10
11PR = "r2"
12
13SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz \
14 file://altivec_h_needed.patch"
15
16SRC_URI[md5sum] = "7631b0a4bcfdd0d78c0bb0083080b0dc"
17SRC_URI[sha256sum] = "c74a76068f8ec36d4bb59a03bf1157be44118ca02252180e8b358b0b5e3edeee"
18
19inherit autotools pkgconfig
20
21EXTRA_OECONF = "--enable-shared --disable-sdl --with-x"
22
23PACKAGES = "mpeg2dec-dbg mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev libmpeg2-staticdev libmpeg2convert-staticdev"
24
25FILES_${PN} = "${bindir}/*"
26FILES_libmpeg2 = "${libdir}/libmpeg2.so.*"
27FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*"
28FILES_libmpeg2-dev = "${libdir}/libmpeg2.so \
29 ${libdir}/libmpeg2.la \
30 ${libdir}/pkgconfig/libmpeg2.pc \
31 ${includedir}/mpeg2dec/mpeg2.h"
32FILES_libmpeg2-staticdev = "${libdir}/libmpeg2.a"
33FILES_libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \
34 ${libdir}/libmpeg2convert.la \
35 ${libdir}/pkgconfig/libmpeg2convert.pc \
36 ${includedir}/mpeg2dec/mpeg2convert.h"
37FILES_libmpeg2convert-staticdev = "${libdir}/libmpeg2convert.a"
diff --git a/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb b/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb
new file mode 100644
index 0000000000..f31f9835e5
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/libatomics-ops_7.2.bb
@@ -0,0 +1,29 @@
1SUMMARY = "A library for atomic integer operations"
2DESCRIPTION = "A library for atomic integer operations"
3HOMEPAGE = "http://www.hpl.hp.com/research/linux/atomic_ops/"
4SECTION = "optional"
5LICENSE = "GPLv2 & MIT"
6LIC_FILES_CHKSUM = "file://doc/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
7 file://doc/LICENSING.txt;md5=607073e04548eac7d1f763e480477bab \
8 "
9PR = "r1"
10
11SRC_URI = "http://www.hpl.hp.com/research/linux/atomic_ops/download/libatomic_ops-${PV}.tar.gz \
12 "
13
14SRC_URI[md5sum] = "890acdc83a7cd10e2e9536062d3741c8"
15SRC_URI[sha256sum] = "c4ee6e0c304c6f13bcc32968453cdb54b2ec233d8bf4cfcf266ee09dc33b4eb5"
16
17S = "${WORKDIR}/libatomic_ops-${PV}"
18
19ALLOW_EMPTY_${PN} = "1"
20
21ARM_INSTRUCTION_SET = "arm"
22
23inherit autotools pkgconfig
24
25do_install_append() {
26 # those contain only docs, not necessary for now.
27 install -m 0755 -d ${D}${docdir}
28 mv ${D}${datadir}/libatomic_ops ${D}${docdir}/${BPN}
29}
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio.inc b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
new file mode 100644
index 0000000000..217673163c
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio.inc
@@ -0,0 +1,151 @@
1SUMMARY = "Sound server for Linux and Unix-like operating systems"
2HOMEPAGE = "http://www.pulseaudio.org"
3AUTHOR = "Lennart Poettering"
4SECTION = "libs/multimedia"
5LICENSE = "GPLv2+ & LGPLv2.1"
6LIC_FILES_CHKSUM = "file://GPL;md5=4325afd396febcb659c36b49533135d4 \
7 file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
8 file://src/pulsecore/resampler.h;beginline=4;endline=23;md5=c3d539b93f8c82a1780bfa3cfa544a95"
9
10DEPENDS = "libatomics-ops liboil libsamplerate0 libsndfile1 libtool"
11# optional
12DEPENDS += "udev alsa-lib glib-2.0 dbus gconf"
13DEPENDS += "json-c gdbm speex libxml-parser-perl-native"
14
15inherit autotools pkgconfig useradd gettext perlnative
16
17# *.desktop rules wont be generated during configure and build will fail
18# if using --disable-nls
19USE_NLS = "yes"
20
21EXTRA_OECONF = "\
22 --disable-hal-compat \
23 --disable-orc \
24 --enable-tcpwrap=no \
25 --with-access-group=audio \
26 --disable-openssl \
27 --disable-xen \
28 --with-database=simple \
29 --without-fftw \
30 --with-udev-rules-dir=`pkg-config --variable=udevdir udev`/rules.d \
31 ac_cv_header_valgrind_memcheck_h=no \
32"
33
34PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluez4', '', d)} \
35 ${@base_contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
36 ${@base_contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
37 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
38PACKAGECONFIG[bluez4] = "--enable-bluez4,--disable-bluez4,bluez4 sbc"
39PACKAGECONFIG[bluez5] = "--enable-bluez5,--disable-bluez5,bluez5 sbc"
40PACKAGECONFIG[gtk] = "--enable-gtk3,--disable-gtk3,gtk+3"
41PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
42PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxtst libice libsm libxcb"
43PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
44PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
45
46EXTRA_OECONF_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
47EXTRA_OECONF_append_armeb = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " --enable-neon-opt=no", d)}"
48
49
50export TARGET_PFPU = "${TARGET_FPU}"
51
52# TODO: Use more fine granular version
53#OE_LT_RPATH_ALLOW=":${libdir}/pulse-0.9:"
54OE_LT_RPATH_ALLOW = "any"
55OE_LT_RPATH_ALLOW[export]="1"
56
57do_install_append() {
58 install -d ${D}${sysconfdir}/default/volatiles
59 install -m 0644 ${WORKDIR}/volatiles.04_pulse ${D}${sysconfdir}/default/volatiles/volatiles.04_pulse
60
61 if [ "x${TARGET_PFPU}" = "xsoft" ] ; then
62 sed -i -e s:\;\ resample-method\ =\ sinc-fastest:resample-method\ =\ trivial: ${D}${sysconfdir}/pulse/daemon.conf
63 fi
64}
65
66USERADD_PACKAGES = "pulseaudio-server"
67GROUPADD_PARAM_pulseaudio-server = "pulse"
68USERADD_PARAM_pulseaudio-server = "--system --home /var/run/pulse \
69 --no-create-home --shell /bin/false \
70 --groups audio,pulse --gid pulse pulse"
71
72# The console-kit module is included here explicitly so bitbake can map to the
73# RDEPENDS we define for it in this recipe, and thereby ensure that when
74# adding the console-kit module to an image, we also get the necessary
75# consolekit package produced.
76PACKAGES =+ "libpulsecore libpulsecommon libpulse libpulse-simple libpulse-mainloop-glib \
77 pulseaudio-server pulseaudio-misc ${@base_contains('PACKAGECONFIG', 'x11', 'pulseaudio-module-console-kit', '', d)}"
78
79#upgrade path:
80RREPLACES_pulseaudio-server = "libpulse-bin libpulse-conf"
81
82PACKAGES_DYNAMIC += "^pulseaudio-lib.* ^pulseaudio-module.* ^libpulse-lib.* ^libpulse-module.* "
83
84FILES_libpulsecore = "${libdir}/libpulsecore*.so"
85FILES_libpulsecommon = "${libdir}/pulseaudio/libpulsecommon*.so"
86FILES_libpulse = "${libdir}/libpulse.so.*"
87FILES_libpulse-simple = "${libdir}/libpulse-simple.so.*"
88FILES_libpulse-mainloop-glib = "${libdir}/libpulse-mainloop-glib.so.*"
89
90FILES_${PN}-dbg += "${libexecdir}/pulse/.debug \
91 ${libdir}/pulse-${PV}/modules/.debug"
92FILES_${PN}-dev += "${libdir}/pulse-${PV}/modules/*.la ${datadir}/vala ${libdir}/cmake"
93FILES_${PN}-conf = "${sysconfdir}"
94FILES_${PN}-bin += "${sysconfdir}/default/volatiles/volatiles.04_pulse"
95FILES_${PN}-server = "${bindir}/pulseaudio ${bindir}/start-* ${sysconfdir} ${bindir}/pactl */udev/rules.d/*.rules"
96FILES_${PN}-misc = "${bindir}/* ${libdir}/pulseaudio/libpulsedsp.so"
97
98# Allow the pulseaudio package to be created empty as a placeholder (-dbg and -dev depend on it)
99ALLOW_EMPTY_${PN} = "1"
100
101CONFFILES_pulseaudio-server = "\
102 ${sysconfdir}/pulse/default.pa \
103 ${sysconfdir}/pulse/daemon.conf \
104 ${sysconfdir}/pulse/client.conf \
105 "
106
107pkg_postinst_${PN}-server() {
108 if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ] ; then
109 ${sysconfdir}/init.d/populate-volatile.sh update
110 fi
111}
112
113python populate_packages_prepend() {
114 #d.setVar('PKG_pulseaudio', 'pulseaudio')
115
116 plugindir = d.expand('${libdir}/pulse-${PV}/modules/')
117 do_split_packages(d, plugindir, '^module-(.*)\.so$', 'pulseaudio-module-%s', 'PulseAudio module for %s', extra_depends='', prepend=True)
118 do_split_packages(d, plugindir, '^lib(.*)\.so$', 'pulseaudio-lib-%s', 'PulseAudio library for %s', extra_depends='', prepend=True)
119}
120
121RDEPENDS_pulseaudio-server = " \
122 pulseaudio-module-filter-apply \
123 pulseaudio-module-filter-heuristics \
124 pulseaudio-module-udev-detect \
125 pulseaudio-module-null-sink \
126 pulseaudio-module-device-restore \
127 pulseaudio-module-stream-restore \
128 pulseaudio-module-card-restore \
129 pulseaudio-module-augment-properties \
130 pulseaudio-module-detect \
131 pulseaudio-module-alsa-sink \
132 pulseaudio-module-alsa-source \
133 pulseaudio-module-alsa-card \
134 pulseaudio-module-native-protocol-unix \
135 pulseaudio-module-default-device-restore \
136 pulseaudio-module-intended-roles \
137 pulseaudio-module-rescue-streams \
138 pulseaudio-module-always-sink \
139 pulseaudio-module-suspend-on-idle \
140 pulseaudio-module-position-event-sounds \
141 pulseaudio-module-role-cork \
142 pulseaudio-module-switch-on-port-available"
143
144RDEPENDS_pulseaudio-module-console-kit =+ "consolekit"
145RDEPENDS_pulseaudio-misc += "pulseaudio-module-cli-protocol-unix"
146
147FILES_pulseaudio-module-gconf += "${libexecdir}/pulse/gconf-helper"
148FILES_pulseaudio-module-alsa-card += "${datadir}/pulseaudio/alsa-mixer"
149
150RDEPENDS_pulseaudio-server += "\
151 ${@base_contains('DISTRO_FEATURES', 'x11', 'pulseaudio-module-console-kit', '', d)}"
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
new file mode 100644
index 0000000000..467cd2cbd0
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch
@@ -0,0 +1,30 @@
1From 002b16f0f2176b4c685e210e335bf69c02563ede Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Sat, 22 Feb 2014 18:03:10 +0100
4Subject: [PATCH] configure.ac: Check only for libsystemd not libsystemd-login
5
6* they were merged into libsystemd in systemd-209
7
8Upstream-Status: Pending (it would need to be conditional on systemd version for upstream to accept this)
9
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 configure.ac | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/configure.ac b/configure.ac
16index 388fae2..fff7a83 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -1160,7 +1160,7 @@ AC_ARG_ENABLE([systemd],
20 AS_HELP_STRING([--disable-systemd],[Disable optional systemd support]))
21
22 AS_IF([test "x$enable_systemd" != "xno"],
23- [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
24+ [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
25 HAVE_SYSTEMD=0)
26
27 AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"],
28--
291.8.5.3
30
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/volatiles.04_pulse b/meta/recipes-multimedia/pulseaudio/pulseaudio/volatiles.04_pulse
new file mode 100644
index 0000000000..5b1998032b
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio/volatiles.04_pulse
@@ -0,0 +1,2 @@
1# <type> <owner> <group> <mode> <path> <linksource>
2d pulse pulse 0755 /var/run/pulse none
diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb b/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb
new file mode 100644
index 0000000000..8d8c421179
--- /dev/null
+++ b/meta/recipes-multimedia/pulseaudio/pulseaudio_5.0.bb
@@ -0,0 +1,12 @@
1require pulseaudio.inc
2
3SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/pulseaudio-${PV}.tar.xz \
4 file://0001-configure.ac-Check-only-for-libsystemd-not-libsystem.patch \
5 file://volatiles.04_pulse"
6SRC_URI[md5sum] = "c43749838612f4860465e83ed62ca38e"
7SRC_URI[sha256sum] = "99c13a8b1249ddbd724f195579df79484e9af6418cecf6a15f003a7f36caf939"
8
9do_compile_prepend() {
10 mkdir -p ${S}/libltdl
11 cp ${STAGING_LIBDIR}/libltdl* ${S}/libltdl
12}
diff --git a/meta/recipes-multimedia/sbc/sbc_1.2.bb b/meta/recipes-multimedia/sbc/sbc_1.2.bb
new file mode 100644
index 0000000000..c9811e7c5b
--- /dev/null
+++ b/meta/recipes-multimedia/sbc/sbc_1.2.bb
@@ -0,0 +1,16 @@
1SUMMARY = "SBC Audio Codec"
2DESCRIPTION = "Bluetooth low-complexity, subband codec (SBC) library."
3HOMEPAGE = "https://www.bluez.org"
4SECTION = "libs"
5LICENSE = "GPLv2"
6LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e \
7 file://sbc/sbc.h;beginline=1;endline=26;md5=0f57d0df22b0d40746bdd29805a4361b"
8
9DEPENDS = "libsndfile1"
10
11SRC_URI = "${KERNELORG_MIRROR}/linux/bluetooth/${BP}.tar.xz"
12
13SRC_URI[md5sum] = "ec65c444ad4c32aa85702641045b19e9"
14SRC_URI[sha256sum] = "c2f01ea54f7473704825113a9cdd46a23e67c650eff575f0670c3d9d66c4a5dc"
15
16inherit autotools
diff --git a/meta/recipes-multimedia/speex/speex-fpu.inc b/meta/recipes-multimedia/speex/speex-fpu.inc
new file mode 100644
index 0000000000..2571d32484
--- /dev/null
+++ b/meta/recipes-multimedia/speex/speex-fpu.inc
@@ -0,0 +1,4 @@
1def get_speex_fpu_setting(bb, d):
2 if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
3 return "--enable-fixed-point --disable-float-api --disable-vbr"
4 return ""
diff --git a/meta/recipes-multimedia/speex/speex_1.2rc1.bb b/meta/recipes-multimedia/speex/speex_1.2rc1.bb
new file mode 100644
index 0000000000..9fd88a39f3
--- /dev/null
+++ b/meta/recipes-multimedia/speex/speex_1.2rc1.bb
@@ -0,0 +1,25 @@
1SUMMARY = "Speech Audio Codec"
2DESCRIPTION = "Speex is an Open Source/Free Software patent-free audio compression format designed for speech."
3HOMEPAGE = "http://www.speex.org"
4SECTION = "libs"
5LICENSE = "BSD"
6LIC_FILES_CHKSUM = "file://COPYING;md5=314649d8ba9dd7045dfb6683f298d0a8 \
7 file://include/speex/speex.h;beginline=1;endline=34;md5=a68129f78d7fe66e07163f73aba143b3"
8DEPENDS = "libogg"
9
10PR = "r2"
11
12SRC_URI = "http://downloads.us.xiph.org/releases/speex/speex-${PV}.tar.gz"
13
14SRC_URI[md5sum] = "c4438b22c08e5811ff10e2b06ee9b9ae"
15SRC_URI[sha256sum] = "342f30dc57bd4a6dad41398365baaa690429660b10d866b7d508e8f1179cb7a6"
16
17PARALLEL_MAKE = ""
18
19inherit autotools pkgconfig lib_package
20
21EXTRA_OECONF = " --enable-fixed-point --with-ogg-libraries=${STAGING_LIBDIR} \
22 --with-ogg-includes=${STAGING_INCDIR} --disable-oggtest"
23
24require speex-fpu.inc
25EXTRA_OECONF += "${@get_speex_fpu_setting(bb, d)}"
diff --git a/meta/recipes-multimedia/tremor/tremor-20120314/obsolete_automake_macros.patch b/meta/recipes-multimedia/tremor/tremor-20120314/obsolete_automake_macros.patch
new file mode 100644
index 0000000000..7e5102903b
--- /dev/null
+++ b/meta/recipes-multimedia/tremor/tremor-20120314/obsolete_automake_macros.patch
@@ -0,0 +1,15 @@
1Upstream-Status: Submitted [https://trac.xiph.org/ticket/1922]
2
3Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
4Index: configure.in
5===================================================================
6--- configure.in (revision 18764)
7+++ configure.in (working copy)
8@@ -9,7 +9,7 @@
9 AC_CANONICAL_HOST
10 AC_CANONICAL_TARGET
11
12-AM_CONFIG_HEADER([config.h])
13+AC_CONFIG_HEADERS([config.h])
14
15 AM_INIT_AUTOMAKE(libvorbisidec,1.2.1)
diff --git a/meta/recipes-multimedia/tremor/tremor-20120314/tremor-arm-thumb2.patch b/meta/recipes-multimedia/tremor/tremor-20120314/tremor-arm-thumb2.patch
new file mode 100644
index 0000000000..2049542227
--- /dev/null
+++ b/meta/recipes-multimedia/tremor/tremor-20120314/tremor-arm-thumb2.patch
@@ -0,0 +1,104 @@
1From: Xin Ouyang <Xin.Ouyang@windriver.com>
2Date: Mon, 16 Jul 2012 13:29:34 +0800
3Subject: [PATCH] tremor: add IT instructions for arm thumb2 tune flags.
4
5Upstream-Status: Pending
6
7In Thumb-2, most instructions do not have a built in condition code (except for
8conditional branches). Instead, short sequences of instructions which are to be
9executed conditionally can be preceded by a special "IT instruction" which
10describes the condition and which of the following instructions should be
11executed if the condition is false respectively.
12
13For the ARM/Thumb IT(If-Then) instruction:
14http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/Cjabicci.html
15
16Signed-off-by: Xin Ouyang <Xin.Ouyang@windriver.com>
17---
18 asm_arm.h | 14 ++++++++++++++
19 1 file changed, 14 insertions(+)
20
21diff --git a/asm_arm.h b/asm_arm.h
22index c3bda00..823c54f 100755
23--- a/asm_arm.h
24+++ b/asm_arm.h
25@@ -108,9 +108,11 @@ static inline void XNPROD31(ogg_int32_t a, ogg_int32_t b,
26 static inline ogg_int32_t CLIP_TO_15(ogg_int32_t x) {
27 int tmp;
28 asm volatile("subs %1, %0, #32768\n\t"
29+ "itt pl\n\t"
30 "movpl %0, #0x7f00\n\t"
31 "orrpl %0, %0, #0xff\n"
32 "adds %1, %0, #32768\n\t"
33+ "it mi\n\t"
34 "movmi %0, #0x8000"
35 : "+r"(x),"=r"(tmp)
36 :
37@@ -139,10 +141,12 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
38
39 "ldmdb r0!,{r1,r3};"
40 "subs r1,r1,%4;" //ilsp[j]-wi
41+ "it mi;"
42 "rsbmi r1,r1,#0;" //labs(ilsp[j]-wi)
43 "umull %0,r2,r1,%0;" //qi*=labs(ilsp[j]-wi)
44
45 "subs r1,r3,%4;" //ilsp[j+1]-wi
46+ "it mi;"
47 "rsbmi r1,r1,#0;" //labs(ilsp[j+1]-wi)
48 "umull %1,r3,r1,%1;" //pi*=labs(ilsp[j+1]-wi)
49
50@@ -167,6 +171,7 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
51 "mov r0,#0x4000;\n"
52
53 "subs r1,r1,%4;\n" //ilsp[j]-wi
54+ "it mi;\n"
55 "rsbmi r1,r1,#0;\n" //labs(ilsp[j]-wi)
56 "umull %0,r2,r1,%0;\n" //qi*=labs(ilsp[j]-wi)
57 "umull %1,r3,r0,%1;\n" //pi*=labs(ilsp[j+1]-wi)
58@@ -190,18 +195,23 @@ static inline void lsp_loop_asm(ogg_uint32_t *qip,ogg_uint32_t *pip,
59 "mov r2,#0;"
60 "orr r1,%0,%1;"
61 "tst r1,#0xff000000;"
62+ "itt ne;"
63 "addne r2,r2,#8;"
64 "movne r1,r1,lsr #8;"
65 "tst r1,#0x00f00000;"
66+ "itt ne;"
67 "addne r2,r2,#4;"
68 "movne r1,r1,lsr #4;"
69 "tst r1,#0x000c0000;"
70+ "itt ne;"
71 "addne r2,r2,#2;"
72 "movne r1,r1,lsr #2;"
73 "tst r1,#0x00020000;"
74+ "itt ne;"
75 "addne r2,r2,#1;"
76 "movne r1,r1,lsr #1;"
77 "tst r1,#0x00010000;"
78+ "it ne;"
79 "addne r2,r2,#1;"
80 "mov %0,%0,lsr r2;"
81 "mov %1,%1,lsr r2;"
82@@ -222,15 +232,19 @@ static inline void lsp_norm_asm(ogg_uint32_t *qip,ogg_int32_t *qexpp){
83 ogg_int32_t qexp=*qexpp;
84
85 asm("tst %0,#0x0000ff00;"
86+ "itt eq;"
87 "moveq %0,%0,lsl #8;"
88 "subeq %1,%1,#8;"
89 "tst %0,#0x0000f000;"
90+ "itt eq;"
91 "moveq %0,%0,lsl #4;"
92 "subeq %1,%1,#4;"
93 "tst %0,#0x0000c000;"
94+ "itt eq;"
95 "moveq %0,%0,lsl #2;"
96 "subeq %1,%1,#2;"
97 "tst %0,#0x00008000;"
98+ "itt eq;"
99 "moveq %0,%0,lsl #1;"
100 "subeq %1,%1,#1;"
101 : "+r"(qi),"+r"(qexp)
102--
1031.7.9.5
104
diff --git a/meta/recipes-multimedia/tremor/tremor_20120314.bb b/meta/recipes-multimedia/tremor/tremor_20120314.bb
new file mode 100644
index 0000000000..145316c53b
--- /dev/null
+++ b/meta/recipes-multimedia/tremor/tremor_20120314.bb
@@ -0,0 +1,22 @@
1SUMMARY = "Fixed-point decoder"
2DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec."
3SECTION = "libs"
4LICENSE = "BSD"
5LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
6 file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f"
7DEPENDS = "libogg"
8SRCDATE = "${PV}"
9PR = "r1"
10
11SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=18221;protocol=http \
12 file://obsolete_automake_macros.patch;striplevel=0 \
13 file://tremor-arm-thumb2.patch \
14"
15
16S = "${WORKDIR}/Tremor"
17
18inherit autotools
19
20EXTRA_OECONF = "--enable-shared"
21
22ARM_INSTRUCTION_SET = "arm"
diff --git a/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch b/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
new file mode 100644
index 0000000000..b844d88fe8
--- /dev/null
+++ b/meta/recipes-multimedia/x264/x264/don-t-default-to-cortex-a9-with-neon.patch
@@ -0,0 +1,20 @@
1-march flag is not in CFLAGS so this will always default to -mcpu=cortex-a8
2-mfpu=neon.
3
4Upstream-Status: Pending
5Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
6
7Index: git/configure
8===================================================================
9--- git.orig/configure 2013-02-10 16:26:40.666343682 +0200
10+++ git/configure 2013-02-10 16:27:49.198341677 +0200
11@@ -703,9 +703,6 @@
12 fi
13
14 if [ $asm = auto -a $ARCH = ARM ] ; then
15- # set flags so neon is built by default
16- echo $CFLAGS | grep -Eq '(-mcpu|-march|-mfpu)' || CFLAGS="$CFLAGS -mcpu=cortex-a8 -mfpu=neon"
17-
18 if cc_check '' '' '__asm__("rev ip, ip");' ; then define HAVE_ARMV6
19 cc_check '' '' '__asm__("movt r0, #0");' && define HAVE_ARMV6T2
20 cc_check '' '' '__asm__("vadd.i16 q0, q0, q0");' && define HAVE_NEON
diff --git a/meta/recipes-multimedia/x264/x264_git.bb b/meta/recipes-multimedia/x264/x264_git.bb
new file mode 100644
index 0000000000..d192c30fd2
--- /dev/null
+++ b/meta/recipes-multimedia/x264/x264_git.bb
@@ -0,0 +1,55 @@
1SUMMARY = "H.264/MPEG-4 AVC video encoder"
2DESCRIPTION = "A free software library and application for encoding video streams into the H.264/MPEG-4 AVC format."
3HOMEPAGE = "http://www.videolan.org/developers/x264.html"
4
5LICENSE = "GPLv2"
6LICENSE_FLAGS = "commercial"
7LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
8
9DEPENDS = "yasm-native"
10
11SRC_URI = "git://git.videolan.org/x264.git \
12 file://don-t-default-to-cortex-a9-with-neon.patch \
13 "
14
15SRCREV = "585324fee380109acd9986388f857f413a60b896"
16
17PV = "r2265+git${SRCPV}"
18
19S = "${WORKDIR}/git"
20
21inherit lib_package pkgconfig perlnative
22
23X264_DISABLE_ASM = ""
24X264_DISABLE_ASM_armv4 = "--disable-asm"
25X264_DISABLE_ASM_armv5 = "--disable-asm"
26X264_DISABLE_ASM_powerpc = "${@bb.utils.contains("TUNE_FEATURES", "spe", "--disable-asm", "", d)}"
27
28EXTRA_OECONF = '--prefix=${prefix} \
29 --host=${HOST_SYS} \
30 --libdir=${libdir} \
31 --cross-prefix=${TARGET_PREFIX} \
32 --sysroot=${STAGING_DIR_TARGET} \
33 --enable-shared \
34 --enable-static \
35 --disable-lavf \
36 --disable-swscale \
37 --enable-pic \
38 ${X264_DISABLE_ASM} \
39 '
40
41do_configure() {
42 ./configure ${EXTRA_OECONF}
43}
44
45# Get rid of -e
46EXTRA_OEMAKE = ""
47AS = "${TARGET_PREFIX}gcc"
48
49do_install() {
50 oe_runmake install DESTDIR=${D}
51}
52
53# PIC can't be enabled for 32-bit x86
54INSANE_SKIP_${PN}_append_i586 = " textrel"
55