diff options
Diffstat (limited to 'meta/recipes-multimedia')
51 files changed, 2097 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..ebd3493e6c --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-fpu.inc | |||
@@ -0,0 +1,6 @@ | |||
1 | |||
2 | def get_alsa_fpu_setting(bb, d): | ||
3 | if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]: | ||
4 | return "--with-softfloat" | ||
5 | return "" | ||
6 | |||
diff --git a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch b/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch new file mode 100644 index 0000000000..9016b348de --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/fix-tstamp-declaration.patch | |||
@@ -0,0 +1,19 @@ | |||
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 | |||
7 | Index: alsa-lib-1.0.13/include/global.h | ||
8 | =================================================================== | ||
9 | --- alsa-lib-1.0.13.orig/include/global.h | ||
10 | +++ alsa-lib-1.0.13/include/global.h | ||
11 | @@ -29,6 +29,8 @@ | ||
12 | #define __ALSA_GLOBAL_H_ | ||
13 | |||
14 | /* for timeval and timespec */ | ||
15 | +#define __need_timeval | ||
16 | +#define __need_timespec | ||
17 | #include <time.h> | ||
18 | |||
19 | #ifdef __cplusplus | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch b/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch new file mode 100644 index 0000000000..7d13166809 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-lib-1.0.23/unbreak_plugindir.patch | |||
@@ -0,0 +1,12 @@ | |||
1 | diff -Nur alsa-lib-1.0.14.orig/configure.in alsa-lib-1.0.14/configure.in | ||
2 | --- alsa-lib-1.0.14.orig/configure.in 2007-05-31 03:05:13.000000000 -0500 | ||
3 | +++ alsa-lib-1.0.14/configure.in 2007-08-18 13:05:49.000000000 -0500 | ||
4 | @@ -93,7 +93,7 @@ | ||
5 | esac | ||
6 | plugindir="$dir/$PACKAGE" | ||
7 | fi | ||
8 | -AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "plugindir", [directory containing ALSA add-on modules]) | ||
9 | +AC_DEFINE_UNQUOTED(ALSA_PLUGIN_DIR, "${plugindir}", [directory containing ALSA add-on modules]) | ||
10 | ALSA_PLUGIN_DIR="$plugindir" | ||
11 | AC_SUBST(ALSA_PLUGIN_DIR) | ||
12 | |||
diff --git a/meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb b/meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb new file mode 100644 index 0000000000..b0a2a305c0 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-lib_1.0.23.bb | |||
@@ -0,0 +1,40 @@ | |||
1 | DESCRIPTION = "Alsa sound library" | ||
2 | HOMEPAGE = "http://www.alsa-project.org" | ||
3 | BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php" | ||
4 | SECTION = "libs/multimedia" | ||
5 | LICENSE = "LGPLv2.1 & GPLv2+" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34 \ | ||
7 | file://src/socket.c;beginline=1;endline=26;md5=11ff89a8a7a4a690a5c78effe8159545" | ||
8 | |||
9 | # configure.in sets -D__arm__ on the command line for any arm system | ||
10 | # (not just those with the ARM instruction set), this should be removed, | ||
11 | # (or replaced by a permitted #define). | ||
12 | #FIXME: remove the following | ||
13 | ARM_INSTRUCTION_SET = "arm" | ||
14 | |||
15 | PR = "r0" | ||
16 | |||
17 | SRC_URI = "ftp://ftp.alsa-project.org/pub/lib/alsa-lib-${PV}.tar.bz2 \ | ||
18 | file://fix-tstamp-declaration.patch;patch=1" | ||
19 | |||
20 | inherit autotools pkgconfig | ||
21 | |||
22 | require alsa-fpu.inc | ||
23 | EXTRA_OECONF += "${@get_alsa_fpu_setting(bb, d)} " | ||
24 | |||
25 | EXTRA_OECONF = "--with-cards=pdaudiocf --with-oss=yes --disable-python" | ||
26 | |||
27 | PACKAGES =+ "alsa-server libasound alsa-conf-base alsa-conf alsa-doc alsa-dev" | ||
28 | FILES_${PN}-dbg += "${libdir}/alsa-lib/*/.debu*" | ||
29 | FILES_libasound = "${libdir}/libasound.so.*" | ||
30 | FILES_alsa-server = "${bindir}/*" | ||
31 | FILES_alsa-conf = "${datadir}/alsa/" | ||
32 | FILES_alsa-dev += "${libdir}/pkgconfig/ /usr/include/ ${datadir}/aclocal/*" | ||
33 | FILES_alsa-conf-base = "\ | ||
34 | ${datadir}/alsa/alsa.conf \ | ||
35 | ${datadir}/alsa/cards/aliases.conf \ | ||
36 | ${datadir}/alsa/pcm/default.conf \ | ||
37 | ${datadir}/alsa/pcm/dmix.conf \ | ||
38 | ${datadir}/alsa/pcm/dsnoop.conf" | ||
39 | |||
40 | RDEPENDS_libasound = "alsa-conf-base" | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-oss_1.0.17.bb b/meta/recipes-multimedia/alsa/alsa-oss_1.0.17.bb new file mode 100644 index 0000000000..00e00dc62b --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-oss_1.0.17.bb | |||
@@ -0,0 +1,12 @@ | |||
1 | DESCRIPTION = "Alsa OSS Compatibility Package" | ||
2 | SECTION = "libs/multimedia" | ||
3 | LICENSE = "GPL" | ||
4 | DEPENDS = "alsa-lib" | ||
5 | |||
6 | SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2" | ||
7 | |||
8 | inherit autotools | ||
9 | |||
10 | do_configure_prepend () { | ||
11 | touch NEWS README AUTHORS ChangeLog | ||
12 | } | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-tools_1.0.20.bb b/meta/recipes-multimedia/alsa/alsa-tools_1.0.20.bb new file mode 100644 index 0000000000..789b68e438 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-tools_1.0.20.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | BROKEN = "1" | ||
2 | |||
3 | DESCRIPTION = "Alsa Tools" | ||
4 | SECTION = "console/utils" | ||
5 | LICENSE = "GPL" | ||
6 | DEPENDS = "alsa-lib ncurses" | ||
7 | |||
8 | SRC_URI = "ftp://ftp.alsa-project.org/pub/tools/alsa-tools-${PV}.tar.bz2" | ||
9 | |||
10 | inherit autotools | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-utils-1.0.23/ncursesfix.patch b/meta/recipes-multimedia/alsa/alsa-utils-1.0.23/ncursesfix.patch new file mode 100644 index 0000000000..0009c1afe9 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-utils-1.0.23/ncursesfix.patch | |||
@@ -0,0 +1,42 @@ | |||
1 | # alsa-utils: Fix ncurses build failures | ||
2 | # Richard Purdie <rpurdie@linux.intel.com> | ||
3 | # Rebased to 1.0.23, Dongxiao Xu <dongxiao.xu@intel.com> | ||
4 | |||
5 | diff -ruN alsa-utils-1.0.23-orig/configure.in alsa-utils-1.0.23/configure.in | ||
6 | --- alsa-utils-1.0.23-orig/configure.in 2010-04-16 19:19:12.000000000 +0800 | ||
7 | +++ alsa-utils-1.0.23/configure.in 2010-06-22 15:22:06.731202478 +0800 | ||
8 | @@ -109,34 +109,16 @@ | ||
9 | NCURSESLIBSUFFIX="" | ||
10 | CURSES_NLS="no" | ||
11 | if test "$curseslib" = "ncursesw" -o \( "$curseslib" = "auto" -a "$USE_NLS" = "yes" \); then | ||
12 | - AC_CHECK_PROG([ncursesw5_config], [ncursesw5-config], [yes]) | ||
13 | - if test "$ncursesw5_config" = "yes"; then | ||
14 | - CURSESINC="<ncurses.h>" | ||
15 | - CURSESLIB=`ncursesw5-config --libs` | ||
16 | - CURSESLIBDIR=`ncursesw5-config --libdir` | ||
17 | - CURSES_CFLAGS=`ncursesw5-config --cflags` | ||
18 | - curseslib="ncursesw" | ||
19 | - else | ||
20 | AC_CHECK_LIB(ncursesw, initscr, | ||
21 | [ CURSESINC='<ncurses.h>'; CURSESLIB='-lncursesw'; curseslib="ncursesw"]) | ||
22 | - fi | ||
23 | if test -n "$CURSESINC"; then | ||
24 | NCURSESLIBSUFFIX="w" | ||
25 | CURSES_NLS="yes" | ||
26 | fi | ||
27 | fi | ||
28 | if test "$curseslib" = "ncurses" -o "$curseslib" = "auto"; then | ||
29 | - AC_CHECK_PROG([ncurses5_config], [ncurses5-config], [yes]) | ||
30 | - if test "$ncurses5_config" = "yes"; then | ||
31 | - CURSESINC="<ncurses.h>" | ||
32 | - CURSESLIB=`ncurses5-config --libs` | ||
33 | - CURSESLIBDIR=`ncurses5-config --libdir` | ||
34 | - CURSES_CFLAGS=`ncurses5-config --cflags` | ||
35 | - curseslib="ncurses" | ||
36 | - else | ||
37 | AC_CHECK_LIB(ncurses, initscr, | ||
38 | [ CURSESINC='<ncurses.h>'; CURSESLIB='-lncurses'; curseslib="ncurses"]) | ||
39 | - fi | ||
40 | fi | ||
41 | if test "$curseslib" = "curses" -o "$curseslib" = "auto"; then | ||
42 | AC_CHECK_LIB(curses, initscr, | ||
diff --git a/meta/recipes-multimedia/alsa/alsa-utils_1.0.23.bb b/meta/recipes-multimedia/alsa/alsa-utils_1.0.23.bb new file mode 100644 index 0000000000..7b30c0d4b0 --- /dev/null +++ b/meta/recipes-multimedia/alsa/alsa-utils_1.0.23.bb | |||
@@ -0,0 +1,67 @@ | |||
1 | DESCRIPTION = "ALSA Utilities" | ||
2 | HOMEPAGE = "http://www.alsa-project.org" | ||
3 | BUGTRACKER = "https://bugtrack.alsa-project.org/alsa-bug/login_page.php" | ||
4 | SECTION = "console/utils" | ||
5 | LICENSE = "GPLv2+" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | ||
7 | file://alsactl/utils.c;beginline=1;endline=20;md5=fe9526b055e246b5558809a5ae25c0b9" | ||
8 | DEPENDS = "alsa-lib ncurses gettext" | ||
9 | PR = "r0" | ||
10 | |||
11 | SRC_URI = "ftp://ftp.alsa-project.org/pub/utils/alsa-utils-${PV}.tar.bz2 \ | ||
12 | file://ncursesfix.patch;patch=1 " | ||
13 | |||
14 | # lazy hack. needs proper fixing in gettext.m4, see | ||
15 | # http://bugs.openembedded.org/show_bug.cgi?id=2348 | ||
16 | # please close bug and remove this comment when properly fixed | ||
17 | # | ||
18 | EXTRA_OECONF = "--disable-xmlto" | ||
19 | EXTRA_OECONF_linux-uclibc = "--disable-nls" | ||
20 | EXTRA_OECONF_linux-uclibcgnueabi = "--disable-nls" | ||
21 | |||
22 | inherit autotools | ||
23 | |||
24 | # This are all packages that we need to make. Also, the now empty alsa-utils | ||
25 | # ipk depend on them. | ||
26 | |||
27 | PACKAGES += "\ | ||
28 | alsa-utils-alsamixer \ | ||
29 | alsa-utils-midi \ | ||
30 | alsa-utils-aplay \ | ||
31 | alsa-utils-amixer \ | ||
32 | alsa-utils-aconnect \ | ||
33 | alsa-utils-iecset \ | ||
34 | alsa-utils-speakertest \ | ||
35 | alsa-utils-aseqnet \ | ||
36 | alsa-utils-aseqdump \ | ||
37 | alsa-utils-alsaconf \ | ||
38 | alsa-utils-alsactl " | ||
39 | |||
40 | # We omit alsaconf, because | ||
41 | # a) this is a bash script | ||
42 | # b) it creates config files not suitable for OE-based distros | ||
43 | |||
44 | FILES_${PN} = "" | ||
45 | FILES_alsa-utils-aplay = "${bindir}/aplay ${bindir}/arecord" | ||
46 | FILES_alsa-utils-amixer = "${bindir}/amixer" | ||
47 | FILES_alsa-utils-alsamixer = "${bindir}/alsamixer" | ||
48 | FILES_alsa-utils-speakertest = "${bindir}/speaker-test ${datadir}/sounds/alsa/ ${datadir}/alsa/" | ||
49 | FILES_alsa-utils-midi = "${bindir}/aplaymidi ${bindir}/arecordmidi ${bindir}/amidi" | ||
50 | FILES_alsa-utils-aconnect = "${bindir}/aconnect" | ||
51 | FILES_alsa-utils-aseqnet = "${bindir}/aseqnet" | ||
52 | FILES_alsa-utils-iecset = "${bindir}/iecset" | ||
53 | FILES_alsa-utils-alsactl = "${sbindir}/alsactl" | ||
54 | FILES_alsa-utils-aseqdump = "${bindir}/aseqdump" | ||
55 | FILES_alsa-utils-alsaconf = "${sbindir}/alsaconf" | ||
56 | |||
57 | DESCRIPTION_alsa-utils-aplay = "play (and record) sound files via ALSA" | ||
58 | DESCRIPTION_alsa-utils-amixer = "command-line based control for ALSA mixer and settings" | ||
59 | DESCRIPTION_alsa-utils-alsamixer = "ncurses based control for ALSA mixer and settings" | ||
60 | DESCRIPTION_alsa-utils-speakertest = "ALSA surround speaker test utility" | ||
61 | DESCRIPTION_alsa-utils-midi = "miscalleanous MIDI utilities for ALSA" | ||
62 | DESCRIPTION_alsa-utils-aconnect = "ALSA sequencer connection manager" | ||
63 | DESCRIPTION_alsa-utils-aseqnet = "network client/server on ALSA sequencer" | ||
64 | DESCRIPTION_alsa-utils-alsactl = "saves/restores ALSA-settings in /etc/asound.state" | ||
65 | DESCRIPTION_alsa-utils-alsaconf = "a bash script that creates ALSA configuration files" | ||
66 | |||
67 | ALLOW_EMPTY_alsa-utils = "1" | ||
diff --git a/meta/recipes-multimedia/flac/flac-1.2.1/disable-xmms-plugin.patch b/meta/recipes-multimedia/flac/flac-1.2.1/disable-xmms-plugin.patch new file mode 100644 index 0000000000..e2f4fa1360 --- /dev/null +++ b/meta/recipes-multimedia/flac/flac-1.2.1/disable-xmms-plugin.patch | |||
@@ -0,0 +1,24 @@ | |||
1 | # Acquired from OpenEmbedded | ||
2 | |||
3 | diff -ruN flac-1.2.1-orig/src/Makefile.am flac-1.2.1-new/src/Makefile.am | ||
4 | --- flac-1.2.1-orig/src/Makefile.am 2010-06-23 15:06:29.167865355 +0800 | ||
5 | +++ flac-1.2.1-new/src/Makefile.am 2010-06-25 16:23:05.555202728 +0800 | ||
6 | @@ -15,10 +15,6 @@ | ||
7 | # restrictive of those mentioned above. See the file COPYING.Xiph in this | ||
8 | # distribution. | ||
9 | |||
10 | -if FLaC__HAS_XMMS | ||
11 | -XMMS_DIRS = plugin_common plugin_xmms | ||
12 | -endif | ||
13 | - | ||
14 | if FLaC__WITH_CPPLIBS | ||
15 | CPPLIBS_DIRS = libFLAC++ test_libFLAC++ | ||
16 | endif | ||
17 | @@ -29,7 +25,6 @@ | ||
18 | flac \ | ||
19 | metaflac \ | ||
20 | monkeys_audio_utilities \ | ||
21 | - $(XMMS_DIRS) \ | ||
22 | plugin_winamp2 \ | ||
23 | test_grabbag \ | ||
24 | test_libs_common \ | ||
diff --git a/meta/recipes-multimedia/flac/flac-1.2.1/flac-gcc43-fixes.patch b/meta/recipes-multimedia/flac/flac-1.2.1/flac-gcc43-fixes.patch new file mode 100644 index 0000000000..fdb6f1337e --- /dev/null +++ b/meta/recipes-multimedia/flac/flac-1.2.1/flac-gcc43-fixes.patch | |||
@@ -0,0 +1,14 @@ | |||
1 | # Acquired from OpenEmbedded | ||
2 | # Fix no declaration of memcmp() | ||
3 | |||
4 | diff -urN flac-1.2.1-orig/examples/cpp/encode/file/main.cpp flac-1.2.1/examples/cpp/encode/file/main.cpp | ||
5 | --- flac-1.2.1-orig/examples/cpp/encode/file/main.cpp 2010-06-23 15:06:29.159481339 +0800 | ||
6 | +++ flac-1.2.1/examples/cpp/encode/file/main.cpp 2010-06-23 15:06:46.233384883 +0800 | ||
7 | @@ -30,6 +30,7 @@ | ||
8 | |||
9 | #include <stdio.h> | ||
10 | #include <stdlib.h> | ||
11 | +#include <string.h> | ||
12 | #include "FLAC++/metadata.h" | ||
13 | #include "FLAC++/encoder.h" | ||
14 | |||
diff --git a/meta/recipes-multimedia/flac/flac-1.2.1/xmms.m4 b/meta/recipes-multimedia/flac/flac-1.2.1/xmms.m4 new file mode 100644 index 0000000000..5e250cdd38 --- /dev/null +++ b/meta/recipes-multimedia/flac/flac-1.2.1/xmms.m4 | |||
@@ -0,0 +1,149 @@ | |||
1 | # CFLAGS and library paths for XMMS | ||
2 | # written 15 December 1999 by Ben Gertzfield <che@debian.org> | ||
3 | # Acquired from OpenEmbedded | ||
4 | |||
5 | dnl Usage: | ||
6 | dnl AM_PATH_XMMS([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) | ||
7 | dnl | ||
8 | dnl Example: | ||
9 | dnl AM_PATH_XMMS(0.9.5.1, , AC_MSG_ERROR([*** XMMS >= 0.9.5.1 not installed - please install first ***])) | ||
10 | dnl | ||
11 | dnl Defines XMMS_CFLAGS, XMMS_LIBS, XMMS_DATA_DIR, XMMS_PLUGIN_DIR, | ||
12 | dnl XMMS_VISUALIZATION_PLUGIN_DIR, XMMS_INPUT_PLUGIN_DIR, | ||
13 | dnl XMMS_OUTPUT_PLUGIN_DIR, XMMS_GENERAL_PLUGIN_DIR, XMMS_EFFECT_PLUGIN_DIR, | ||
14 | dnl and XMMS_VERSION for your plugin pleasure. | ||
15 | dnl | ||
16 | |||
17 | dnl XMMS_TEST_VERSION(AVAILABLE-VERSION, NEEDED-VERSION [, ACTION-IF-OKAY [, ACTION-IF-NOT-OKAY]]) | ||
18 | AC_DEFUN(XMMS_TEST_VERSION, [ | ||
19 | |||
20 | # Determine which version number is greater. Prints 2 to stdout if | ||
21 | # the second number is greater, 1 if the first number is greater, | ||
22 | # 0 if the numbers are equal. | ||
23 | |||
24 | # Written 15 December 1999 by Ben Gertzfield <che@debian.org> | ||
25 | # Revised 15 December 1999 by Jim Monty <monty@primenet.com> | ||
26 | |||
27 | AC_PROG_AWK | ||
28 | xmms_got_version=[` $AWK ' \ | ||
29 | BEGIN { \ | ||
30 | print vercmp(ARGV[1], ARGV[2]); \ | ||
31 | } \ | ||
32 | \ | ||
33 | function vercmp(ver1, ver2, ver1arr, ver2arr, \ | ||
34 | ver1len, ver2len, \ | ||
35 | ver1int, ver2int, len, i, p) { \ | ||
36 | \ | ||
37 | ver1len = split(ver1, ver1arr, /\./); \ | ||
38 | ver2len = split(ver2, ver2arr, /\./); \ | ||
39 | \ | ||
40 | len = ver1len > ver2len ? ver1len : ver2len; \ | ||
41 | \ | ||
42 | for (i = 1; i <= len; i++) { \ | ||
43 | p = 1000 ^ (len - i); \ | ||
44 | ver1int += ver1arr[i] * p; \ | ||
45 | ver2int += ver2arr[i] * p; \ | ||
46 | } \ | ||
47 | \ | ||
48 | if (ver1int < ver2int) \ | ||
49 | return 2; \ | ||
50 | else if (ver1int > ver2int) \ | ||
51 | return 1; \ | ||
52 | else \ | ||
53 | return 0; \ | ||
54 | }' $1 $2`] | ||
55 | |||
56 | if test $xmms_got_version -eq 2; then # failure | ||
57 | ifelse([$4], , :, $4) | ||
58 | else # success! | ||
59 | ifelse([$3], , :, $3) | ||
60 | fi | ||
61 | ]) | ||
62 | |||
63 | AC_DEFUN(AM_PATH_XMMS, | ||
64 | [ | ||
65 | AC_ARG_WITH(xmms-prefix,[ --with-xmms-prefix=PFX Prefix where XMMS is installed (optional)], | ||
66 | xmms_config_prefix="$withval", xmms_config_prefix="") | ||
67 | AC_ARG_WITH(xmms-exec-prefix,[ --with-xmms-exec-prefix=PFX Exec prefix where XMMS is installed (optional)], | ||
68 | xmms_config_exec_prefix="$withval", xmms_config_exec_prefix="") | ||
69 | |||
70 | if test x$xmms_config_exec_prefix != x; then | ||
71 | xmms_config_args="$xmms_config_args --exec-prefix=$xmms_config_exec_prefix" | ||
72 | if test x${XMMS_CONFIG+set} != xset; then | ||
73 | XMMS_CONFIG=$xmms_config_exec_prefix/bin/xmms-config | ||
74 | fi | ||
75 | fi | ||
76 | |||
77 | if test x$xmms_config_prefix != x; then | ||
78 | xmms_config_args="$xmms_config_args --prefix=$xmms_config_prefix" | ||
79 | if test x${XMMS_CONFIG+set} != xset; then | ||
80 | XMMS_CONFIG=$xmms_config_prefix/bin/xmms-config | ||
81 | fi | ||
82 | fi | ||
83 | |||
84 | AC_PATH_PROG(XMMS_CONFIG, xmms-config, no) | ||
85 | min_xmms_version=ifelse([$1], ,0.9.5.1, $1) | ||
86 | |||
87 | if test "$XMMS_CONFIG" = "no"; then | ||
88 | no_xmms=yes | ||
89 | else | ||
90 | XMMS_CFLAGS=`$XMMS_CONFIG $xmms_config_args --cflags` | ||
91 | XMMS_LIBS=`$XMMS_CONFIG $xmms_config_args --libs` | ||
92 | XMMS_VERSION=`$XMMS_CONFIG $xmms_config_args --version` | ||
93 | XMMS_DATA_DIR=`$XMMS_CONFIG $xmms_config_args --data-dir` | ||
94 | XMMS_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --plugin-dir` | ||
95 | XMMS_VISUALIZATION_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args \ | ||
96 | --visualization-plugin-dir` | ||
97 | XMMS_INPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --input-plugin-dir` | ||
98 | XMMS_OUTPUT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --output-plugin-dir` | ||
99 | XMMS_EFFECT_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --effect-plugin-dir` | ||
100 | XMMS_GENERAL_PLUGIN_DIR=`$XMMS_CONFIG $xmms_config_args --general-plugin-dir` | ||
101 | |||
102 | XMMS_TEST_VERSION($XMMS_VERSION, $min_xmms_version, ,no_xmms=version) | ||
103 | fi | ||
104 | |||
105 | AC_MSG_CHECKING(for XMMS - version >= $min_xmms_version) | ||
106 | |||
107 | if test "x$no_xmms" = x; then | ||
108 | AC_MSG_RESULT(yes) | ||
109 | ifelse([$2], , :, [$2]) | ||
110 | else | ||
111 | AC_MSG_RESULT(no) | ||
112 | |||
113 | if test "$XMMS_CONFIG" = "no" ; then | ||
114 | echo "*** The xmms-config script installed by XMMS could not be found." | ||
115 | echo "*** If XMMS was installed in PREFIX, make sure PREFIX/bin is in" | ||
116 | echo "*** your path, or set the XMMS_CONFIG environment variable to the" | ||
117 | echo "*** full path to xmms-config." | ||
118 | else | ||
119 | if test "$no_xmms" = "version"; then | ||
120 | echo "*** An old version of XMMS, $XMMS_VERSION, was found." | ||
121 | echo "*** You need a version of XMMS newer than $min_xmms_version." | ||
122 | echo "*** The latest version of XMMS is always available from" | ||
123 | echo "*** http://www.xmms.org/" | ||
124 | echo "***" | ||
125 | |||
126 | echo "*** If you have already installed a sufficiently new version, this error" | ||
127 | echo "*** probably means that the wrong copy of the xmms-config shell script is" | ||
128 | echo "*** being found. The easiest way to fix this is to remove the old version" | ||
129 | echo "*** of XMMS, but you can also set the XMMS_CONFIG environment to point to the" | ||
130 | echo "*** correct copy of xmms-config. (In this case, you will have to" | ||
131 | echo "*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf" | ||
132 | echo "*** so that the correct libraries are found at run-time)" | ||
133 | fi | ||
134 | fi | ||
135 | XMMS_CFLAGS="" | ||
136 | XMMS_LIBS="" | ||
137 | ifelse([$3], , :, [$3]) | ||
138 | fi | ||
139 | AC_SUBST(XMMS_CFLAGS) | ||
140 | AC_SUBST(XMMS_LIBS) | ||
141 | AC_SUBST(XMMS_VERSION) | ||
142 | AC_SUBST(XMMS_DATA_DIR) | ||
143 | AC_SUBST(XMMS_PLUGIN_DIR) | ||
144 | AC_SUBST(XMMS_VISUALIZATION_PLUGIN_DIR) | ||
145 | AC_SUBST(XMMS_INPUT_PLUGIN_DIR) | ||
146 | AC_SUBST(XMMS_OUTPUT_PLUGIN_DIR) | ||
147 | AC_SUBST(XMMS_GENERAL_PLUGIN_DIR) | ||
148 | AC_SUBST(XMMS_EFFECT_PLUGIN_DIR) | ||
149 | ]) | ||
diff --git a/meta/recipes-multimedia/flac/flac_1.2.1.bb b/meta/recipes-multimedia/flac/flac_1.2.1.bb new file mode 100644 index 0000000000..30a8cfb933 --- /dev/null +++ b/meta/recipes-multimedia/flac/flac_1.2.1.bb | |||
@@ -0,0 +1,49 @@ | |||
1 | DESCRIPTION = "FLAC stands for Free Lossless Audio Codec, an audio format similar to MP3, but lossless." | ||
2 | HOMEPAGE = "http://flac.sourceforge.net/" | ||
3 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=13478&atid=113478" | ||
4 | SECTION = "libs" | ||
5 | LICENSE = "FDLv1.2 & GPLv2+ & LGPLv2.1+ & BSD" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING.FDL;md5=ad1419ecc56e060eccf8184a87c4285f \ | ||
7 | file://src/Makefile.am;beginline=1;endline=16;md5=8dee151a56a3122f064a9dce771db37d \ | ||
8 | file://COPYING.GPL;md5=079b27cd65c86dbc1b6997ffde902735 \ | ||
9 | file://src/flac/main.c;beginline=1;endline=17;md5=756c4234516e4266ea45ee7bbbd798cf \ | ||
10 | file://COPYING.LGPL;md5=fbc093901857fcd118f065f900982c24 \ | ||
11 | file://src/plugin_common/all.h;beginline=1;endline=17;md5=b2e7960da6b43e4eccabf999bcf7f3a9 \ | ||
12 | file://COPYING.Xiph;md5=df8975c0225f83ed7b567587ed953b83 \ | ||
13 | file://include/FLAC/all.h;beginline=64;endline=69;md5=64474f2b22e9e77b28d8b8b25c983a48" | ||
14 | DEPENDS = "libogg" | ||
15 | |||
16 | PR = "r0" | ||
17 | |||
18 | SRC_URI = "${SOURCEFORGE_MIRROR}/flac/flac-${PV}.tar.gz \ | ||
19 | file://disable-xmms-plugin.patch;patch=1 \ | ||
20 | file://flac-gcc43-fixes.patch;patch=1 \ | ||
21 | file://xmms.m4" | ||
22 | |||
23 | S = "${WORKDIR}/flac-${PV}" | ||
24 | |||
25 | inherit autotools | ||
26 | |||
27 | EXTRA_OECONF = "--disable-oggtest --disable-id3libtest \ | ||
28 | --with-ogg-libraries=${STAGING_LIBDIR} \ | ||
29 | --with-ogg-includes=${STAGING_INCDIR} \ | ||
30 | --without-xmms-prefix \ | ||
31 | --without-xmms-exec-prefix \ | ||
32 | --without-libiconv-prefix \ | ||
33 | --without-id3lib" | ||
34 | |||
35 | PACKAGES += "libflac libflac++ liboggflac liboggflac++" | ||
36 | FILES_${PN} = "${bindir}/*" | ||
37 | FILES_libflac = "${libdir}/libFLAC.so.*" | ||
38 | FILES_libflac++ = "${libdir}/libFLAC++.so.*" | ||
39 | FILES_liboggflac = "${libdir}/libOggFLAC.so.*" | ||
40 | FILES_liboggflac++ = "${libdir}/libOggFLAC++.so.*" | ||
41 | |||
42 | do_configure () { | ||
43 | install -d ${S}/m4 | ||
44 | install -m 0644 ${WORKDIR}/xmms.m4 ${S}/m4/ | ||
45 | autotools_do_configure | ||
46 | # removes '-read-only-relocs' which is enabled for PowerPC builds. | ||
47 | # It makes the build fail, other archs are not affected. Fixes #1775. | ||
48 | sed -i 's/-Wl,-read_only_relocs,warning//g' src/libFLAC/Makefile | ||
49 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/configure_fix.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/configure_fix.patch new file mode 100644 index 0000000000..15f56492f7 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/configure_fix.patch | |||
@@ -0,0 +1,13 @@ | |||
1 | Index: gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/configure.ac | ||
2 | =================================================================== | ||
3 | --- gst-ffmpeg-0.10.1.orig/gst-libs/ext/ffmpeg/configure.ac 2008-03-19 23:21:04.000000000 +0000 | ||
4 | +++ gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/configure.ac 2008-03-19 23:21:31.000000000 +0000 | ||
5 | @@ -775,7 +775,7 @@ | ||
6 | |||
7 | dnl Check for SDL, used in ffplay, and ffserver | ||
8 | AC_FF_ALLOW_DISABLE(CONFIG_FFPLAY, ffplay, ffmpeg media player,[ | ||
9 | - AM_PATH_SDL(, CONFIG_FFPLAY=yes, CONFIG_FPFLAY=no) | ||
10 | + CONFIG_FPFLAY=no | ||
11 | ]) | ||
12 | |||
13 | dnl media server or not? | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/no_beos.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/no_beos.patch new file mode 100644 index 0000000000..9ffcafff73 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.1/no_beos.patch | |||
@@ -0,0 +1,55 @@ | |||
1 | The AC_LANG sections upset libtool 2.2.2, easiest fix is to remove them. | ||
2 | Using a .cpp file in a Makefile means configure.ac must use AC_PROG_CXX | ||
3 | so patch out the section from the makefile too. | ||
4 | |||
5 | RP - 14/4/08 | ||
6 | |||
7 | Index: gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/configure.ac | ||
8 | =================================================================== | ||
9 | --- gst-ffmpeg-0.10.1.orig/gst-libs/ext/ffmpeg/configure.ac 2008-04-14 23:55:25.000000000 +0100 | ||
10 | +++ gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/configure.ac 2008-04-14 23:56:18.000000000 +0100 | ||
11 | @@ -742,26 +742,7 @@ | ||
12 | |||
13 | dnl Beos Audio | ||
14 | AC_FF_ALLOW_DISABLE(CONFIG_AUDIO_BEOS, audio-beos, BeOS audio support,[ | ||
15 | - if test x$TARGET_OS = xbeos; then | ||
16 | - AC_LANG_CPLUSPLUS | ||
17 | - AC_CHECK_HEADER(SoundPlayer.h,[ | ||
18 | - OLD_CXXFLAGS="$CXXFLAGS" | ||
19 | - CXXFLAGS="$CXXFLAGS -lbe -lmedia" | ||
20 | - AC_MSG_CHECKING(For BeOS audio libraries) | ||
21 | - AC_TRY_COMPILE([ | ||
22 | -#include <Application.h> | ||
23 | -#include <SoundPlayer.h> | ||
24 | - ],[ | ||
25 | - BSoundPlayer *p = new BSoundPlayer(NULL,NULL,NULL); | ||
26 | - ],[ CONFIG_AUDIO_BEOS=yes && AC_MSG_RESULT(yes) ],[ | ||
27 | - CONFIG_AUDIO_BEOS=no && AC_MSG_RESULT(no) | ||
28 | - ]) | ||
29 | - CXXFLAGS="$OLD_CXXFLAGS" | ||
30 | - ], CONFIG_AUDIO_BEOS=no) | ||
31 | - AC_LANG_C | ||
32 | - else | ||
33 | CONFIG_AUDIO_BEOS=no | ||
34 | - fi | ||
35 | ]) | ||
36 | |||
37 | dnl Check for freetype2, used in vook/libdrawtext.so | ||
38 | Index: gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/libavformat/Makefile.am | ||
39 | =================================================================== | ||
40 | --- gst-ffmpeg-0.10.1.orig/gst-libs/ext/ffmpeg/libavformat/Makefile.am 2008-04-14 23:58:44.000000000 +0100 | ||
41 | +++ gst-ffmpeg-0.10.1/gst-libs/ext/ffmpeg/libavformat/Makefile.am 2008-04-14 23:58:55.000000000 +0100 | ||
42 | @@ -24,13 +24,6 @@ | ||
43 | audiooss_SRC = audio.c | ||
44 | endif | ||
45 | |||
46 | -if CONFIG_AUDIO_BEOS | ||
47 | -audiobeos_SRC = beosaudio.cpp | ||
48 | -audiobeos_LIBS = \ | ||
49 | - -lbe \ | ||
50 | - -lmedia | ||
51 | -endif | ||
52 | - | ||
53 | if CONFIG_VIDEO4LINUX | ||
54 | v4l_SRC = grab.c v4l2.c | ||
55 | endif | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.1.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.1.bb new file mode 100644 index 0000000000..65d60f9cea --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.1.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | DESCRIPTION = "FFmpeg-based GStreamer plug-in" | ||
2 | SECTION = "multimedia" | ||
3 | PRIORITY = "optional" | ||
4 | LICENSE = "LGPL" | ||
5 | HOMEPAGE = "http://www.gstreamer.net/" | ||
6 | DEPENDS = "gstreamer zlib gst-plugins-base" | ||
7 | PR = "r4" | ||
8 | |||
9 | inherit autotools pkgconfig | ||
10 | |||
11 | SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2 \ | ||
12 | file://no_beos.patch;patch=1 \ | ||
13 | file://configure_fix.patch;patch=1" | ||
14 | |||
15 | FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" | ||
16 | FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" | ||
17 | FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" | ||
18 | |||
19 | EXTRA_OECONF = "--disable-sdltest --disable-ffplay --disable-freetypetest \ | ||
20 | --disable-vorbis --disable-vorbistest --disable-encoders \ | ||
21 | --disable-v4l --disable-audio-oss --disable-dv1394 \ | ||
22 | --disable-vhook --disable-ffmpeg --disable-ffserver \ | ||
23 | --enable-pp --disable-decoder-vorbis --with-pic=no" | ||
24 | |||
25 | # We do this because the install program is called with -s which causes it to | ||
26 | # call "strip" and it then mangles cross compiled stuff.. | ||
27 | PATH_prepend="${STAGING_DIR_NATIVE}${prefix_native}/${TARGET_SYS}/bin:" | ||
28 | |||
29 | # Hack to get STAGING_LIBDIR into the linker path when building ffmpeg | ||
30 | CC = "${CCACHE} ${HOST_PREFIX}gcc -L${STAGING_LIBDIR}" | ||
31 | |||
32 | acpaths = "-I ${S}/common/m4" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3/configure_fix.patch b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3/configure_fix.patch new file mode 100644 index 0000000000..d8b213b3e9 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3/configure_fix.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | Index: gst-fluendo-mp3-0.10.2/configure.ac | ||
2 | =================================================================== | ||
3 | --- gst-fluendo-mp3-0.10.2.orig/configure.ac 2008-03-19 23:00:15.000000000 +0000 | ||
4 | +++ gst-fluendo-mp3-0.10.2/configure.ac 2008-03-19 23:00:31.000000000 +0000 | ||
5 | @@ -19,10 +19,9 @@ | ||
6 | AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4") | ||
7 | |||
8 | dnl check for tools | ||
9 | -AS_LIBTOOL_TAGS | ||
10 | AM_PROG_LIBTOOL | ||
11 | dnl AC_PROG_CC | ||
12 | -dnl AC_PROG_LIBTOOL | ||
13 | +AC_PROG_LIBTOOL | ||
14 | |||
15 | dnl decide on error flags | ||
16 | AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no") | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.2.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.2.bb new file mode 100644 index 0000000000..9e33b30824 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.2.bb | |||
@@ -0,0 +1,9 @@ | |||
1 | require gst-fluendo.inc | ||
2 | |||
3 | acpaths = "-I ${S}/common/m4 -I ${S}/m4" | ||
4 | |||
5 | SRC_URI += "file://configure_fix.patch;patch=1" | ||
6 | |||
7 | PR = "r1" | ||
8 | |||
9 | DESCRIPTION = "Fluendo closed-format mp3 GStreamer plug-in" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.7.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.7.bb new file mode 100644 index 0000000000..81645accd6 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.7.bb | |||
@@ -0,0 +1,2 @@ | |||
1 | require gst-fluendo.inc | ||
2 | DESCRIPTION = "Fluendo closed-format mpeg video GStreamer plug-in" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc new file mode 100644 index 0000000000..76b76c2b02 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc | |||
@@ -0,0 +1,20 @@ | |||
1 | DESCRIPTION = "Fluendo closed-format GStreamer plug-in" | ||
2 | SECTION = "multimedia" | ||
3 | PRIORITY = "optional" | ||
4 | LICENSE = "MIT" | ||
5 | HOMEPAGE = "http://www.fluendo.com/resources/source-plugins.php" | ||
6 | DEPENDS = "gstreamer zlib" | ||
7 | |||
8 | inherit autotools pkgconfig | ||
9 | |||
10 | SRC_URI = "http://core.fluendo.com/gstreamer/src/${PN}/${PN}-${PV}.tar.bz2" | ||
11 | |||
12 | FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" | ||
13 | FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" | ||
14 | FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" | ||
15 | |||
16 | EXTRA_OECONF = "--disable-debug --disable-valgrind" | ||
17 | |||
18 | # Hack to get STAGING_LIBDIR into the linker path when building | ||
19 | CC = "${CCACHE} ${HOST_PREFIX}gcc -L${STAGING_LIBDIR}" | ||
20 | |||
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..36f30e0619 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb | |||
@@ -0,0 +1,51 @@ | |||
1 | DESCRIPTION = "Gstreamer package groups" | ||
2 | LICENSE = "MIT" | ||
3 | DEPENDS = "gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly" | ||
4 | PR = "r5" | ||
5 | |||
6 | PACKAGES = "\ | ||
7 | gst-meta-base \ | ||
8 | gst-meta-audio \ | ||
9 | gst-meta-debug \ | ||
10 | gst-meta-video" | ||
11 | |||
12 | ALLOW_EMPTY = "1" | ||
13 | |||
14 | RDEPENDS_gst-meta-base = "\ | ||
15 | gstreamer \ | ||
16 | gst-plugins-base-playbin \ | ||
17 | gst-plugins-base-decodebin \ | ||
18 | gst-plugins-base-gnomevfs \ | ||
19 | gst-plugins-base-alsa \ | ||
20 | gst-plugins-base-volume \ | ||
21 | gst-plugins-base-ximagesink \ | ||
22 | gst-plugins-base-audioconvert \ | ||
23 | gst-plugins-base-audioresample \ | ||
24 | gst-plugins-base-typefindfunctions \ | ||
25 | gst-plugins-base-videoscale \ | ||
26 | gst-plugins-base-ffmpegcolorspace \ | ||
27 | gst-plugins-good-autodetect" | ||
28 | |||
29 | |||
30 | RDEPENDS_gst-meta-audio = "\ | ||
31 | gst-meta-base \ | ||
32 | gst-plugins-base-vorbis \ | ||
33 | gst-plugins-base-ogg \ | ||
34 | gst-plugins-ugly-mad" | ||
35 | |||
36 | |||
37 | RDEPENDS_gst-meta-debug = "\ | ||
38 | gst-meta-base \ | ||
39 | gst-plugins-good-debug \ | ||
40 | gst-plugins-base-audiotestsrc \ | ||
41 | gst-plugins-base-videotestsrc" | ||
42 | |||
43 | |||
44 | RDEPENDS_gst-meta-video = "\ | ||
45 | gst-meta-base \ | ||
46 | gst-plugins-good-avi \ | ||
47 | gst-plugins-good-matroska \ | ||
48 | gst-plugins-ugly-mpeg2dec" | ||
49 | |||
50 | RRECOMMENDS_gst-meta-video = "\ | ||
51 | gst-meta-audio" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.0.2.bb b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.0.2.bb new file mode 100644 index 0000000000..825cccb83c --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.0.2.bb | |||
@@ -0,0 +1,18 @@ | |||
1 | DEPENDS = "gstreamer" | ||
2 | RDEPENDS = "libomxil" | ||
3 | |||
4 | SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/pre/gst-openmax-0.10.0.2.tar.bz2" | ||
5 | |||
6 | inherit autotools | ||
7 | |||
8 | EXTRA_OECONF += "--disable-valgrind" | ||
9 | |||
10 | do_configure_prepend() { | ||
11 | |||
12 | install -d ${S}/m4/ | ||
13 | install -m 0644 ${S}/common/m4/*.m4 ${S}/m4/ | ||
14 | } | ||
15 | |||
16 | FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so" | ||
17 | FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.*a" | ||
18 | FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.19.bb new file mode 100644 index 0000000000..8f1821a7be --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.19.bb | |||
@@ -0,0 +1,24 @@ | |||
1 | require gst-plugins.inc | ||
2 | |||
3 | LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " | ||
4 | LIC_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/qtmux/gstqtmuxmap.h;beginline=1;endline=19;md5=2da8f56a44697c1527c5a4bcf8d5d69b \ | ||
8 | file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" | ||
9 | |||
10 | DEPENDS += "gst-plugins-base libmusicbrainz tremor" | ||
11 | |||
12 | PR = "r1" | ||
13 | |||
14 | inherit gettext | ||
15 | |||
16 | EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disable-cdaudio \ | ||
17 | --with-plugins=musicbrainz,wavpack,ivorbis, --disable-vdpau --disable-apexsink" | ||
18 | |||
19 | ARM_INSTRUCTION_SET = "arm" | ||
20 | |||
21 | do_configure_prepend() { | ||
22 | # This m4 file contains nastiness which conflicts with libtool 2.2.2 | ||
23 | rm ${S}/m4/lib-link.m4 || true | ||
24 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.29.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.29.bb new file mode 100644 index 0000000000..bfbe28108d --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.29.bb | |||
@@ -0,0 +1,22 @@ | |||
1 | require gst-plugins.inc | ||
2 | |||
3 | LICENSE = "GPLv2+ & LGPLv2+" | ||
4 | LIC_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 | |||
9 | DEPENDS += "virtual/libx11 alsa-lib freetype gnome-vfs liboil libogg libvorbis libxv" | ||
10 | RDEPENDS += "gnome-vfs-plugin-file gnome-vfs-plugin-http gnome-vfs-plugin-ftp \ | ||
11 | gnome-vfs-plugin-sftp" | ||
12 | |||
13 | PR = "r0" | ||
14 | |||
15 | inherit gettext | ||
16 | |||
17 | EXTRA_OECONF += "--disable-freetypetest --disable-pango --disable-theora" | ||
18 | |||
19 | do_configure_prepend() { | ||
20 | # This m4 file contains nastiness which conflicts with libtool 2.2.2 | ||
21 | rm -f ${S}/m4/lib-link.m4 | ||
22 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.23.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.23.bb new file mode 100644 index 0000000000..528dcbf540 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.23.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | require gst-plugins.inc | ||
2 | |||
3 | LICENSE = "GPLv2+ & LGPLv2.1+" | ||
4 | LIC_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 | |||
8 | DEPENDS += "gst-plugins-base gconf cairo jpeg libpng gtk+ zlib libid3tag flac \ | ||
9 | speex" | ||
10 | PR = "r0" | ||
11 | |||
12 | inherit gettext | ||
13 | |||
14 | EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --without-check" | ||
15 | |||
16 | do_configure_prepend() { | ||
17 | # This m4 file contains nastiness which conflicts with libtool 2.2.2 | ||
18 | rm ${S}/m4/lib-link.m4 || true | ||
19 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.15.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.15.bb new file mode 100644 index 0000000000..7dda685002 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.15.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | require gst-plugins.inc | ||
2 | |||
3 | LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ | ||
5 | file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \ | ||
6 | file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \ | ||
7 | file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9" | ||
8 | |||
9 | DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame" | ||
10 | PR = "r0" | ||
11 | |||
12 | inherit gettext | ||
13 | |||
14 | EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia" | ||
15 | |||
16 | do_configure_prepend() { | ||
17 | # This m4 file contains nastiness which conflicts with libtool 2.2.2 | ||
18 | rm ${S}/m4/lib-link.m4 || true | ||
19 | } | ||
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc new file mode 100644 index 0000000000..f7f0a2d7c5 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc | |||
@@ -0,0 +1,33 @@ | |||
1 | DESCRIPTION = "Plugins for GStreamer" | ||
2 | HOMEPAGE = "http://gstreamer.freedesktop.org/" | ||
3 | BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" | ||
4 | SECTION = "multimedia" | ||
5 | PRIORITY = "optional" | ||
6 | DEPENDS = "gstreamer" | ||
7 | |||
8 | inherit autotools pkgconfig | ||
9 | |||
10 | SRC_URI = "http://gstreamer.freedesktop.org/src/${PN}/${PN}-${PV}.tar.bz2" | ||
11 | |||
12 | EXTRA_OECONF = "--disable-valgrind --disable-debug --disable-examples " | ||
13 | |||
14 | acpaths = "-I ${S}/common/m4 -I ${S}/m4" | ||
15 | |||
16 | LIBV = "0.10" | ||
17 | #FILES_${PN} += "${libdir}/gstreamer-${LIBV}/*.so" | ||
18 | #FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/*.la ${libdir}/gstreamer-${LIBV}/*.a" | ||
19 | FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug" | ||
20 | |||
21 | PACKAGES_DYNAMIC = "${PN}-*" | ||
22 | |||
23 | python populate_packages_prepend () { | ||
24 | gst_libdir = bb.data.expand('${libdir}/gstreamer-${LIBV}', d) | ||
25 | postinst = bb.data.getVar('plugin_postinst', d, 1) | ||
26 | |||
27 | # Can't package separate debug packages yet | ||
28 | # do_split_packages(d, gst_libdir, '\.debug/libgst(.*)\.so$', bb.data.expand('${PN}-%s-dbg', d), 'GStreamer plugin for %s (with debugging symbols)', recursive=True, extra_depends=bb.data.expand('${PN}-dbg', d), match_path=True) | ||
29 | do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', bb.data.expand('${PN}-%s', d), 'GStreamer plugin for %s', postinst=postinst, extra_depends=bb.data.expand('${PN}',d)) | ||
30 | do_split_packages(d, gst_libdir, 'libgst(.*)\.l?a$', bb.data.expand('${PN}-%s-dev', d), 'GStreamer plugin for %s (development files)', extra_depends=bb.data.expand('${PN}-dev',d)) | ||
31 | } | ||
32 | |||
33 | ALLOW_EMPTY = "1" | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/check_fix.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/check_fix.patch new file mode 100644 index 0000000000..72c3f6407e --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/check_fix.patch | |||
@@ -0,0 +1,17 @@ | |||
1 | # gstreamer: Fix a problem with configure if check has already been built | ||
2 | # Richard Purdie <rpurdie@linux.intel.com> | ||
3 | |||
4 | diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac | ||
5 | --- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 | ||
6 | +++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 | ||
7 | @@ -543,8 +543,10 @@ | ||
8 | *) BUILD_CHECK=yes ;; | ||
9 | esac | ||
10 | ]) | ||
11 | + | ||
12 | dnl bit of a misnomer, but keep the conditional named like this so we don't | ||
13 | dnl have to change too much elsewhere | ||
14 | +HAVE_CHECK=no | ||
15 | AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") | ||
16 | |||
17 | dnl configure the desired buffer alignment | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gst-inspect-check-error.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gst-inspect-check-error.patch new file mode 100644 index 0000000000..4ca1dbe6ab --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gst-inspect-check-error.patch | |||
@@ -0,0 +1,14 @@ | |||
1 | # Fix crash with gst-inspect | ||
2 | # Chris Lord <chris@openedhand.com> | ||
3 | |||
4 | --- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 | ||
5 | +++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 | ||
6 | @@ -1123,7 +1123,7 @@ | ||
7 | g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); | ||
8 | g_option_context_add_group (ctx, gst_init_get_option_group ()); | ||
9 | if (!g_option_context_parse (ctx, &argc, &argv, &err)) { | ||
10 | - g_print ("Error initializing: %s\n", err->message); | ||
11 | + g_print ("Error initializing: %s\n", err ? err->message : "(null)"); | ||
12 | exit (1); | ||
13 | } | ||
14 | g_option_context_free (ctx); | ||
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gstregistrybinary.c b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gstregistrybinary.c new file mode 100644 index 0000000000..c1f3e71af6 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/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 | */ | ||
30 | inline static gboolean | ||
31 | gst_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 | */ | ||
45 | static gboolean | ||
46 | gst_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 | */ | ||
92 | inline static gboolean | ||
93 | gst_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 | */ | ||
108 | static gchar * | ||
109 | gst_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 | */ | ||
139 | static gboolean | ||
140 | gst_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 | */ | ||
200 | gboolean | ||
201 | gst_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 | |||
304 | static GstPluginFeature* | ||
305 | gst_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 | */ | ||
360 | static unsigned long | ||
361 | gst_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 | */ | ||
432 | gboolean | ||
433 | gst_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.29/gstregistrybinary.h b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/gstregistrybinary.h new file mode 100644 index 0000000000..2ef24d765d --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.29/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 | |||
66 | typedef 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 */ | ||
74 | typedef 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 | |||
99 | typedef 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 | |||
129 | typedef 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 | |||
150 | typedef 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) | ||
162 | typedef struct _GstBinaryInterface | ||
163 | { | ||
164 | char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; | ||
165 | unsigned long size; | ||
166 | } GstBinaryInterface; | ||
167 | |||
168 | /* Uri Type */ | ||
169 | typedef struct _GstBinaryUriType | ||
170 | { | ||
171 | GstURIType type; | ||
172 | unsigned long nuriprotocols; | ||
173 | } GstBinaryUriType; | ||
174 | |||
175 | /* | ||
176 | ** Function prototypes | ||
177 | */ | ||
178 | |||
179 | /* Local prototypes */ | ||
180 | inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); | ||
181 | inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); | ||
182 | static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); | ||
183 | static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); | ||
184 | static gchar *gst_registry_binary_check_magic(gchar *in); | ||
185 | static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); | ||
186 | static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); | ||
187 | |||
188 | /* Exportable */ | ||
189 | gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); | ||
190 | gboolean 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/gstreamer_0.10.29.bb b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.29.bb new file mode 100644 index 0000000000..38e28fa534 --- /dev/null +++ b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.29.bb | |||
@@ -0,0 +1,30 @@ | |||
1 | DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ | ||
2 | It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." | ||
3 | HOMEPAGE = "http://gstreamer.freedesktop.org/" | ||
4 | BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" | ||
5 | SECTION = "multimedia" | ||
6 | PRIORITY = "optional" | ||
7 | LICENSE = "LGPLv2+" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ | ||
9 | file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" | ||
10 | DEPENDS = "glib-2.0 gettext libxml2 bison-native flex-native" | ||
11 | |||
12 | PR = "r0" | ||
13 | |||
14 | SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ | ||
15 | file://check_fix.patch;patch=1 \ | ||
16 | file://gst-inspect-check-error.patch;patch=1" | ||
17 | |||
18 | inherit autotools pkgconfig | ||
19 | |||
20 | EXTRA_OECONF = "--disable-docs-build --disable-dependency-tracking --with-check=no --disable-examples --disable-tests --disable-valgrind --disable-debug" | ||
21 | |||
22 | #do_compile_prepend () { | ||
23 | # mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ | ||
24 | #} | ||
25 | |||
26 | PARALLEL_MAKE = "" | ||
27 | |||
28 | FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" | ||
29 | FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" | ||
30 | FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/" | ||
diff --git a/meta/recipes-multimedia/lame/lame-3.98.4/no-gtk1.patch b/meta/recipes-multimedia/lame/lame-3.98.4/no-gtk1.patch new file mode 100644 index 0000000000..8669d3b43b --- /dev/null +++ b/meta/recipes-multimedia/lame/lame-3.98.4/no-gtk1.patch | |||
@@ -0,0 +1,18 @@ | |||
1 | # Acquired from OpenEmbedded | ||
2 | |||
3 | --- lame-3.96.1/configure.in~no-gtk1.patch 2004-07-25 15:52:12.000000000 +0100 | ||
4 | +++ lame-3.96.1/configure.in 2004-09-10 15:54:39.000000000 +0100 | ||
5 | @@ -363,7 +363,12 @@ | ||
6 | |||
7 | dnl configure use of features | ||
8 | |||
9 | -AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no") | ||
10 | +#AM_PATH_GTK(1.2.0, HAVE_GTK="yes", HAVE_GTK="no") | ||
11 | +HAVE_GTK="no" | ||
12 | +GTK_CFLAGS="" | ||
13 | +GTK_LIBS="" | ||
14 | +AC_SUBST(GTK_CFLAGS) | ||
15 | +AC_SUBST(GTK_LIBS) | ||
16 | |||
17 | dnl ElectricFence malloc debugging | ||
18 | AC_MSG_CHECKING(use of ElectricFence malloc debugging) | ||
diff --git a/meta/recipes-multimedia/lame/lame_3.98.4.bb b/meta/recipes-multimedia/lame/lame_3.98.4.bb new file mode 100644 index 0000000000..316933495c --- /dev/null +++ b/meta/recipes-multimedia/lame/lame_3.98.4.bb | |||
@@ -0,0 +1,28 @@ | |||
1 | DESCRIPTION = "LAME is an educational tool to be used for learning about MP3 encoding." | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/lame/files/lame/" | ||
3 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=290&atid=100290" | ||
4 | SECTION = "console/utils" | ||
5 | LICENSE = "LGPLv2+" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9 \ | ||
7 | file://include/lame.h;beginline=1;endline=20;md5=d3ff8cae3e79c4e9da7169c7928dc3a2" | ||
8 | PR = "r0" | ||
9 | |||
10 | SRC_URI = "${SOURCEFORGE_MIRROR}/lame/lame-${PV}.tar.gz \ | ||
11 | file://no-gtk1.patch;patch=1" | ||
12 | |||
13 | inherit autotools | ||
14 | |||
15 | PACKAGES += "libmp3lame libmp3lame-dev" | ||
16 | FILES_${PN} = "${bindir}/lame" | ||
17 | FILES_libmp3lame = "${libdir}/libmp3lame.so.*" | ||
18 | FILES_libmp3lame-dev = "${includedir} ${libdir}/*" | ||
19 | FILES_${PN}-dev = "" | ||
20 | |||
21 | do_configure() { | ||
22 | # no autoreconf please | ||
23 | aclocal | ||
24 | autoconf | ||
25 | libtoolize --force | ||
26 | gnu-configize --force | ||
27 | oe_runconf | ||
28 | } | ||
diff --git a/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch new file mode 100644 index 0000000000..a86c5a8e37 --- /dev/null +++ b/meta/recipes-multimedia/liba52/liba52/buildcleanup.patch | |||
@@ -0,0 +1,87 @@ | |||
1 | It makes much more sense to control our own CFLAGS and avoiding fPIC breaks | ||
2 | some arches too. Assume we know what we're doing and remove all the messing | ||
3 | around. | ||
4 | |||
5 | RP 23/2/10 | ||
6 | |||
7 | Index: a52dec-0.7.4/configure.in | ||
8 | =================================================================== | ||
9 | --- a52dec-0.7.4.orig/configure.in 2010-02-23 14:51:50.000000000 +0000 | ||
10 | +++ a52dec-0.7.4/configure.in 2010-02-23 14:52:36.000000000 +0000 | ||
11 | @@ -14,62 +14,6 @@ | ||
12 | AC_PROG_CC | ||
13 | AC_PROG_GCC_TRADITIONAL | ||
14 | |||
15 | -if test x"$GCC" = x"yes"; then | ||
16 | - | ||
17 | - dnl GCC-specific flags - try to optimize them sometime | ||
18 | - dnl -Wall -Werror moved to the end to not disturb the configure script | ||
19 | - | ||
20 | - dnl -O3 | ||
21 | - changequote(<<,>>) | ||
22 | - OPT_CFLAGS=`echo "$CFLAGS"|sed "s/-O[0-9]*//g"` | ||
23 | - changequote([,]) | ||
24 | - OPT_CFLAGS="$OPT_CFLAGS -O3" | ||
25 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]) | ||
26 | - | ||
27 | - dnl -fomit-frame-pointer | ||
28 | - OPT_CFLAGS="$CFLAGS -fomit-frame-pointer" | ||
29 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]) | ||
30 | - | ||
31 | - dnl arch-specific flags | ||
32 | - case "$host" in | ||
33 | - i?86-* | k?-*) | ||
34 | - case "$host" in | ||
35 | - i386-*) OPT_CFLAGS="$CFLAGS -mcpu=i386";; | ||
36 | - i486-*) OPT_CFLAGS="$CFLAGS -mcpu=i486";; | ||
37 | - i586-*) OPT_CFLAGS="$CFLAGS -mcpu=pentium";; | ||
38 | - i686-*) OPT_CFLAGS="$CFLAGS -mcpu=pentiumpro";; | ||
39 | - k6-*) OPT_CFLAGS="$CFLAGS -mcpu=k6";; | ||
40 | - esac | ||
41 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
42 | - sparc-* | sparc64-*) | ||
43 | - OPT_CFLAGS="$CFLAGS -mtune=ultrasparc" | ||
44 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
45 | - mips-sgi-irix6.*) dnl do we need to be that specific ? | ||
46 | - OPT_CFLAGS="$CFLAGS -mabi=64" | ||
47 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
48 | - esac | ||
49 | -elif test x"$CC" = x"tcc" -a x"`$CC -version 2>&1 | grep TenDRA`" != x""; then | ||
50 | - dnl TenDRA portability checking compiler | ||
51 | - TENDRA=yes | ||
52 | - CFLAGS="-Xp -Yansi -f`pwd`/include/tendra.h -DELIDE_CODE" | ||
53 | - enable_mlib=no | ||
54 | - enable_oss=no | ||
55 | - enable_solaris_audio=no | ||
56 | -elif test x"$CC" = x"icc" -a x"`$CC -V 2>&1 | grep Intel`" != x""; then | ||
57 | - dnl Intel C++ compiler | ||
58 | - CFLAGS="-g -O3 -unroll -ip" | ||
59 | -else | ||
60 | - dnl non-gcc flags - we probably need exact configuration triplets here. | ||
61 | - case "$host" in | ||
62 | - mips-sgi-irix6.*) | ||
63 | - OPT_CFLAGS="$CFLAGS -64" | ||
64 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
65 | - sparc-sun-solaris*) | ||
66 | - OPT_CFLAGS="$CFLAGS -xCC -fast -xO5" | ||
67 | - AC_TRY_CFLAGS([$OPT_CFLAGS],[CFLAGS=$OPT_CFLAGS]);; | ||
68 | - esac | ||
69 | -fi | ||
70 | - | ||
71 | dnl Checks for libtool - this must be done after we set cflags | ||
72 | AC_DISABLE_SHARED | ||
73 | AC_LIBTOOL_WIN32_DLL | ||
74 | Index: a52dec-0.7.4/liba52/configure.incl | ||
75 | =================================================================== | ||
76 | --- a52dec-0.7.4.orig/liba52/configure.incl 2010-02-23 14:51:44.000000000 +0000 | ||
77 | +++ a52dec-0.7.4/liba52/configure.incl 2010-02-23 14:51:59.000000000 +0000 | ||
78 | @@ -1,9 +1,6 @@ | ||
79 | AC_SUBST([LIBA52_CFLAGS]) | ||
80 | AC_SUBST([LIBA52_LIBS]) | ||
81 | |||
82 | -dnl avoid -fPIC when possible | ||
83 | -LIBA52_CFLAGS="$LIBA52_CFLAGS -prefer-non-pic" | ||
84 | - | ||
85 | AC_ARG_ENABLE([double], | ||
86 | [ --enable-double use double-precision samples]) | ||
87 | 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..884b861a91 --- /dev/null +++ b/meta/recipes-multimedia/liba52/liba52_0.7.4.bb | |||
@@ -0,0 +1,25 @@ | |||
1 | DESCRIPTION = "Library for reading some sort of media format." | ||
2 | HOMEPAGE = "http://liba52.sourceforge.net/" | ||
3 | LICENSE = "GPLv2+" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ | ||
5 | file://include/a52.h;beginline=1;endline=12;md5=81152ceb3562bf20a60d1b6018175dd1" | ||
6 | SECTION = "libs" | ||
7 | PRIORITY = "optional" | ||
8 | PR = "r2" | ||
9 | |||
10 | inherit autotools | ||
11 | |||
12 | SRC_URI = "http://liba52.sourceforge.net/files/a52dec-${PV}.tar.gz \ | ||
13 | file://buildcleanup.patch;patch=1" | ||
14 | S = "${WORKDIR}/a52dec-${PV}" | ||
15 | |||
16 | EXTRA_OECONF = " --enable-shared " | ||
17 | |||
18 | PACKAGES =+ "a52dec a52dec-dbg a52dec-doc" | ||
19 | |||
20 | FILES_${PN} = " ${libdir}/liba52.so.0 ${libdir}/liba52.so.0.0.0 " | ||
21 | FILES_${PN}-dev = " ${includedir}/a52dec/*.h ${libdir}/liba52.so ${libdir}/liba52.la ${libdir}/liba52.a " | ||
22 | FILES_${PN}-dbg = " ${libdir}/.debug/*" | ||
23 | FILES_a52dec = " ${bindir}/* " | ||
24 | FILES_a52dec-dbg = " ${bindir}/.debug/* " | ||
25 | FILES_a52dec-doc = " ${mandir}/man1/* " | ||
diff --git a/meta/recipes-multimedia/libexif/libexif_0.6.16.bb b/meta/recipes-multimedia/libexif/libexif_0.6.16.bb new file mode 100644 index 0000000000..e3b5c331a8 --- /dev/null +++ b/meta/recipes-multimedia/libexif/libexif_0.6.16.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | DESCRIPTION = "Library to read the extended image information (EXIF) from JPEG pictures" | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/libexif" | ||
3 | SECTION = "libs" | ||
4 | LICENSE = "LGPL" | ||
5 | DEPENDS = "gettext" | ||
6 | |||
7 | SRC_URI = "${SOURCEFORGE_MIRROR}/libexif/libexif-${PV}.tar.bz2" | ||
8 | |||
9 | inherit autotools | ||
10 | |||
11 | do_configure_append() { | ||
12 | sed -i s:doc\ binary:binary:g Makefile | ||
13 | } | ||
14 | |||
15 | AUTOTOOLS_STAGE_PKGCONFIG = "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..07a8f6ec4d --- /dev/null +++ b/meta/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | Index: libid3tag-0.15.1b/Makefile.am | ||
2 | =================================================================== | ||
3 | --- libid3tag-0.15.1b.orig/Makefile.am 2009-07-29 09:29:20.000000000 +0100 | ||
4 | +++ libid3tag-0.15.1b/Makefile.am 2009-07-29 09:29:47.000000000 +0100 | ||
5 | @@ -27,6 +27,9 @@ | ||
6 | lib_LTLIBRARIES = libid3tag.la | ||
7 | include_HEADERS = id3tag.h | ||
8 | |||
9 | +pkgconfigdir = $(libdir)/pkgconfig | ||
10 | +pkgconfig_DATA = id3tag.pc | ||
11 | + | ||
12 | ## From the libtool documentation on library versioning: | ||
13 | ## | ||
14 | ## CURRENT | ||
15 | Index: libid3tag-0.15.1b/configure.ac | ||
16 | =================================================================== | ||
17 | --- libid3tag-0.15.1b.orig/configure.ac 2009-07-29 09:27:15.000000000 +0100 | ||
18 | +++ libid3tag-0.15.1b/configure.ac 2009-07-29 09:27:45.000000000 +0100 | ||
19 | @@ -201,5 +201,5 @@ | ||
20 | dnl AC_SUBST(LTLIBOBJS) | ||
21 | |||
22 | AC_CONFIG_FILES([Makefile msvc++/Makefile \ | ||
23 | - libid3tag.list]) | ||
24 | + libid3tag.list id3tag.pc]) | ||
25 | AC_OUTPUT | ||
26 | Index: libid3tag-0.15.1b/id3tag.pc.in | ||
27 | =================================================================== | ||
28 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | ||
29 | +++ libid3tag-0.15.1b/id3tag.pc.in 2009-07-29 09:29:10.000000000 +0100 | ||
30 | @@ -0,0 +1,11 @@ | ||
31 | +prefix=@prefix@ | ||
32 | +exec_prefix=@exec_prefix@ | ||
33 | +libdir=@libdir@ | ||
34 | +includedir=@includedir@ | ||
35 | + | ||
36 | +Name: id3tag | ||
37 | +Description: ID3 tag reading library | ||
38 | +Requires: | ||
39 | +Version: @VERSION@ | ||
40 | +Libs: -L${libdir} -lid3tag -lz | ||
41 | +Cflags: -I${includedir} | ||
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..072db9de66 --- /dev/null +++ b/meta/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb | |||
@@ -0,0 +1,20 @@ | |||
1 | DESCRIPTION = "Library for interacting with ID3 tags." | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/mad/" | ||
3 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349" | ||
4 | LICENSE = "GPLv2+" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
6 | file://COPYRIGHT;md5=5e6279efb87c26c6e5e7a68317a6a87a \ | ||
7 | file://version.h;beginline=1;endline=8;md5=86ac68b67f054b7afde9e149bbc3fe63" | ||
8 | SECTION = "libs" | ||
9 | PRIORITY = "optional" | ||
10 | DEPENDS = "zlib" | ||
11 | PR = "r3" | ||
12 | |||
13 | SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libid3tag-${PV}.tar.gz \ | ||
14 | file://addpkgconfig.patch;patch=1" | ||
15 | |||
16 | S = "${WORKDIR}/libid3tag-${PV}" | ||
17 | |||
18 | inherit autotools pkgconfig | ||
19 | |||
20 | EXTRA_OECONF = "-enable-speed" | ||
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..636b27a928 --- /dev/null +++ b/meta/recipes-multimedia/libmad/libmad/add-pkgconfig.patch | |||
@@ -0,0 +1,68 @@ | |||
1 | Here is a patch for adding pkg-config support to libmad. | ||
2 | It would make life a bit easier for distro maintainers if this was applied. | ||
3 | In case you didn't know, pkg-config is a tool for providing LDFLAGS and | ||
4 | CFLAGS for packages using shared libraries. It's on freedesktop.org. | ||
5 | Debian has already been distributing the pkg-config file mad.pc with | ||
6 | libmad for some time, and people developing on debian (notably xmms2 | ||
7 | developers) have started relying on this support being present, causing | ||
8 | some confusion for people installing from source and on some BSDs which | ||
9 | do not provide mad.pc (google: pkgconfig libmad). | ||
10 | |||
11 | EMH | ||
12 | |||
13 | --h31gzZEtNLTqOjlF | ||
14 | Content-Type: text/plain; charset=us-ascii | ||
15 | Content-Disposition: attachment; filename="libmad-0.15.1b-pkgconfig.patch" | ||
16 | |||
17 | diff -Naur libmad-0.15.1b.old/configure.ac libmad-0.15.1b/configure.ac | ||
18 | --- libmad-0.15.1b.old/configure.ac 2004-01-23 10:41:32.000000000 +0100 | ||
19 | +++ libmad-0.15.1b/configure.ac 2004-08-07 02:25:24.633462168 +0200 | ||
20 | @@ -429,5 +429,5 @@ | ||
21 | dnl AC_SUBST(LTLIBOBJS) | ||
22 | |||
23 | AC_CONFIG_FILES([Makefile msvc++/Makefile \ | ||
24 | - libmad.list]) | ||
25 | + libmad.list mad.pc]) | ||
26 | AC_OUTPUT | ||
27 | diff -Naur libmad-0.15.1b.old/mad.pc.in libmad-0.15.1b/mad.pc.in | ||
28 | --- libmad-0.15.1b.old/mad.pc.in 1970-01-01 01:00:00.000000000 +0100 | ||
29 | +++ libmad-0.15.1b/mad.pc.in 2004-08-07 02:04:59.617692872 +0200 | ||
30 | @@ -0,0 +1,14 @@ | ||
31 | +# libmad pkg-config source file | ||
32 | + | ||
33 | +prefix=@prefix@ | ||
34 | +exec_prefix=@exec_prefix@ | ||
35 | +libdir=@libdir@ | ||
36 | +includedir=@includedir@ | ||
37 | + | ||
38 | +Name: mad | ||
39 | +Description: MPEG Audio Decoder | ||
40 | +Version: @VERSION@ | ||
41 | +Requires: | ||
42 | +Conflicts: | ||
43 | +Libs: -L${libdir} -lmad -lm | ||
44 | +Cflags: -I${includedir} | ||
45 | diff -Naur libmad-0.15.1b.old/Makefile.am libmad-0.15.1b/Makefile.am | ||
46 | --- libmad-0.15.1b.old/Makefile.am 2004-02-17 03:02:03.000000000 +0100 | ||
47 | +++ libmad-0.15.1b/Makefile.am 2004-08-07 02:03:19.859858368 +0200 | ||
48 | @@ -24,6 +24,9 @@ | ||
49 | SUBDIRS = | ||
50 | DIST_SUBDIRS = msvc++ | ||
51 | |||
52 | +pkgconfigdir = $(libdir)/pkgconfig | ||
53 | +pkgconfig_DATA = mad.pc | ||
54 | + | ||
55 | lib_LTLIBRARIES = libmad.la | ||
56 | include_HEADERS = mad.h | ||
57 | |||
58 | @@ -34,7 +37,8 @@ | ||
59 | minimad_LDADD = libmad.la | ||
60 | |||
61 | EXTRA_DIST = mad.h.sed \ | ||
62 | - CHANGES COPYRIGHT CREDITS README TODO VERSION | ||
63 | + CHANGES COPYRIGHT CREDITS README TODO VERSION \ | ||
64 | + mad.pc.in | ||
65 | |||
66 | exported_headers = version.h fixed.h bit.h timer.h stream.h frame.h \ | ||
67 | synth.h decoder.h | ||
68 | |||
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..785a8a22db --- /dev/null +++ b/meta/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch | |||
@@ -0,0 +1,31 @@ | |||
1 | gcc 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 | |||
3 | so the libmad build with gcc-4.5.0 was failing. | ||
4 | |||
5 | Found a solution here: | ||
6 | |||
7 | http://us.generation-nt.com/answer/bug-568418-libmad0-dev-mpg321-compilation-errors-mips-mipsel-architectures-help-169033451.html | ||
8 | |||
9 | 2010/07/29 | ||
10 | Nitin A Kamble <nitin.a.kamble@intel.com> | ||
11 | |||
12 | Index: libmad-0.15.1b/fixed.h | ||
13 | =================================================================== | ||
14 | --- libmad-0.15.1b.orig/fixed.h | ||
15 | +++ libmad-0.15.1b/fixed.h | ||
16 | @@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t | ||
17 | |||
18 | /* --- MIPS ---------------------------------------------------------------- */ | ||
19 | |||
20 | +# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) | ||
21 | + typedef unsigned int u64_di_t __attribute__ ((mode (DI))); | ||
22 | +# define MAD_F_MLX(hi, lo, x, y) \ | ||
23 | + do { \ | ||
24 | + u64_di_t __ll = (u64_di_t) (x) * (y); \ | ||
25 | + hi = __ll >> 32; \ | ||
26 | + lo = __ll; \ | ||
27 | + } while (0) | ||
28 | + | ||
29 | # elif defined(FPM_MIPS) | ||
30 | |||
31 | /* | ||
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..d4dab7556d --- /dev/null +++ b/meta/recipes-multimedia/libmad/libmad/no-force-mem.patch | |||
@@ -0,0 +1,16 @@ | |||
1 | This option no longer exists in gcc 3.4.1 | ||
2 | |||
3 | RP - 18/07/2008 | ||
4 | |||
5 | Index: libmad-0.15.1b/configure.ac | ||
6 | =================================================================== | ||
7 | --- libmad-0.15.1b.orig/configure.ac 2008-07-18 15:45:30.000000000 +0100 | ||
8 | +++ libmad-0.15.1b/configure.ac 2008-07-18 15:45:37.000000000 +0100 | ||
9 | @@ -140,7 +140,6 @@ | ||
10 | case "$optimize" in | ||
11 | -O|"-O "*) | ||
12 | optimize="-O" | ||
13 | - optimize="$optimize -fforce-mem" | ||
14 | optimize="$optimize -fforce-addr" | ||
15 | : #x optimize="$optimize -finline-functions" | ||
16 | : #- optimize="$optimize -fstrength-reduce" | ||
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..acc9df5501 --- /dev/null +++ b/meta/recipes-multimedia/libmad/libmad_0.15.1b.bb | |||
@@ -0,0 +1,32 @@ | |||
1 | DESCRIPTION = "MPEG Audio Decoder Library" | ||
2 | HOMEPAGE = "http://sourceforge.net/projects/mad/" | ||
3 | BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349" | ||
4 | LICENSE = "GPLv2+" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
6 | file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \ | ||
7 | file://version.h;beginline=1;endline=8;md5=aa07311dd39288d4349f28e1de516454" | ||
8 | SECTION = "libs" | ||
9 | PRIORITY = "optional" | ||
10 | DEPENDS = "libid3tag" | ||
11 | PR = "r2" | ||
12 | |||
13 | SRC_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 | |||
18 | S = "${WORKDIR}/libmad-${PV}" | ||
19 | |||
20 | inherit autotools pkgconfig | ||
21 | |||
22 | EXTRA_OECONF = "-enable-speed --enable-shared" | ||
23 | # The ASO's don't take any account of thumb... | ||
24 | EXTRA_OECONF_append_thumb = " --disable-aso --enable-fpm=default" | ||
25 | EXTRA_OECONF_append_arm = " --enable-fpm=arm" | ||
26 | |||
27 | do_configure_prepend () { | ||
28 | # damn picky automake... | ||
29 | touch NEWS AUTHORS ChangeLog | ||
30 | } | ||
31 | |||
32 | ARM_INSTRUCTION_SET = "arm" | ||
diff --git a/meta/recipes-multimedia/libogg/libogg_1.2.0.bb b/meta/recipes-multimedia/libogg/libogg_1.2.0.bb new file mode 100644 index 0000000000..0c64da280b --- /dev/null +++ b/meta/recipes-multimedia/libogg/libogg_1.2.0.bb | |||
@@ -0,0 +1,15 @@ | |||
1 | DESCRIPTION = "libogg is the bitstream and framing library \ | ||
2 | for the Ogg project. It provides functions which are \ | ||
3 | necessary to codec libraries like libvorbis." | ||
4 | HOMEPAGE = "http://xiph.org/" | ||
5 | BUGTRACKER = "https://trac.xiph.org/newticket" | ||
6 | SECTION = "libs" | ||
7 | LICENSE = "BSD" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ | ||
9 | file://include/ogg/ogg.h;beginline=1;endline=11;md5=eda812856f13a3b1326eb8f020cc3b0b" | ||
10 | |||
11 | PR = "r0" | ||
12 | |||
13 | SRC_URI = "http://downloads.xiph.org/releases/ogg/libogg-${PV}.tar.gz" | ||
14 | |||
15 | inherit autotools pkgconfig | ||
diff --git a/meta/recipes-multimedia/libpng/libpng_1.2.44.bb b/meta/recipes-multimedia/libpng/libpng_1.2.44.bb new file mode 100644 index 0000000000..318bb7436d --- /dev/null +++ b/meta/recipes-multimedia/libpng/libpng_1.2.44.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | DESCRIPTION = "PNG Library" | ||
2 | HOMEPAGE = "http://www.libpng.org/" | ||
3 | SECTION = "libs" | ||
4 | PRIORITY = "required" | ||
5 | LICENSE = "libpng" | ||
6 | LIC_FILES_CHKSUM = "file://LICENSE;md5=a294a2bb08b7f25558119edbfd6b2e92 \ | ||
7 | file://png.h;startline=172;endline=261;md5=3253923f0093658f470e52a06ddcf4e7" | ||
8 | DEPENDS = "zlib" | ||
9 | PR = "r0" | ||
10 | |||
11 | SRC_URI = "${SOURCEFORGE_MIRROR}/libpng/libpng-${PV}.tar.bz2" | ||
12 | |||
13 | inherit autotools binconfig pkgconfig | ||
14 | |||
15 | PACKAGES =+ "${PN}12-dbg ${PN}12 ${PN}12-dev" | ||
16 | |||
17 | FILES_${PN}12-dbg = "${libdir}/.debug/libpng12*" | ||
18 | FILES_${PN}12 = "${libdir}/libpng12${SOLIBS}" | ||
19 | FILES_${PN}12-dev = "${libdir}/libpng12.* ${includedir}/libpng12 ${libdir}/pkgconfig/libpng12.pc" | ||
20 | FILES_${PN} = "${libdir}/lib*${SOLIBS}" | ||
21 | FILES_${PN}-dev += " ${bindir} ${sbindir}" | ||
22 | |||
23 | BBCLASSEXTEND = "native" | ||
diff --git a/meta/recipes-multimedia/libtiff/files/libtool2.patch b/meta/recipes-multimedia/libtiff/files/libtool2.patch new file mode 100644 index 0000000000..8285be51d2 --- /dev/null +++ b/meta/recipes-multimedia/libtiff/files/libtool2.patch | |||
@@ -0,0 +1,19 @@ | |||
1 | --- | ||
2 | configure.ac | 2 +- | ||
3 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
4 | |||
5 | --- tiff-3.8.2.orig/configure.ac | ||
6 | +++ tiff-3.8.2/configure.ac | ||
7 | @@ -25,11 +25,11 @@ dnl OF THIS SOFTWARE. | ||
8 | dnl Process this file with autoconf to produce a configure script. | ||
9 | |||
10 | AC_PREREQ(2.59) | ||
11 | AC_INIT([LibTIFF Software], 3.8.2, [tiff@lists.maptools.org], tiff) | ||
12 | AC_CONFIG_AUX_DIR(config) | ||
13 | -AC_CONFIG_MACRO_DIR(m4) | ||
14 | +dnl AC_CONFIG_MACRO_DIR(m4) | ||
15 | AC_LANG(C) | ||
16 | |||
17 | dnl Compute the canonical target-system type variable | ||
18 | AC_CANONICAL_TARGET | ||
19 | |||
diff --git a/meta/recipes-multimedia/libtiff/tiff_3.8.2.bb b/meta/recipes-multimedia/libtiff/tiff_3.8.2.bb new file mode 100644 index 0000000000..4e3c82baa9 --- /dev/null +++ b/meta/recipes-multimedia/libtiff/tiff_3.8.2.bb | |||
@@ -0,0 +1,17 @@ | |||
1 | DESCRIPTION = "This software provides support for the Tag Image File Format (TIFF)" | ||
2 | LICENSE = "${PN}" | ||
3 | HOMEPAGE = "http://www.remotesensing.org/libtiff/" | ||
4 | DEPENDS = "zlib jpeg lzo" | ||
5 | PR = "r2" | ||
6 | |||
7 | SRC_URI = "ftp://ftp.remotesensing.org/pub/libtiff/tiff-${PV}.tar.gz \ | ||
8 | file://libtool2.patch;patch=1" | ||
9 | |||
10 | inherit autotools | ||
11 | |||
12 | PACKAGES =+ "tiffxx tiffxx-dbg tiffxx-dev tiff-utils tiff-utils-dbg" | ||
13 | FILES_tiffxx = "${libdir}/libtiffxx.so.*" | ||
14 | FILES_tiffxx-dev = "${libdir}/libtiffxx.so ${libdir}/libtiffxx.*a" | ||
15 | FILES_tiffxx-dbg += "${libdir}/.debug/libtiffxx.so*" | ||
16 | FILES_tiff-utils = "${bindir}/*" | ||
17 | FILES_tiff-utils-dbg += "${bindir}/.debug/" | ||
diff --git a/meta/recipes-multimedia/libvorbis/libvorbis_1.3.1.bb b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.1.bb new file mode 100644 index 0000000000..2181cb609a --- /dev/null +++ b/meta/recipes-multimedia/libvorbis/libvorbis_1.3.1.bb | |||
@@ -0,0 +1,23 @@ | |||
1 | DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \ | ||
2 | that is free of intellectual property restrictions. libvorbis \ | ||
3 | is the main vorbis codec library." | ||
4 | HOMEPAGE = "http://xiph.org/" | ||
5 | BUGTRACKER = "https://trac.xiph.org/newticket" | ||
6 | SECTION = "libs" | ||
7 | LICENSE = "BSD" | ||
8 | LIC_FILES_CHKSUM = "file://COPYING;md5=ca77c6c3ea4d29cb68dce8ef5ab0d897 \ | ||
9 | file://include/vorbis/vorbisenc.h;beginline=1;endline=11;md5=d1c1d138863d6315131193d4046d81cb" | ||
10 | DEPENDS = "libogg" | ||
11 | |||
12 | PR = "r0" | ||
13 | |||
14 | SRC_URI = "http://downloads.xiph.org/releases/vorbis/libvorbis-${PV}.tar.gz" | ||
15 | |||
16 | inherit autotools pkgconfig | ||
17 | |||
18 | # vorbisfile.c reveals a problem in the gcc register spilling for the | ||
19 | # thumb instruction set... | ||
20 | FULL_OPTIMIZATION_thumb = "-O0" | ||
21 | |||
22 | EXTRA_OECONF = "--with-ogg-libraries=${STAGING_LIBDIR} \ | ||
23 | --with-ogg-includes=${STAGING_INCDIR}" | ||
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..a769e5a70e --- /dev/null +++ b/meta/recipes-multimedia/mpeg2dec/mpeg2dec_0.4.1.bb | |||
@@ -0,0 +1,31 @@ | |||
1 | DESCRIPTION = "Library and test program for decoding mpeg-2 and mpeg-1 video streams" | ||
2 | HOMEPAGE = "http://libmpeg2.sourceforge.net/" | ||
3 | SECTION = "libs" | ||
4 | PRIORITY = "optional" | ||
5 | LICENSE = "GPLv2+" | ||
6 | LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \ | ||
7 | file://include/mpeg2.h;beginline=1;endline=22;md5=ead62602d4638329d3b5b86a55803154" | ||
8 | |||
9 | DEPENDS = "virtual/libx11" | ||
10 | |||
11 | PR = "r0" | ||
12 | |||
13 | SRC_URI = "http://libmpeg2.sourceforge.net/files/mpeg2dec-${PV}.tar.gz" | ||
14 | |||
15 | inherit autotools pkgconfig | ||
16 | |||
17 | EXTRA_OECONF = "--enable-shared --disable-sdl --with-x" | ||
18 | |||
19 | PACKAGES = "mpeg2dec-dbg mpeg2dec mpeg2dec-doc libmpeg2 libmpeg2-dev libmpeg2convert libmpeg2convert-dev" | ||
20 | |||
21 | FILES_${PN} = "${bindir}/*" | ||
22 | FILES_libmpeg2 = "${libdir}/libmpeg2.so.*" | ||
23 | FILES_libmpeg2convert = "${libdir}/libmpeg2convert.so.*" | ||
24 | FILES_libmpeg2-dev = "${libdir}/libmpeg2.so \ | ||
25 | ${libdir}/libmpeg2.*a \ | ||
26 | ${libdir}/pkgconfig/libmpeg2.pc \ | ||
27 | ${includedir}/mpeg2dec/mpeg2.h" | ||
28 | FILES_libmpeg2convert-dev = "${libdir}/libmpeg2convert.so \ | ||
29 | ${libdir}/libmpeg2convert.*a \ | ||
30 | ${libdir}/pkgconfig/libmpeg2convert.pc \ | ||
31 | ${includedir}/mpeg2dec/mpeg2convert.h" | ||
diff --git a/meta/recipes-multimedia/musicbrainz/libmusicbrainz/fix_build_issue_for_gcc_4.5.0.patch b/meta/recipes-multimedia/musicbrainz/libmusicbrainz/fix_build_issue_for_gcc_4.5.0.patch new file mode 100644 index 0000000000..80d4d8bf2f --- /dev/null +++ b/meta/recipes-multimedia/musicbrainz/libmusicbrainz/fix_build_issue_for_gcc_4.5.0.patch | |||
@@ -0,0 +1,37 @@ | |||
1 | GCC 4.4 cleaned up some more C++ headers. You always have to #include | ||
2 | headers directly and cannot rely for things to be included indirectly. | ||
3 | |||
4 | Otherwise you get errors like this: | ||
5 | |||
6 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp: In function 'std::string MusicBrainz::intToString(int)': | ||
7 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp:38:23: error: 'sprintf' was not declared in this scope | ||
8 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp: In function 'void MusicBrainz::debug(const char*, ...)': | ||
9 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp:80:10: error: 'stderr' was not declared in this scope | ||
10 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp:80:33: error: 'fprintf' was not declared in this scope | ||
11 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/utils_private.cpp:81:26: error: 'vfprintf' was not declared in this scope | ||
12 | | make[2]: *** [src/CMakeFiles/musicbrainz3.dir/utils_private.o] Error 1 | ||
13 | | make[2]: *** Waiting for unfinished jobs.... | ||
14 | | /home/nitin/build/build0/tmp/work/i586-poky-linux/libmusicbrainz-3.0.2-r0/libmusicbrainz-3.0.2/src/xmlParser/xmlParser.cpp:116:1: warning: 'typedef' was ignored in this declaration | ||
15 | | make[1]: *** [src/CMakeFiles/musicbrainz3.dir/all] Error 2 | ||
16 | | make: *** [all] Error 2 | ||
17 | | FATAL: oe_runmake failed | ||
18 | NOTE: package libmusicbrainz-3.0.2-r0: task do_compile: Failed | ||
19 | |||
20 | Found the solution here: | ||
21 | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=504895 | ||
22 | |||
23 | Date: 2010/07/28 | ||
24 | Nitin A Kamble <nitin.a.kamble@intel.com> | ||
25 | |||
26 | Index: libmusicbrainz-3.0.2/src/utils_private.cpp | ||
27 | =================================================================== | ||
28 | --- libmusicbrainz-3.0.2.orig/src/utils_private.cpp | ||
29 | +++ libmusicbrainz-3.0.2/src/utils_private.cpp | ||
30 | @@ -20,6 +20,7 @@ | ||
31 | * $Id: utils_private.cpp 9934 2008-07-02 06:57:10Z luks $ | ||
32 | */ | ||
33 | |||
34 | +#include <cstdio> | ||
35 | #include <cstdlib> | ||
36 | #include <cstring> | ||
37 | #include <cstdarg> | ||
diff --git a/meta/recipes-multimedia/musicbrainz/libmusicbrainz_3.0.2.bb b/meta/recipes-multimedia/musicbrainz/libmusicbrainz_3.0.2.bb new file mode 100644 index 0000000000..5dfda12a3d --- /dev/null +++ b/meta/recipes-multimedia/musicbrainz/libmusicbrainz_3.0.2.bb | |||
@@ -0,0 +1,13 @@ | |||
1 | DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server." | ||
2 | HOMEPAGE = "http://musicbrainz.org" | ||
3 | LICENSE = "LGPLv2.1+" | ||
4 | LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24 \ | ||
5 | file://include/musicbrainz3/includes.h;beginline=1;endline=21;md5=e7d3b3e6d8bb7ee278dc4040d380ebd5" | ||
6 | DEPENDS = "expat neon" | ||
7 | |||
8 | PR = "r1" | ||
9 | |||
10 | SRC_URI = "http://ftp.musicbrainz.org/pub/musicbrainz/${PN}-${PV}.tar.gz \ | ||
11 | file://fix_build_issue_for_gcc_4.5.0.patch" | ||
12 | |||
13 | inherit cmake pkgconfig | ||
diff --git a/meta/recipes-multimedia/tremor/tremor_20100422.bb b/meta/recipes-multimedia/tremor/tremor_20100422.bb new file mode 100644 index 0000000000..5c66b2ab7b --- /dev/null +++ b/meta/recipes-multimedia/tremor/tremor_20100422.bb | |||
@@ -0,0 +1,19 @@ | |||
1 | DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." | ||
2 | SECTION = "libs" | ||
3 | PRIORITY = "optional" | ||
4 | LICENSE = "BSD" | ||
5 | LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ | ||
6 | file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" | ||
7 | DEPENDS = "libogg" | ||
8 | SRCDATE = "${PV}" | ||
9 | PR = "r0" | ||
10 | |||
11 | SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=17157;proto=http" | ||
12 | |||
13 | S = "${WORKDIR}/Tremor" | ||
14 | |||
15 | inherit autotools | ||
16 | |||
17 | EXTRA_OECONF=" --enable-shared --disable-rpath " | ||
18 | |||
19 | ARM_INSTRUCTION_SET = "arm" | ||