summaryrefslogtreecommitdiffstats
path: root/meta/recipes-multimedia/gstreamer
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-multimedia/gstreamer')
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch22
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch26
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch57
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch21
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch19
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff16
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb56
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb11
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb12
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo.inc15
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb68
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch18
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb34
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb46
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch27
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch20
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb35
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch35
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb25
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch45
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb39
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-package.inc56
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb29
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins.inc30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch19
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c487
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h194
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc32
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch33
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb24
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb62
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc42
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch30
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb12
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb22
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc120
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb26
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc39
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb18
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc56
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb9
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb17
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc31
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb8
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb16
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc59
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0.inc27
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch28
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb13
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb17
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb48
56 files changed, 2346 insertions, 0 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch
new file mode 100644
index 0000000000..9ef6f7c4bf
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/configure-fix.patch
@@ -0,0 +1,22 @@
1Disable yasm for libav when --disable-yasm
2
3Upstream-Status: Inappropriate [configuration]
4
5Signed-off-by: Shane Wang <shane.wang@intel.com>
6
7diff -r f2f8f74c6e30 configure.ac
8--- a/configure.ac Thu Dec 22 23:56:09 2011 +0800
9+++ b/configure.ac Thu Dec 22 23:57:37 2011 +0800
10@@ -325,6 +325,12 @@
11 --enable-gpl"
12 fi
13
14+ AC_ARG_ENABLE(yasm,
15+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
16+ if test "x$enable_yasm" = "xno"; then
17+ embffmpeg_configure_args="$embffmpeg_configure_args --disable-yasm"
18+ fi
19+
20 # if we are cross-compiling, tell ffmpeg so
21 target_os=`echo $host_os | sed 's/-gnu//'`
22 if test "x$cross_compiling" = xyes; then
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
new file mode 100644
index 0000000000..a28404b072
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/gst-ffmpeg-CVE-2013-3674.patch
@@ -0,0 +1,26 @@
1avcodec/cdgraphics: check buffer size before use
2
3Fixes out of array accesses
4
5Backported from:http://git.videolan.org/?p=ffmpeg.git;a=commit;h=ad002e1a13a8df934bd6cb2c84175a4780ab8942
6
7Upstream-status: Backport
8
9Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
10Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
11Signed-off-by: Ming Liu <ming.liu@windriver.com>
12
13diff -urpN a/gst-libs/ext/libav/libavcodec/cdgraphics.c b/gst-libs/ext/libav/libavcodec/cdgraphics.c
14--- a/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:17:08.399876575 +0800
15+++ b/gst-libs/ext/libav/libavcodec/cdgraphics.c 2013-07-18 13:18:05.880502267 +0800
16@@ -291,7 +291,9 @@ static int cdg_decode_frame(AVCodecConte
17 inst = bytestream_get_byte(&buf);
18 inst &= CDG_MASK;
19 buf += 2; /// skipping 2 unneeded bytes
20- bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
21+
22+ if (buf_size > CDG_HEADER_SIZE)
23+ bytestream_get_buffer(&buf, cdg_data, buf_size - CDG_HEADER_SIZE);
24
25 if ((command & CDG_MASK) == CDG_COMMAND) {
26 switch (inst) {
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
new file mode 100644
index 0000000000..ade24dc06a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/h264_qpel_mmx.patch
@@ -0,0 +1,57 @@
1Backport http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=5f654897e325349dacf2546674e0510bb72ecb50;hp=250cebeb3b348c3da71f9972eb500d6005dc01f1
2
3Fixes these errors on x86
4
5libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
6libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
7libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for `cmp'
8libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
9libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for `cmp'
10libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
11libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
12libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
13make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
14
15
16Signed-off-by: Khem Raj <raj.khem@gmail.com>
17Upstream-Status: Backport
18Index: gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c
19===================================================================
20--- gst-ffmpeg-0.10.13.orig/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:39:41.324522051 -0700
21+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/libavcodec/x86/h264_qpel_mmx.c 2012-03-30 11:54:08.152564075 -0700
22@@ -398,7 +398,7 @@
23 "2: \n\t"\
24 \
25 : "+a"(src), "+c"(dst)\
26- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
27+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
28 : "memory"\
29 );\
30 src += 4-(h+5)*srcStride;\
31@@ -446,7 +446,7 @@
32 QPEL_H264HV(%%mm3, %%mm4, %%mm5, %%mm0, %%mm1, %%mm2, 15*48)\
33 "2: \n\t"\
34 : "+a"(src)\
35- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)\
36+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)\
37 : "memory"\
38 );\
39 tmp += 4;\
40@@ -823,7 +823,7 @@
41 "2: \n\t"\
42 \
43 : "+a"(src), "+c"(dst)\
44- : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "g"(h)\
45+ : "S"((x86_reg)srcStride), "D"((x86_reg)dstStride), "rm"(h)\
46 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3", \
47 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)\
48 "memory"\
49@@ -878,7 +878,7 @@
50 QPEL_H264HV_XMM(%%xmm3, %%xmm4, %%xmm5, %%xmm0, %%xmm1, %%xmm2, 15*48)
51 "2: \n\t"
52 : "+a"(src)
53- : "c"(tmp), "S"((x86_reg)srcStride), "g"(size)
54+ : "c"(tmp), "S"((x86_reg)srcStride), "rm"(size)
55 : XMM_CLOBBERS("%xmm0", "%xmm1", "%xmm2", "%xmm3",
56 "%xmm4", "%xmm5", "%xmm6", "%xmm7",)
57 "memory"
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
new file mode 100644
index 0000000000..eba4988031
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e500mc.patch
@@ -0,0 +1,21 @@
1diff --git a/gst-libs/ext/libav/configure b/gst-libs/ext/libav/configure
2index 8473069..4f74952 100755
3--- a/gst-libs/ext/libav/configure
4+++ b/gst-libs/ext/libav/configure
5Fix gst-ffmpeg build issues for libav on e500mc (fsl-p4080)
6
7Upstream-Status: Backport
8
9Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
10
11@@ -2210,6 +2210,10 @@ elif enabled ppc; then
12 cpuflags="-mcpu=cell"
13 enable ldbrx
14 ;;
15+ e500mc)
16+ cpuflags="-mcpu=e500mc"
17+ disable altivec
18+ ;;
19 e500v2)
20 cpuflags="-mcpu=8548 -mhard-float -mfloat-gprs=double"
21 disable altivec
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch
new file mode 100644
index 0000000000..d9ea2c29e0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav_e5500.patch
@@ -0,0 +1,19 @@
1libav: Add configs for ppc e5500
2
3Upstream-Status: Pending
4
5Signed-off-by: Jesse Zhang <sen.zhang@windriver.com>
6
7--- gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:36.073104964 -0400
8+++ gst-ffmpeg-0.10.13/gst-libs/ext/libav/configure 2013-06-20 05:18:38.269104150 -0400
9@@ -2222,6 +2222,10 @@
10 cpuflags="-mcpu=8540 -mhard-float"
11 disable altivec
12 ;;
13+ e5500)
14+ cpuflags="-mcpu=e5500 -mhard-float"
15+ disable altivec
16+ ;;
17 esac
18
19 elif enabled x86; then
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff
new file mode 100644
index 0000000000..5f08afe59a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/lower-rank.diff
@@ -0,0 +1,16 @@
1Lower the rank of ffmpeg plugin so codecs that hook into accelerated pieces (e.g. dsp or hw engines) can get picked over this
2Derived from OE by Dongxiao Xu <dongxiao.xu@intel.com>
3
4Upstream-Status: Inappropriate [embedded specific]
5
6--- /tmp/gstffmpegdec.c 2009-03-05 09:31:15.000000000 +0100
7+++ gst-ffmpeg-0.10.6/ext/ffmpeg/gstffmpegdec.c 2009-03-05 09:33:09.000000000 +0100
8@@ -2588,7 +2588,7 @@
9 case CODEC_ID_MSMPEG4V3:
10 case CODEC_ID_H264:
11 case CODEC_ID_COOK:
12- rank = GST_RANK_PRIMARY;
13+ rank = GST_RANK_SECONDARY;
14 break;
15 case CODEC_ID_DVVIDEO:
16 /* we have a good dv decoder, fast on both ppc as well as x86. they say
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
new file mode 100644
index 0000000000..e1257a2697
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
@@ -0,0 +1,56 @@
1SUMMARY = "FFmpeg-based GStreamer plug-in"
2SECTION = "multimedia"
3LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
4LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
5 file://ext/libpostproc/gstpostproc.c;beginline=1;endline=18;md5=5896e445e41681324381f5869ee33d38 \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://ext/ffmpeg/gstffmpeg.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9 \
8 file://gst-libs/ext/libav/LICENSE;md5=abc3b8cb02856aa7823bbbd162d16232 \
9 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=e344c8fa836c3a41c4cbd79d7bd3a379 \
12 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13LICENSE_FLAGS = "commercial"
14HOMEPAGE = "http://www.gstreamer.net/"
15DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native"
16
17inherit autotools pkgconfig
18
19SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
20 file://lower-rank.diff \
21 file://configure-fix.patch \
22 file://h264_qpel_mmx.patch \
23 file://libav_e500mc.patch \
24 file://libav_e5500.patch \
25 file://gst-ffmpeg-CVE-2013-3674.patch \
26"
27
28SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
29SRC_URI[sha256sum] = "76fca05b08e00134e3cb92fa347507f42cbd48ddb08ed3343a912def187fbb62"
30
31PR = "r8"
32
33GSTREAMER_DEBUG ?= "--disable-debug"
34
35FFMPEG_EXTRA_CONFIGURE = "--with-ffmpeg-extra-configure"
36# pass --cpu for powerpc. get cpu name by stripping "ppc" or "ppc64"
37# from DEFAULTTUNE
38FFMPEG_CPU_powerpc = "--cpu=${@d.getVar('DEFAULTTUNE')[3:]}"
39FFMPEG_CPU_powerpc64 = "--cpu=${@d.getVar('DEFAULTTUNE')[5:]}"
40FFMPEG_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux ${FFMPEG_CPU} \
41 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
42 --ranlib='${RANLIB}' \
43 ${GSTREAMER_DEBUG}"
44FFMPEG_EXTRA_CONFIGURE_COMMON = \
45'${FFMPEG_EXTRA_CONFIGURE}="${FFMPEG_EXTRA_CONFIGURE_COMMON_ARG}"'
46
47EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
48
49PACKAGECONFIG ??= "external-libav"
50PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
51PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
52
53FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
54FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
55FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
56FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb
new file mode 100644
index 0000000000..47dbc3492b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb
@@ -0,0 +1,11 @@
1require gst-fluendo.inc
2
3SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in"
4LICENSE = "MIT"
5LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2"
6LICENSE_FLAGS = "commercial"
7
8acpaths = "-I ${S}/common/m4 -I ${S}/m4"
9
10SRC_URI[md5sum] = "5d95a9a216dd15bc5c00c9414061115c"
11SRC_URI[sha256sum] = "30c79d24d8926f75dd4ef0f572942ce155ad541734b36a95591b9c0524dcc0f3"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb
new file mode 100644
index 0000000000..f79015403b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb
@@ -0,0 +1,12 @@
1require gst-fluendo.inc
2
3SUMMARY = "Fluendo closed-format mpeg video GStreamer plug-in"
4LICENSE = "MPLv1.1"
5LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \
6 file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd"
7LICENSE_FLAGS = "commercial"
8
9acpaths = "-I ${S}/common/m4 -I ${S}/m4"
10
11SRC_URI[md5sum] = "df726579404af65b9536428661ab4322"
12SRC_URI[sha256sum] = "a9784bc16352d0fb73de81b9c17142609e8bede46f6d9b881fc3d19673954abf"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
new file mode 100644
index 0000000000..c7e6595232
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
@@ -0,0 +1,15 @@
1SUMMARY = "Fluendo closed-format GStreamer plug-in"
2SECTION = "multimedia"
3HOMEPAGE = "http://www.fluendo.com/resources/source-plugins.php"
4DEPENDS = "gstreamer zlib"
5
6inherit autotools pkgconfig
7
8SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2"
9
10FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
11FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
12FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
13
14GSTREAMER_DEBUG ?= "--disable-debug"
15EXTRA_OECONF = "${GSTREAMER_DEBUG} --disable-valgrind"
diff --git a/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb b/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb
new file mode 100644
index 0000000000..9fb2f8fbb3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-meta-base_0.10.bb
@@ -0,0 +1,68 @@
1SUMMARY = "GStreamer package groups"
2LICENSE = "MIT"
3DEPENDS = "gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad"
4LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
5 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
6
7
8PR = "r13"
9
10PACKAGES = "\
11 gst-meta-base \
12 gst-meta-x11-base \
13 gst-meta-audio \
14 gst-meta-debug \
15 gst-meta-video"
16
17ALLOW_EMPTY_gst-meta-base = "1"
18ALLOW_EMPTY_gst-meta-x11-base = "1"
19ALLOW_EMPTY_gst-meta-audio = "1"
20ALLOW_EMPTY_gst-meta-debug = "1"
21ALLOW_EMPTY_gst-meta-video = "1"
22
23RDEPENDS_gst-meta-base = "\
24 ${@base_contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \
25 gstreamer \
26 gst-plugins-base-playbin \
27 gst-plugins-base-decodebin \
28 gst-plugins-base-decodebin2 \
29 gst-plugins-base-gio \
30 gst-plugins-base-alsa \
31 gst-plugins-base-volume \
32 gst-plugins-base-audioconvert \
33 gst-plugins-base-audioresample \
34 gst-plugins-base-typefindfunctions \
35 gst-plugins-base-videoscale \
36 gst-plugins-base-ffmpegcolorspace \
37 gst-plugins-good-autodetect \
38 gst-plugins-good-souphttpsrc"
39
40RRECOMMENDS_gst-meta-x11-base = "\
41 gst-plugins-base-ximagesink \
42 gst-plugins-base-xvimagesink"
43
44RDEPENDS_gst-meta-audio = "\
45 gst-meta-base \
46 gst-plugins-base-vorbis \
47 gst-plugins-base-ogg \
48 gst-plugins-good-wavparse \
49 gst-plugins-good-flac \
50 ${COMMERCIAL_AUDIO_PLUGINS}"
51
52
53RDEPENDS_gst-meta-debug = "\
54 gst-meta-base \
55 gst-plugins-good-debug \
56 gst-plugins-base-audiotestsrc \
57 gst-plugins-base-videotestsrc"
58
59
60RDEPENDS_gst-meta-video = "\
61 gst-meta-base \
62 gst-plugins-good-avi \
63 gst-plugins-good-matroska \
64 gst-plugins-base-theora \
65 ${COMMERCIAL_VIDEO_PLUGINS}"
66
67RRECOMMENDS_gst-meta-video = "\
68 gst-meta-audio"
diff --git a/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch b/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch
new file mode 100644
index 0000000000..57a63b5a0f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-openmax/gcc_4.6.patch
@@ -0,0 +1,18 @@
1Upstream-Status: Pending
2
3Signed-off-by: Saul Wold <sgw@linux.intel.com>
4
5Index: gst-openmax-0.10.1/omx/gstomx.c
6===================================================================
7--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700
8+++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700
9@@ -238,7 +238,8 @@
10 const gchar *element_name = gst_structure_nth_field_name (element_table, i);
11 GstStructure *element = get_element_entry (element_name);
12 const gchar *type_name, *parent_type_name;
13- const gchar *component_name, *component_role, *library_name;
14+ const gchar *component_name, *library_name;
15+ const gchar __attribute__((__unused__)) *component_role;
16 GType type;
17 gint rank;
18
diff --git a/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb
new file mode 100644
index 0000000000..ea3b66ba8c
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-openmax_0.10.1.bb
@@ -0,0 +1,34 @@
1SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components"
2DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \
3communication with OpenMAX Integration Layer (IL) components. OpenMAX \
4IL is an industry standard that provides an abstraction layer for \
5computer graphics, video, and sound routines."
6HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX"
7DEPENDS = "gstreamer"
8RDEPENDS_${PN} = "libomxil"
9LICENSE = "LGPLv2.1"
10LICENSE_FLAGS = "commercial"
11LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
12 file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc"
13
14SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \
15 file://gcc_4.6.patch \
16 "
17
18inherit autotools
19
20# Tell configure that this isn't a development snapshot so we don't want
21# -Werror (hopefully fixed in 0.10.2)
22export GST_CVS="no"
23
24EXTRA_OECONF += "--disable-valgrind"
25
26PR = "r4"
27
28FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so"
29FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la"
30FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a"
31FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/"
32
33SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e"
34SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb
new file mode 100644
index 0000000000..dceb12cf2a
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-bad_0.10.23.bb
@@ -0,0 +1,46 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c"
8
9DEPENDS += "gst-plugins-base"
10
11PR = "r4"
12
13inherit gettext gsettings
14
15EXTRA_OECONF += "--disable-experimental \
16 --disable-sdl --disable-cdaudio --disable-directfb \
17 --disable-vdpau --disable-apexsink"
18
19PACKAGECONFIG ??= "bzip curl \
20 ${@base_contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}"
21
22PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2"
23PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
24PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg,"
25PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
26PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
27PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms"
28PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng"
29PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
30PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper"
31PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
32PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
33PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
34PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx"
35PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass"
36PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
37
38ARM_INSTRUCTION_SET = "arm"
39
40do_configure_prepend() {
41 # This m4 file contains nastiness which conflicts with libtool 2.2.2
42 rm ${S}/m4/lib-link.m4 || true
43}
44
45SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987"
46SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
new file mode 100644
index 0000000000..b8602c80d7
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
@@ -0,0 +1,27 @@
1Upstream-Status: Submitted [similar patch by other author, bugzilla]
2Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600
3
4Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't
5search for gstconfig.h in /usr/include.
6
7Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
8---
9 configure.ac | 2 +-
10 1 files changed, 1 insertions(+), 1 deletions(-)
11
12diff --git a/configure.ac b/configure.ac
13index 1901bcf..460fb0a 100644
14--- a/configure.ac
15+++ b/configure.ac
16@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume)
17 dnl check for gstreamer core features (subsystems)
18 dnl FIXME: this assumes srcdir == builddir for uninstalled setups
19 GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
20-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH)
21+AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH)
22 AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1")
23
24 dnl disable plug-ins that require libxml2's HTML support if it is not available
25--
261.7.5.4
27
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
new file mode 100644
index 0000000000..99dbc9d52e
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
@@ -0,0 +1,20 @@
1Remove -DTREMOR option since Tremor has dropped its internal
2libogg2, and gst-plugins-base has dependency on that.
3
4Upstream-Status: Inappropriate [configuration]
5
6Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
7Signed-off-by: Shane Wang <shane.wang@intel.com>
8
9diff -r 70065fb4e085 ext/vorbis/Makefile.am
10--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800
11+++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800
12@@ -30,7 +30,7 @@
13 gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
14 libgstivorbisdec_la_CFLAGS = \
15 $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
16- -DTREMOR $(IVORBIS_CFLAGS)
17+ $(IVORBIS_CFLAGS)
18 libgstivorbisdec_la_LIBADD = \
19 $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
20 $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb
new file mode 100644
index 0000000000..53cc55cc26
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-base_0.10.36.bb
@@ -0,0 +1,35 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
6 file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
7 file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0"
8
9DEPENDS += "alsa-lib liboil libogg libvorbis libtheora util-linux tremor glib-2.0-native"
10
11SRC_URI += "file://gst-plugins-base-tremor.patch \
12 file://configure.ac-fix-subparse-plugin.patch"
13
14SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a"
15SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976"
16
17PR = "r8"
18
19inherit gettext
20
21EXTRA_OECONF += "--disable-freetypetest"
22
23PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
24
25PACKAGECONFIG[gnomevfs] = "--enable-gnome_vfs,--disable-gnome_vfs,gnome-vfs"
26PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
27PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
28PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice"
29
30do_configure_prepend() {
31 # This m4 file contains nastiness which conflicts with libtool 2.2.2
32 rm -f ${S}/m4/lib-link.m4
33}
34
35FILES_${PN} += "${datadir}/${BPN}"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
new file mode 100644
index 0000000000..bc2f88b241
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
@@ -0,0 +1,35 @@
1From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001
2From: Jeremy Stashluk <jstashluk@dekaresearch.com>
3Date: Wed, 6 Feb 2013 09:59:48 -0500
4Subject: [PATCH] conditional gl framebuffer undefined use
5
6The OpenGL extension GL_ARB_framebuffer_object defines the macro
7GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error
8string if the extension provides functions that might return the macro.
9
10Upstream-Status: Pending
11
12Signed-off-by: Jeremy Stashluk <jstashluk@dekaresearch.com>
13---
14 gst-libs/gst/gl/gstgldisplay.c | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c
18index 3ed0b71..64c6c2c 100644
19--- a/gst-libs/gst/gl/gstgldisplay.c
20+++ b/gst-libs/gst/gl/gstgldisplay.c
21@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void)
22 GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS");
23 break;
24
25+#if defined(GL_ARB_framebuffer_object)
26 case GL_FRAMEBUFFER_UNDEFINED:
27 GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED");
28 break;
29+#endif
30
31 default:
32 GST_ERROR ("General FBO error");
33--
341.7.9.5
35
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb
new file mode 100644
index 0000000000..90efbcc025
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-gl_0.10.3.bb
@@ -0,0 +1,25 @@
1require recipes-multimedia/gstreamer/gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
5
6SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938"
7SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210"
8
9SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch"
10
11DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew"
12
13PR = "r4"
14
15inherit gettext
16
17# This package doesn't have a configure switch for EGL or GL, so forcibly tell
18# configure that it can't find gl.h so it always uses EGL. If/when we have some
19# way for machines to specify their preferred GL flavour this can be
20# automatically adapted.
21EXTRA_OECONF += "ac_cv_header_GL_gl_h=no"
22
23ALLOW_EMPTY_${PN} = "1"
24ALLOW_EMPTY_${PN}-apps = "1"
25ALLOW_EMPTY_${PN}-glib = "1"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
new file mode 100644
index 0000000000..6456d3c6c2
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
@@ -0,0 +1,33 @@
1From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
3Date: Wed, 5 Sep 2012 18:54:42 +0200
4Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input
5 field was removed
6MIME-Version: 1.0
7Content-Type: text/plain; charset=UTF-8
8Content-Transfer-Encoding: 8bit
9
10Upstream-Status: Backport
11
12[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012
13
14Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
15---
16 sys/v4l2/gstv4l2bufferpool.c | 1 -
17 1 files changed, 0 insertions(+), 1 deletions(-)
18
19diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
20index b81c6a4..51cc0ce 100644
21--- a/sys/v4l2/gstv4l2bufferpool.c
22+++ b/sys/v4l2/gstv4l2bufferpool.c
23@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
24 GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
25 ret->vbuffer.m.offset);
26 GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
27- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
28
29 data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
30 PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
31--
321.7.6.5
33
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
new file mode 100644
index 0000000000..bd0de583a5
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
@@ -0,0 +1,45 @@
1From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@windriver.com>
3Date: Thu, 22 Aug 2013 12:15:54 -0400
4Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER
5
6kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls]
7removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three
8years of depreciation.
9
10The ioctl values are still free, and the case statement which processess them
11in v4l2 userspace falls through to the proper replacement. So in the short
12term, we can explicitly define them using the old absolute values, and everything
13will work.
14
15Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
16---
17 sys/v4l2/v4l2_calls.c | 9 +++++++--
18 1 file changed, 7 insertions(+), 2 deletions(-)
19
20diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
21index 309bfb6..3c64544 100644
22--- a/sys/v4l2/v4l2_calls.c
23+++ b/sys/v4l2/v4l2_calls.c
24@@ -54,11 +54,16 @@
25 #include "gst/gst-i18n-plugin.h"
26
27 /* Those are ioctl calls */
28+
29+/* V4L2_CID_HCENTER has been removed from the mainline kernel, but
30+ the ioctl space is still present. Since these values fall through
31+ to their replacement, it is safe (in the short term) to re-use the
32+ old values explictily */
33 #ifndef V4L2_CID_HCENTER
34-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
35+#define V4L2_CID_HCENTER V4L2_CID_BASE+22
36 #endif
37 #ifndef V4L2_CID_VCENTER
38-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
39+#define V4L2_CID_VCENTER V4L2_CID_BASE+23
40 #endif
41
42 GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
43--
441.7.10.4
45
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
new file mode 100644
index 0000000000..e0443406a0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
@@ -0,0 +1,39 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+"
4LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
5 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
6 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
7
8PR = "r8"
9
10PACKAGECONFIG ??= "${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} jpeg"
11PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
12PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
13PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
14PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
15PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
16PACKAGECONFIG[v4l] = "--with-libv4l2,--without-libv4l2,libv4l"
17PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2"
18PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
19
20DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
21 speex libsoup-2.4"
22
23inherit gettext gconf
24
25SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch"
26SRC_URI += "file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch"
27
28EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \
29 --disable-examples --disable-taglib"
30
31do_configure_prepend() {
32 # This m4 file contains nastiness which conflicts with libtool 2.2.2
33 rm ${S}/m4/lib-link.m4 || true
34}
35
36SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6"
37SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6"
38
39FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
new file mode 100644
index 0000000000..0503b34ea3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
@@ -0,0 +1,56 @@
1PACKAGESPLITFUNCS_prepend = " split_gstreamer10_packages "
2PACKAGESPLITFUNCS_append = " set_metapkg_rdepends "
3
4python split_gstreamer10_packages () {
5 gst_libdir = d.expand('${libdir}/gstreamer-${LIBV}')
6 postinst = d.getVar('plugin_postinst', True)
7 glibdir = d.getVar('libdir', True)
8
9 do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
10 do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
11 do_split_packages(d, gst_libdir, 'libgst(.*)\.la$', d.expand('${PN}-%s-dev'), 'GStreamer plugin for %s (development files)', extra_depends=d.expand('${PN}-dev'))
12 do_split_packages(d, gst_libdir, 'libgst(.*)\.a$', d.expand('${PN}-%s-staticdev'), 'GStreamer plugin for %s (static development files)', extra_depends=d.expand('${PN}-staticdev'))
13}
14
15python set_metapkg_rdepends () {
16 import os
17
18 pn = d.getVar('PN', True)
19 metapkg = pn + '-meta'
20 d.setVar('ALLOW_EMPTY_' + metapkg, "1")
21 d.setVar('FILES_' + metapkg, "")
22 blacklist = [ pn, pn + '-locale', pn + '-dev', pn + '-dbg', pn + '-doc', pn + '-meta' ]
23 metapkg_rdepends = []
24 packages = d.getVar('PACKAGES', True).split()
25 pkgdest = d.getVar('PKGDEST', True)
26 for pkg in packages[1:]:
27 if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.count('locale') and not pkg.count('-staticdev'):
28 # See if the package is empty by looking at the contents of its PKGDEST subdirectory.
29 # If this subdirectory is empty, then the package is.
30 # Empty packages do not get added to the meta package's RDEPENDS
31 pkgdir = os.path.join(pkgdest, pkg)
32 if os.path.exists(pkgdir):
33 dir_contents = os.listdir(pkgdir) or []
34 else:
35 dir_contents = []
36 is_empty = len(dir_contents) == 0
37 if not is_empty:
38 metapkg_rdepends.append(pkg)
39 d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
40 d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package')
41}
42
43# metapkg has runtime dependency on PN
44# each plugin depends on PN, plugin-dev on PN-dev, plugin-staticdev on PN-staticdev
45# so we need them even when empty (like in gst-plugins-good case)
46ALLOW_EMPTY_${PN} = "1"
47ALLOW_EMPTY_${PN}-dev = "1"
48ALLOW_EMPTY_${PN}-staticdev = "1"
49
50PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib"
51FILES_${PN}-apps = "${bindir}"
52
53FILES_${PN} = "${datadir}/gstreamer-${LIBV}"
54FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
55FILES_${PN}-glib = "${datadir}/glib-2.0"
56
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb
new file mode 100644
index 0000000000..2fdf03f348
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-ugly_0.10.19.bb
@@ -0,0 +1,29 @@
1require gst-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
4LICENSE_FLAGS = "commercial"
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \
7 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \
8 file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
9
10DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
11PR = "r3"
12
13inherit gettext
14
15EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \
16 --disable-orc"
17
18PACKAGECONFIG ??= ""
19PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
20PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
21PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
22
23do_configure_prepend() {
24 # This m4 file contains nastiness which conflicts with libtool 2.2.2
25 rm ${S}/m4/lib-link.m4 || true
26}
27
28SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2"
29SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
new file mode 100644
index 0000000000..b2d3d3c6a1
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
@@ -0,0 +1,30 @@
1SUMMARY = "Plugins for the GStreamer multimedia framework"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
4SECTION = "multimedia"
5DEPENDS = "gstreamer"
6
7inherit autotools pkgconfig
8
9FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
10
11SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2"
12
13GSTREAMER_DEBUG ?= "--disable-debug"
14EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples "
15
16acpaths = "-I ${S}/common/m4 -I ${S}/m4"
17
18LIBV = "0.10"
19require gst-plugins-package.inc
20
21PACKAGES_DYNAMIC += "^${PN}-.*"
22
23# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
24# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
25# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
26oe_runconf_prepend() {
27 if [ -e ${S}/po/Makefile.in.in ]; then
28 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
29 fi
30}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch
new file mode 100644
index 0000000000..5d8bb13403
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/check_fix.patch
@@ -0,0 +1,19 @@
1# gstreamer: Fix a problem with configure if check has already been built
2# Richard Purdie <rpurdie@linux.intel.com>
3
4Upstream-Status: Inappropriate [configuration]
5
6diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac
7--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800
8+++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800
9@@ -543,8 +543,10 @@
10 *) BUILD_CHECK=yes ;;
11 esac
12 ])
13+
14 dnl bit of a misnomer, but keep the conditional named like this so we don't
15 dnl have to change too much elsewhere
16+HAVE_CHECK=no
17 AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes")
18
19 dnl configure the desired buffer alignment
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch
new file mode 100644
index 0000000000..30be85f59d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gst-inspect-check-error.patch
@@ -0,0 +1,16 @@
1# Fix crash with gst-inspect
2# Chris Lord <chris@openedhand.com>
3
4Upstream-Status: Pending
5
6--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100
7+++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100
8@@ -1123,7 +1123,7 @@
9 g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
10 g_option_context_add_group (ctx, gst_init_get_option_group ());
11 if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
12- g_print ("Error initializing: %s\n", err->message);
13+ g_print ("Error initializing: %s\n", err ? err->message : "(null)");
14 exit (1);
15 }
16 g_option_context_free (ctx);
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c
new file mode 100644
index 0000000000..c1f3e71af6
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.c
@@ -0,0 +1,487 @@
1/* GStreamer
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3 * 2000 Wim Taymans <wtay@chello.be>
4 * 2005 David A. Schleef <ds@schleef.org>
5 *
6 * gstregistryxml.c: GstRegistry object, support routines
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it ulnder the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
22 */
23
24
25#include <gst/gstregistrybinary.h>
26
27/*
28** Simple handy function to write a memory location to the registry cache file
29*/
30inline static gboolean
31gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size)
32{
33 if (write(registry->cache_file, mem, size) != size)
34 {
35 GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n",
36 mem, size, strerror(errno));
37 return FALSE;
38 }
39 return TRUE;
40}
41
42/*
43** Save features GstBinary style
44*/
45static gboolean
46gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name)
47{
48 GstBinaryChunck *chk;
49
50 if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
51 return FALSE;
52
53 chk->data = dest;
54 chk->size = sizeof (GstBinaryPluginFeature);
55
56 *list = g_list_append(*list, chk);
57
58 dest->rank = orig->rank;
59 if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) ||
60 !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN))
61 {
62 GST_ERROR("Failed to write binary registry feature");
63 goto fail;
64 }
65
66 if (GST_IS_ELEMENT_FACTORY(orig))
67 {
68 GstElementFactory *factory = GST_ELEMENT_FACTORY(orig);
69
70 if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) ||
71 !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) ||
72 !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) ||
73 !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN))
74 {
75 GST_ERROR("Failed to write binary registry feature");
76 goto fail;
77 }
78 }
79
80 dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0;
81 return TRUE;
82
83 fail:
84 free(chk);
85 return FALSE;
86}
87
88
89/*
90** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version
91*/
92inline static gboolean
93gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m)
94{
95 if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) ||
96 !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
97 {
98 GST_ERROR("Failed to write magic to the registry magic structure");
99 return FALSE;
100 }
101 return TRUE;
102}
103
104/*
105** Check GstBinaryRegistryMagic validity.
106** Return a pointer pointing right after the magic structure
107*/
108static gchar *
109gst_registry_binary_check_magic(gchar *in)
110{
111 GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in;
112
113 if (m == NULL || m->magic == NULL || m->version == NULL)
114 {
115 GST_ERROR("Binary registry magic structure is broken");
116 return NULL;
117 }
118 if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0)
119 {
120 GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x",
121 GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff,
122 GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff,
123 m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff);
124 return NULL;
125 }
126 if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
127 {
128 GST_ERROR("Binary registry magic version is different : %s != %s",
129 GST_MAJORMINOR, m->version);
130 return NULL;
131 }
132 return (in + sizeof (GstBinaryRegistryMagic));
133}
134
135/*
136** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the
137** registry file.
138*/
139static gboolean
140gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin)
141{
142 GstBinaryPluginElement *e;
143 GstBinaryChunck *chk;
144 GList *walk;
145
146 if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL ||
147 (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
148 return FALSE;
149
150 chk->data = e;
151 chk->size = sizeof (GstBinaryPluginElement);
152 *list = g_list_append(*list, chk);
153
154 if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) ||
155 !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) ||
156 !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) ||
157 !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) ||
158 !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) ||
159 !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) ||
160 !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) ||
161 !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN))
162 {
163 GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement");
164 goto fail;
165 }
166
167 e->size = plugin->file_size;
168 e->m32p = plugin->file_mtime;
169
170 GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name);
171
172 for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++)
173 {
174 GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data);
175 GstBinaryPluginFeature *newfeat;
176 const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat));
177
178 if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL)
179 goto fail;
180
181 if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name))
182 {
183 GST_ERROR("Can't fill plugin feature, aborting.");
184 goto fail;
185 }
186 }
187
188 GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name);
189 return TRUE;
190
191 fail:
192 free(chk);
193 free(e);
194 return FALSE;
195}
196
197/*
198** Write the cache to file. Part of the code was taken from gstregistryxml.c
199*/
200gboolean
201gst_registry_binary_write_cache(GstRegistry *registry, const char *location)
202{
203 GList *walk;
204 char *tmp_location;
205 GstBinaryRegistryMagic *magic;
206 GstBinaryChunck *magic_chunck;
207 GList *to_write = NULL;
208
209 GST_INFO("Writing binary registry cache");
210
211 g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
212 tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL);
213 registry->cache_file = g_mkstemp (tmp_location);
214 if (registry->cache_file == -1)
215 {
216 char *dir;
217
218 /* oops, I bet the directory doesn't exist */
219 dir = g_path_get_dirname (location);
220 g_mkdir_with_parents (dir, 0777);
221 g_free (dir);
222
223 registry->cache_file = g_mkstemp (tmp_location);
224 }
225
226 if (registry->cache_file == -1)
227 goto fail;
228
229 if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL ||
230 !gst_registry_binary_initialize_magic(magic))
231 goto fail;
232
233 if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL)
234 goto fail;
235
236 magic_chunck->data = magic;
237 magic_chunck->size = sizeof (GstBinaryRegistryMagic);
238 to_write = g_list_append(to_write, magic_chunck);
239
240 /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */
241 for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk))
242 {
243 GstPlugin *plugin = GST_PLUGIN(walk->data);
244
245 if (!plugin->filename)
246 continue;
247
248 if (plugin->flags & GST_PLUGIN_FLAG_CACHED)
249 {
250 int ret;
251 struct stat statbuf;
252
253 ret = g_stat (plugin->filename, &statbuf);
254 if ((ret = g_stat (plugin->filename, &statbuf)) < 0 ||
255 plugin->file_mtime != statbuf.st_mtime ||
256 plugin->file_size != statbuf.st_size)
257 continue;
258 }
259
260 if (!gst_registry_binary_save_plugin(&to_write, registry, plugin))
261 {
262 GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename);
263 continue; /* Try anyway */
264 }
265 }
266
267 for (walk = g_list_first(to_write); walk; walk = g_list_next(walk))
268 {
269 GstBinaryChunck *cur = walk->data;
270
271 if (!gst_registry_binary_write(registry, cur->data, cur->size))
272 {
273 free(cur->data);
274 free(cur);
275 g_list_free(to_write);
276 goto fail;
277 }
278 free(cur->data);
279 free(cur);
280 }
281 g_list_free(to_write);
282
283 if (close(registry->cache_file) < 0)
284 {
285 GST_DEBUG("Can't close registry file : %s", strerror(errno));
286 goto fail;
287 }
288
289 if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) {
290#ifdef WIN32
291 remove (location);
292#endif
293 rename (tmp_location, location);
294 }
295
296 g_free (tmp_location);
297 return TRUE;
298
299 fail:
300 g_free(tmp_location);
301 return FALSE;
302}
303
304static GstPluginFeature*
305gst_registry_binary_load_feature(GstBinaryPluginFeature *in)
306{
307 GstPluginFeature *feature;
308 GType type;
309
310 if (!in->typename || !*(in->typename))
311 return NULL;
312
313 /* GST_INFO("Plugin feature typename : %s", in->typename);*/
314
315 if (!(type = g_type_from_name(in->typename)))
316 {
317 GST_ERROR("Unknown type from typename");
318 return NULL;
319 }
320 feature = g_object_new (type, NULL);
321
322 if (!feature) {
323 GST_ERROR("Can't create feature from type");
324 return NULL;
325 }
326
327 if (!GST_IS_PLUGIN_FEATURE (feature)) {
328 /* don't really know what it is */
329 if (GST_IS_OBJECT (feature))
330 gst_object_unref (feature);
331 else
332 g_object_unref (feature);
333 return NULL;
334 }
335
336 feature->name = g_strdup(in->name);
337 feature->rank = in->rank;
338
339 if (GST_IS_ELEMENT_FACTORY(feature))
340 {
341 GstElementFactory *factory = GST_ELEMENT_FACTORY(feature);
342
343 factory->details.longname = g_strdup(in->longname);
344 factory->details.klass = g_strdup(in->class);
345 factory->details.description = g_strdup(in->description);
346 factory->details.author = g_strdup(in->author);
347
348 /* GST_INFO("Element factory : %s", factory->details.longname); */
349 }
350
351 GST_DEBUG("Added feature %p with name %s", feature, feature->name);
352 return feature;
353}
354
355/*
356** Make a new plugin from current GstBinaryPluginElement structure
357** and save it to the GstRegistry. Return an offset to the next
358** GstBinaryPluginElement structure.
359*/
360static unsigned long
361gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in)
362{
363 GstBinaryPluginElement *p = (GstBinaryPluginElement *) in;
364 GstPlugin *plugin = NULL;
365 GList *plugin_features = NULL;
366 GstBinaryPluginFeature *feat;
367 unsigned int i;
368 unsigned long offset;
369
370 plugin = g_object_new (GST_TYPE_PLUGIN, NULL);
371
372 plugin->flags |= GST_PLUGIN_FLAG_CACHED;
373
374 plugin->desc.name = g_strdup(p->name);
375 plugin->desc.description= g_strdup(p->description);
376 plugin->filename = g_strdup(p->filename);
377 plugin->desc.version = g_strdup(p->version);
378 plugin->desc.license = g_strdup(p->license);
379 plugin->desc.source = g_strdup(p->source);
380 plugin->desc.package = g_strdup(p->package);
381 plugin->desc.origin = g_strdup(p->origin);
382 plugin->file_mtime = p->m32p;
383 plugin->file_size = p->size;
384 plugin->basename = g_path_get_basename (plugin->filename);
385
386 if (plugin->file_mtime < 0 || plugin->file_size < 0)
387 {
388 GST_ERROR("Plugin time or file size is not valid !");
389 g_free(plugin);
390 return -1;
391 }
392
393 if (p->nfeatures < 0)
394 {
395 GST_ERROR("The number of feature structure is not valid !");
396 gst_object_unref(plugin);
397 return -1;
398 }
399
400 for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0;
401 i < p->nfeatures; i++, feat++)
402 {
403 GstPluginFeature *gstfeat;
404
405 if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL)
406 {
407 g_list_free(plugin_features);
408 g_free(plugin);
409 GST_ERROR("Error while loading binary feature");
410 return -1;
411 }
412 gstfeat->plugin_name = g_strdup(plugin->desc.name);
413 plugin_features = g_list_prepend(plugin_features, gstfeat);
414 }
415
416 GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name);
417 GList *g;
418
419 gst_registry_add_plugin (registry, plugin);
420 for (g = plugin_features; g; g = g_list_next (g))
421 gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data));
422 /* g_list_free(plugin_features); */
423
424 offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature);
425 return offset;
426}
427
428
429/*
430** Read the cache and adapt it to fill GstRegistry
431*/
432gboolean
433gst_registry_binary_read_cache(GstRegistry *registry, const char *location)
434{
435 GMappedFile *mapped = NULL;
436 GTimer *timer = NULL;
437 gchar *contents = NULL;
438 gdouble seconds;
439 unsigned long offset, inc;
440 gsize size;
441
442 /* make sure these types exist */
443 GST_TYPE_ELEMENT_FACTORY;
444 GST_TYPE_TYPE_FIND_FACTORY;
445 GST_TYPE_INDEX_FACTORY;
446
447 timer = g_timer_new ();
448
449 if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL ||
450 (contents = g_mapped_file_get_contents(mapped)) == NULL)
451 {
452 GST_ERROR("Can't load file : %s", strerror(errno));
453 return FALSE;
454 }
455 if ((contents = gst_registry_binary_check_magic(contents)) == NULL)
456 {
457 GST_ERROR("Binary registry type not recognized (invalid magic)");
458 g_mapped_file_free(mapped);
459 return FALSE;
460 }
461
462 if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement))
463 {
464 GST_INFO("No binary plugins structure to read");
465 return TRUE; /* This is not really an error */
466 }
467
468 for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size &&
469 (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0;
470 offset += inc)
471 ; /* May want in the future to do something here */
472 if (inc < 0)
473 {
474 GST_DEBUG("Problem while reading binary registry");
475 return FALSE;
476 }
477
478 g_timer_stop (timer);
479 seconds = g_timer_elapsed (timer, NULL);
480 g_timer_destroy (timer);
481
482 GST_INFO ("loaded %s in %f seconds", location, seconds);
483
484 if (mapped)
485 g_mapped_file_free (mapped);
486 return TRUE;
487}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h
new file mode 100644
index 0000000000..2ef24d765d
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer-0.10.36/gstregistrybinary.h
@@ -0,0 +1,194 @@
1/* GStreamer
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3 * 2000 Wim Taymans <wim.taymans@chello.be>
4 *
5 * gstregistry.h: Header for registry handling
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
22
23/* SUGGESTIONS AND TODO :
24** ====================
25** - Use a compressed registry, but would induce performance loss
26** - Encrypt the registry, for security purpose, but would also reduce performances
27** - Also have a non-mmap based cache reading (work with file descriptors)
28*/
29
30#ifndef __GST_REGISTRYBINARY_H__
31#define __GST_REGISTRYBINARY_H__
32
33#ifdef HAVE_CONFIG_H
34# include "config.h"
35#endif
36
37#include <stdio.h>
38#include <errno.h>
39#include <sys/types.h>
40#include <sys/stat.h>
41#include <dirent.h>
42#include <fcntl.h>
43#include <sys/mman.h>
44#ifdef HAVE_UNISTD_H
45#include <unistd.h>
46#endif
47
48#include <gst/gst_private.h>
49#include <gst/gstelement.h>
50#include <gst/gsttypefind.h>
51#include <gst/gsttypefindfactory.h>
52#include <gst/gsturi.h>
53#include <gst/gstinfo.h>
54#include <gst/gstenumtypes.h>
55#include <gst/gstregistry.h>
56#include <gst/gstpadtemplate.h>
57
58#include "glib-compat-private.h"
59#include <glib/gstdio.h>
60
61/* A magic, written at the beginning of the file */
62#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d"
63#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
64#define GST_MAGIC_BINARY_VERSION_LEN (64)
65
66typedef struct _GstBinaryRegistryMagic
67{
68 char magic[GST_MAGIC_BINARY_REGISTRY_LEN];
69 char version[GST_MAGIC_BINARY_VERSION_LEN];
70} GstBinaryRegistryMagic;
71
72
73/* Used to store pointers to write */
74typedef struct _GstBinaryChunck
75{
76 void *data;
77 unsigned int size;
78} GstBinaryChunck;
79
80
81/* A structure containing (staticely) every information needed for a plugin
82**
83** Notes :
84** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have
85** right after the structure itself.
86*/
87
88/* Various lenght defines for our GstBinaryPluginElement structure
89** Note : We could eventually use smaller size
90*/
91#define GST_BINARY_REGISTRY_NAME_LEN (256)
92#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024)
93#define GST_BINARY_REGISTRY_VERSION_LEN (64)
94#define GST_BINARY_REGISTRY_LICENSE_LEN (256)
95#define GST_BINARY_REGISTRY_SOURCE_LEN (256)
96#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024)
97#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024)
98
99typedef struct _GstBinaryPluginElement
100{
101 char name[GST_BINARY_REGISTRY_NAME_LEN];
102 char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN];
103 char filename[_POSIX_PATH_MAX];
104 char version[GST_BINARY_REGISTRY_VERSION_LEN];
105 char license[GST_BINARY_REGISTRY_LICENSE_LEN];
106 char source[GST_BINARY_REGISTRY_SOURCE_LEN];
107 char package[GST_BINARY_REGISTRY_PACKAGE_LEN];
108 char origin[GST_BINARY_REGISTRY_ORIGIN_LEN];
109 unsigned long size;
110 unsigned long m32p;
111 unsigned int nfeatures;
112} GstBinaryPluginElement;
113
114
115/* A structure containing the plugin features
116**
117** Note :
118** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself.
119** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself.
120** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself.
121*/
122#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256)
123#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256)
124#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024)
125#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512)
126#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024)
127#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256)
128
129typedef struct _GstBinaryPluginFeature
130{
131 char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN];
132 char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN];
133 unsigned long rank;
134 char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN];
135 char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN];
136 char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN];
137 char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN];
138 unsigned int npadtemplates;
139 unsigned int ninterfaces;
140 unsigned int nuritypes;
141} GstBinaryPluginFeature;
142
143
144/*
145** A structure containing the static pad templates of a plugin feature
146*/
147#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256)
148#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024)
149
150typedef struct _GstBinaryPadTemplate
151{
152 char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN];
153 char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN];
154 int direction; /* Either 0:"sink" or 1:"src" */
155 GstPadPresence presence;
156} GstBinaryPadTemplate;
157
158/*
159** A very simple structure defining the plugin feature interface string
160*/
161#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512)
162typedef struct _GstBinaryInterface
163{
164 char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN];
165 unsigned long size;
166} GstBinaryInterface;
167
168/* Uri Type */
169typedef struct _GstBinaryUriType
170{
171 GstURIType type;
172 unsigned long nuriprotocols;
173} GstBinaryUriType;
174
175/*
176** Function prototypes
177*/
178
179/* Local prototypes */
180inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size);
181inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m);
182static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *);
183static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin);
184static gchar *gst_registry_binary_check_magic(gchar *in);
185static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *);
186static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in);
187
188/* Exportable */
189gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location);
190gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location);
191
192#endif /* !__GST_REGISTRYBINARY_H__ */
193
194
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
new file mode 100644
index 0000000000..84e6e95d36
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav.inc
@@ -0,0 +1,32 @@
1SUMMARY = "Libav-based GStreamer 1.x plugin"
2SECTION = "multimedia"
3LICENSE = "GPLv2+ & LGPLv2+ & ( (GPLv2+ & LGPLv2.1+) | (GPLv3+ & LGPLv3+) )"
4LICENSE_FLAGS = "commercial"
5HOMEPAGE = "http://www.gstreamer.net/"
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base zlib bzip2"
7
8inherit autotools pkgconfig
9
10# CAUTION: Using the system libav is not recommended. Since the libav API is changing all the time,
11# compilation errors (and other, more subtle bugs) can happen. It is usually better to rely on the
12# libav copy included in the gst-libav package.
13PACKAGECONFIG ??= " orc yasm "
14PACKAGECONFIG[libav] = "--with-system-libav,,libav"
15PACKAGECONFIG[lgpl] = "--enable-lgpl,,"
16PACKAGECONFIG[yasm] = "--enable-yasm,--disable-yasm,yasm-native"
17PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
18
19
20GSTREAMER_1_0_DEBUG ?= "--disable-debug"
21
22LIBAV_EXTRA_CONFIGURE = "--with-libav-extra-configure"
23LIBAV_EXTRA_CONFIGURE_COMMON = \
24'${LIBAV_EXTRA_CONFIGURE}="${LIBAV_EXTRA_CONFIGURE_COMMON_ARG}"'
25
26EXTRA_OECONF = "${LIBAV_EXTRA_CONFIGURE_COMMON}"
27
28FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
29FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
30FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
31FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
32
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
new file mode 100644
index 0000000000..1d99ad1251
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav/0001-Disable-yasm-for-libav-when-disable-yasm.patch
@@ -0,0 +1,33 @@
1From 54bba228ea52d01fd84941d97be23c03f9862b64 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 6 Apr 2013 01:22:22 +0200
4Subject: [PATCH] Disable yasm for libav when --disable-yasm
5
6Upstream-Status: Inappropriate [configuration]
7
8Signed-off-by: Shane Wang <shane.wang@intel.com>
9Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
10---
11 configure.ac | 4 ++++
12 1 file changed, 4 insertions(+)
13
14diff --git a/configure.ac b/configure.ac
15index 22ede88..ef3c050 100644
16--- a/configure.ac
17+++ b/configure.ac
18@@ -305,6 +305,12 @@ else
19 emblibav_configure_args="$emblibav_configure_args --enable-gpl"
20 fi
21
22+ AC_ARG_ENABLE(yasm,
23+ [AC_HELP_STRING([--disable-yasm], [disable use of yasm assembler])])
24+ if test "x$enable_yasm" = "xno"; then
25+ emblibav_configure_args="$emblibav_configure_args --disable-yasm"
26+ fi
27+
28 # if we are cross-compiling, tell libav so
29 case $host in
30 *android*)
31--
321.8.2
33
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb
new file mode 100644
index 0000000000..9561e38c85
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.2.3.bb
@@ -0,0 +1,24 @@
1include gstreamer1.0-libav.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
4 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
5 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
6 file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
7 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
8 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
9 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
10 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
11
12SRC_URI = " \
13 http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
14 file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
15 "
16SRC_URI[md5sum] = "58c7998a054d8d8ca041fa35738f72b6"
17SRC_URI[sha256sum] = "ebc7fbe10955f40df6ccc4bf689075e7e296205fc7ecd8ff383d43c5cdf5bcd6"
18LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
19 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
20 --ranlib='${RANLIB}' \
21 ${GSTREAMER_1_0_DEBUG}"
22
23S = "${WORKDIR}/gst-libav-${PV}"
24
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
new file mode 100644
index 0000000000..5ce28ccbe7
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
@@ -0,0 +1,27 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-libav.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
6 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
7 file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
8 file://gst-libs/ext/libav/LICENSE;md5=23a54f59b82572c203a559346e89ed57 \
9 file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
10 file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
11 file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
12 file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
13
14SRC_URI = "git://anongit.freedesktop.org/gstreamer/gst-libav;branch=master"
15S = "${WORKDIR}/git"
16
17SRCREV = "127202d6f65584891dabf92be031f0d170b0e7f1"
18
19LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
20 --cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
21 ${GSTREAMER_1_0_DEBUG}"
22
23do_configure() {
24 ./autogen.sh --noconfigure
25 oe_runconf
26}
27
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
new file mode 100644
index 0000000000..cb8dd1ac5f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-meta-base.bb
@@ -0,0 +1,62 @@
1DESCRIPTION = "Gstreamer1.0 package groups"
2LICENSE = "MIT"
3
4inherit packagegroup
5
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad"
7
8PACKAGES = "\
9 gstreamer1.0-meta-base \
10 gstreamer1.0-meta-x11-base \
11 gstreamer1.0-meta-audio \
12 gstreamer1.0-meta-debug \
13 gstreamer1.0-meta-video"
14
15ALLOW_EMPTY_gstreamer1.0-meta-base = "1"
16ALLOW_EMPTY_gstreamer1.0-meta-x11-base = "1"
17ALLOW_EMPTY_gstreamer1.0-meta-audio = "1"
18ALLOW_EMPTY_gstreamer1.0-meta-debug = "1"
19ALLOW_EMPTY_gstreamer1.0-meta-video = "1"
20
21RDEPENDS_gstreamer1.0-meta-base = "\
22 ${@base_contains('DISTRO_FEATURES', 'x11', 'gstreamer1.0-meta-x11-base', '', d)} \
23 gstreamer1.0 \
24 gstreamer1.0-plugins-base-playback \
25 gstreamer1.0-plugins-base-gio \
26 gstreamer1.0-plugins-base-alsa \
27 gstreamer1.0-plugins-base-volume \
28 gstreamer1.0-plugins-base-audioconvert \
29 gstreamer1.0-plugins-base-audioresample \
30 gstreamer1.0-plugins-base-typefindfunctions \
31 gstreamer1.0-plugins-base-videoscale \
32 gstreamer1.0-plugins-base-videoconvert \
33 gstreamer1.0-plugins-good-autodetect \
34 gstreamer1.0-plugins-good-souphttpsrc"
35
36RRECOMMENDS_gstreamer1.0-meta-x11-base = "\
37 gstreamer1.0-plugins-base-ximagesink \
38 gstreamer1.0-plugins-base-xvimagesink"
39
40RDEPENDS_gstreamer1.0-meta-audio = "\
41 gstreamer1.0-meta-base \
42 gstreamer1.0-plugins-base-vorbis \
43 gstreamer1.0-plugins-base-ogg \
44 gstreamer1.0-plugins-good-wavparse \
45 gstreamer1.0-plugins-good-flac \
46 ${COMMERCIAL_AUDIO_PLUGINS}"
47
48RDEPENDS_gstreamer1.0-meta-debug = "\
49 gstreamer1.0-meta-base \
50 gstreamer1.0-plugins-good-debug \
51 gstreamer1.0-plugins-base-audiotestsrc \
52 gstreamer1.0-plugins-base-videotestsrc"
53
54RDEPENDS_gstreamer1.0-meta-video = "\
55 gstreamer1.0-meta-base \
56 gstreamer1.0-plugins-good-avi \
57 gstreamer1.0-plugins-good-matroska \
58 gstreamer1.0-plugins-base-theora \
59 ${COMMERCIAL_VIDEO_PLUGINS}"
60
61RRECOMMENDS_gstreamer1.0-meta-video = "\
62 gstreamer1.0-meta-audio"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
new file mode 100644
index 0000000000..b76786bddb
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx.inc
@@ -0,0 +1,42 @@
1SUMMARY = "OpenMAX IL plugins for GStreamer"
2SECTION = "multimedia"
3LICENSE = "LGPLv2.1"
4LICENSE_FLAGS = "commercial"
5HOMEPAGE = "http://www.gstreamer.net/"
6DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
7RDEPENDS_${PN} = "libomxil"
8
9inherit autotools pkgconfig gettext
10
11acpaths = "-I ${S}/common/m4 -I ${S}/m4"
12
13PR = "r1"
14
15GSTREAMER_1_0_OMX_TARGET ?= "bellagio"
16GSTREAMER_1_0_OMX_CORE_NAME ?= "/usr/lib/libomxil-bellagio.so.0"
17
18EXTRA_OECONF += "--disable-valgrind --with-omx-target=${GSTREAMER_1_0_OMX_TARGET}"
19
20python __anonymous () {
21 omx_target = d.getVar("GSTREAMER_1_0_OMX_TARGET", True)
22 if omx_target in ['generic', 'bellagio']:
23 srcdir = d.getVar("S", True)
24 # Bellagio headers are incomplete (they are missing the OMX_VERSION_MAJOR,#
25 # OMX_VERSION_MINOR, OMX_VERSION_REVISION, and OMX_VERSION_STEP macros);
26 # appending a directory path to gst-omx' internal OpenMAX IL headers fixes this
27 d.appendVar("CFLAGS", " -I%s/omx/openmax" % srcdir)
28 elif omx_target == "rpi":
29 # Dedicated Raspberry Pi OpenMAX IL support makes this package machine specific
30 d.setVar("PACKAGE_ARCH", d.getVar("MACHINE_ARCH", True))
31}
32
33set_omx_core_name() {
34 sed -i -e "s;^core-name=.*;core-name=${GSTREAMER_1_0_OMX_CORE_NAME};" "${D}/etc/xdg/gstomx.conf"
35}
36do_install[postfuncs] += " set_omx_core_name "
37
38FILES_${PN} += "${libdir}/gstreamer-1.0/*.so"
39FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug"
40FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
41FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a"
42
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch
new file mode 100644
index 0000000000..a428ac9c91
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx/0001-omx-fixed-type-error-in-printf-call.patch
@@ -0,0 +1,30 @@
1From f629e041e9f678fcd86ad764a15117dff63c271c Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 27 Apr 2013 02:50:25 +0200
4Subject: [PATCH] omx: fixed type error in printf call
5
6%zu expects size_t
7
8Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=699008]
9
10Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
11---
12 omx/gstomx.c | 2 +-
13 1 file changed, 1 insertion(+), 1 deletion(-)
14
15diff --git a/omx/gstomx.c b/omx/gstomx.c
16index a2945ed..1eca7cc 100644
17--- a/omx/gstomx.c
18+++ b/omx/gstomx.c
19@@ -1630,7 +1630,7 @@ gst_omx_port_allocate_buffers_unlocked (GstOMXPort * port,
20
21 GST_INFO_OBJECT (comp->parent,
22 "Allocating %d buffers of size %zu for %s port %u", n,
23- port->port_def.nBufferSize, comp->name, (guint) port->index);
24+ (size_t) (port->port_def.nBufferSize), comp->name, (guint) port->index);
25
26 if (!port->buffers)
27 port->buffers = g_ptr_array_sized_new (n);
28--
291.7.9.5
30
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb
new file mode 100644
index 0000000000..f5956c66df
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.0.0.bb
@@ -0,0 +1,12 @@
1include gstreamer1.0-omx.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
4 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
5
6SRC_URI = "http://gstreamer.freedesktop.org/src/gst-omx/gst-omx-${PV}.tar.xz"
7
8SRC_URI[md5sum] = "bb34b5742223267298bcffc209104a92"
9SRC_URI[sha256sum] = "7a1d8d28d70dacc6bd3c7ee7d7e40df6d5a1d38d7c256d5c9c5c8ef15c005014"
10
11S = "${WORKDIR}/gst-omx-${PV}"
12
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
new file mode 100644
index 0000000000..11c77aeada
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
@@ -0,0 +1,22 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-omx.inc
4
5DEPENDS = "gstreamer1.0-plugins-bad"
6
7LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
8 file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
9
10SRC_URI = " \
11 git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master \
12 file://0001-omx-fixed-type-error-in-printf-call.patch \
13 "
14S = "${WORKDIR}/git"
15
16SRCREV = "a2db76b048db278ef0aa798e106b7594264e06c0"
17
18do_configure() {
19 ./autogen.sh --noconfigure
20 oe_runconf
21}
22
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
new file mode 100644
index 0000000000..08440a2536
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
@@ -0,0 +1,120 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
4
5DEPENDS += "gstreamer1.0-plugins-base bzip2"
6
7S = "${WORKDIR}/gst-plugins-bad-${PV}"
8
9inherit gettext
10
11
12PACKAGECONFIG ??= " \
13 ${@base_contains('DISTRO_FEATURES', 'wayland', 'wayland', '', d)} \
14 ${@base_contains('DISTRO_FEATURES', 'opengl', 'eglgles', '', d)} \
15 ${@base_contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
16 ${@base_contains('DISTRO_FEATURES', 'directfb', 'directfb', '', d)} \
17 orc curl uvch264 neon \
18 hls sbc dash bz2 smoothstreaming \
19 "
20# dash = Dynamic Adaptive Streaming over HTTP
21PACKAGECONFIG[assrender] = "--enable-assrender,--disable-assrender,libass"
22PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
23PACKAGECONFIG[eglgles] = "--enable-eglgles,--disable-eglgles,virtual/egl virtual/libgles2"
24PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac"
25PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
26PACKAGECONFIG[libmms] = "--enable-libmms,--disable-libmms,libmms"
27PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
28PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123"
29PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
30PACKAGECONFIG[flite] = "--enable-flite,--disable-flite,flite-alsa"
31PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
32PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland"
33PACKAGECONFIG[uvch264] = "--enable-uvch264,--disable-uvch264,libusb1 udev"
34PACKAGECONFIG[directfb] = "--enable-directfb,--disable-directfb,directfb"
35PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
36PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
37PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
38PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
39PACKAGECONFIG[dash] = "--enable-dash,--disable-dash,libxml2"
40PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2"
41PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
42PACKAGECONFIG[schroedinger] = "--enable-schro,--disable-schro,schroedinger"
43PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
44PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
45PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg"
46
47# these plugins have not been ported to 1.0 (yet):
48# directdraw vcd apexsink cdaudio dc1394 lv2 linsys musepack mythtv
49# nas timidity teletextdec sdl sndfile xvid wininet acm gsettings
50# sndio cdxaparse dccp faceoverlay hdvparse ivfparse jp2kdecimator
51# linsys mve nuvdemux osx_video patchdetect quicktime real sdi stereo
52# tta videomeasure videosignal vmnc
53
54EXTRA_OECONF += " \
55 --enable-dvb \
56 --enable-shm \
57 --enable-mfc \
58 --enable-fbdev \
59 --enable-decklink \
60 --disable-acm \
61 --disable-android_media \
62 --disable-apexsink \
63 --disable-apple_media \
64 --disable-avc \
65 --disable-cdaudio \
66 --disable-chromaprint \
67 --disable-daala \
68 --disable-dc1394 \
69 --disable-direct3d \
70 --disable-directdraw \
71 --disable-directshow \
72 --disable-directsound \
73 --disable-dts \
74 --disable-gme \
75 --disable-gsettings \
76 --disable-gsm \
77 --disable-kate \
78 --disable-ladspa \
79 --disable-linsys \
80 --disable-lv2 \
81 --disable-mimic \
82 --disable-mpeg2enc \
83 --disable-mplex \
84 --disable-musepack \
85 --disable-mythtv \
86 --disable-nas \
87 --disable-ofa \
88 --disable-openjpeg \
89 --disable-opensles \
90 --disable-osx_video \
91 --disable-pvr \
92 --disable-quicktime \
93 --disable-resindvd \
94 --disable-rtmp \
95 --disable-sdl \
96 --disable-sdltest \
97 --disable-sndfile \
98 --disable-sndio \
99 --disable-soundtouch \
100 --disable-spandsp \
101 --disable-spc \
102 --disable-srtp \
103 --disable-teletextdec \
104 --disable-timidity \
105 --disable-vcd \
106 --disable-vdpau \
107 --disable-voaacenc \
108 --disable-voamrwbenc \
109 --disable-wasapi \
110 --disable-webp \
111 --disable-wildmidi \
112 --disable-wininet \
113 --disable-winscreencap \
114 --disable-xvid \
115 --disable-zbar \
116 ${GSTREAMER_1_0_ORC} \
117 "
118
119ARM_INSTRUCTION_SET = "arm"
120
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb
new file mode 100644
index 0000000000..a19988ca6f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.2.3.bb
@@ -0,0 +1,10 @@
1include gstreamer1.0-plugins-bad.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
4 file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \
5 file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
6 file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50"
7SRC_URI[md5sum] = "cfd6f303c8df2740b27cc63b945decef"
8SRC_URI[sha256sum] = "595d7911a9e6207dea37200587724bdbf841b81a5eb0730118be36976684278c"
9S = "${WORKDIR}/gst-plugins-bad-${PV}"
10
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
new file mode 100644
index 0000000000..e1a5904abf
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
@@ -0,0 +1,26 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-bad.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
6 file://gst/tta/filters.h;beginline=12;endline=29;md5=8a08270656f2f8ad7bb3655b83138e5a \
7 file://COPYING.LIB;md5=21682e4e8fea52413fd26c60acb907e5 \
8 file://gst/tta/crc32.h;beginline=12;endline=29;md5=27db269c575d1e5317fffca2d33b3b50"
9
10S = "${WORKDIR}/git"
11
12SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce"
13
14PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
15PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
16PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
17
18EXTRA_OECONF += " \
19 -disable-openjpeg \
20 "
21
22do_configure() {
23 ./autogen.sh --noconfigure
24 oe_runconf
25}
26
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
new file mode 100644
index 0000000000..b56c506486
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
@@ -0,0 +1,39 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2+"
4
5DEPENDS += "${@base_contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxv', '', d)}"
6DEPENDS += "freetype liboil util-linux"
7
8inherit gettext
9
10PACKAGES_DYNAMIC =+ "^libgst.*"
11
12PACKAGECONFIG ??= " \
13 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
14 ${@base_contains('DISTRO_FEATURES', 'alsa', 'alsa', '', d)} \
15 orc ivorbis ogg theora vorbis \
16 "
17
18X11DEPENDS = "virtual/libx11 libsm libxrender"
19X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm"
20X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm"
21PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
22PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
23PACKAGECONFIG[ivorbis] = "--enable-ivorbis,--disable-ivorbis,tremor"
24PACKAGECONFIG[ogg] = "--enable-ogg,--disable-ogg,libogg"
25PACKAGECONFIG[theora] = "--enable-theora,--disable-theora,libtheora"
26PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis"
27PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
28
29
30# cdparanoia and libvisual do not seem to exist anywhere in OE
31EXTRA_OECONF += " \
32 --disable-freetypetest \
33 --disable-cdparanoia \
34 --disable-libvisual \
35 ${GSTREAMER_1_0_ORC} \
36"
37
38FILES_${PN} += "${datadir}/gst-plugins-base"
39
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb
new file mode 100644
index 0000000000..4ef34cfe85
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.2.3.bb
@@ -0,0 +1,9 @@
1include gstreamer1.0-plugins-base.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
4 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
5 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
6 "
7SRC_URI[md5sum] = "17aeabfbcd232526f50c9bee375f1b97"
8SRC_URI[sha256sum] = "61edec35c270f86928bad434bd059da4efff865d1ef01bcc64ecbd903625dae1"
9S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
new file mode 100644
index 0000000000..a894abe501
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_git.bb
@@ -0,0 +1,18 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-base.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
6 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
7 file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
8 "
9
10S = "${WORKDIR}/git"
11
12SRCREV = "8d4cb64a4b9d84b10076bf350f80a0d6ea68ec2d"
13
14do_configure() {
15 ./autogen.sh --noconfigure
16 oe_runconf
17}
18
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
new file mode 100644
index 0000000000..06de4da5dd
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
@@ -0,0 +1,56 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+"
4
5# libid3tag
6DEPENDS += "gstreamer1.0-plugins-base zlib bzip2"
7
8inherit gettext
9
10
11PACKAGECONFIG ??= " \
12 ${@base_contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
13 ${@base_contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
14 orc cairo flac gdk-pixbuf jpeg libpng soup speex taglib \
15 "
16
17X11DEPENDS = "virtual/libx11 libsm libxrender"
18X11ENABLEOPTS = "--enable-x --enable-xvideo --enable-xshm"
19X11DISABLEOPTS = "--disable-x --disable-xvideo --disable-xshm"
20PACKAGECONFIG[x11] = "${X11ENABLEOPTS},${X11DISABLEOPTS},${X11DEPENDS}"
21PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
22PACKAGECONFIG[cairo] = "--enable-cairo,--disable-cairo,cairo"
23PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac"
24PACKAGECONFIG[gdk-pixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
25PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
26PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
27PACKAGECONFIG[libpng] = "--enable-libpng,--disable-libpng,libpng"
28PACKAGECONFIG[soup] = "--enable-soup,--disable-soup,libsoup-2.4"
29PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
30PACKAGECONFIG[taglib] = "--enable-taglib,--disable-taglib,taglib"
31PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx,libvpx"
32PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
33
34# the 1394 plugins require both libraw1394 and libiec61883
35# the former is included in meta-oe, the latter isn't
36# -> disabled
37
38EXTRA_OECONF += " \
39 --enable-oss \
40 --enable-gst_v4l2 \
41 --without-libv4l2 \
42 --disable-directsound \
43 --disable-waveform \
44 --disable-oss4 \
45 --disable-sunaudio \
46 --disable-osx_audio \
47 --disable-osx_video \
48 --disable-aalib \
49 --disable-libcaca \
50 --disable-libdv \
51 --disable-shout2 \
52 --disable-examples \
53 --disable-dv1394 \
54 ${GSTREAMER_1_0_ORC} \
55"
56
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb
new file mode 100644
index 0000000000..d5e4b6a300
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.2.3.bb
@@ -0,0 +1,9 @@
1include gstreamer1.0-plugins-good.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
5 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
6SRC_URI[md5sum] = "1a1f96bc27ad446e559474299160a9a8"
7SRC_URI[sha256sum] = "bfb33536a515bdcc34482f64b8d9cc3e47c753878b254923b419bc2f7485e470"
8S = "${WORKDIR}/gst-plugins-good-${PV}"
9
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
new file mode 100644
index 0000000000..8b11b20b1b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_git.bb
@@ -0,0 +1,17 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-good.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=a4e1830fce078028c8f0974161272607 \
7 file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
8
9S = "${WORKDIR}/git"
10
11SRCREV = "fd0123800c8c1cf1468c0fa5d592ad0d0d8b4140"
12
13do_configure() {
14 ./autogen.sh --noconfigure
15 oe_runconf
16}
17
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
new file mode 100644
index 0000000000..0dd011bf33
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly.inc
@@ -0,0 +1,31 @@
1require gstreamer1.0-plugins.inc
2
3LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
4LICENSE_FLAGS = "commercial"
5
6DEPENDS += "gstreamer1.0-plugins-base libid3tag"
7
8inherit gettext
9
10
11PACKAGECONFIG ??= " \
12 orc a52dec lame mad mpeg2dec \
13 "
14
15PACKAGECONFIG[a52dec] = "--enable-a52dec,--disable-a52dec,liba52"
16PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
17PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
18PACKAGECONFIG[lame] = "--enable-lame,--disable-lame,lame"
19PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
20PACKAGECONFIG[mpeg2dec] = "--enable-mpeg2dec,--disable-mpeg2dec,mpeg2dec"
21PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
22
23
24EXTRA_OECONF += " \
25 --disable-amrnb \
26 --disable-amrwb \
27 --disable-sidplay \
28 --disable-twolame \
29 ${GSTREAMER_1_0_ORC} \
30 "
31
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb
new file mode 100644
index 0000000000..33fd5ad50b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.2.3.bb
@@ -0,0 +1,8 @@
1include gstreamer1.0-plugins-ugly.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
4 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 "
5SRC_URI[md5sum] = "7ae60e2f759f58f32af5fcdc3c9193c4"
6SRC_URI[sha256sum] = "537b0a7607eee499026388bb705b5b68985a3fd59fe22ee09accaf8cdf57eb3b"
7S = "${WORKDIR}/gst-plugins-ugly-${PV}"
8
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
new file mode 100644
index 0000000000..2f72497363
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_git.bb
@@ -0,0 +1,16 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0-plugins-ugly.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
6 file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 "
7
8S = "${WORKDIR}/git"
9
10SRCREV = "06b8ac10cee85c5c304ca320997aa8f44295a66f"
11
12do_configure() {
13 ./autogen.sh --noconfigure
14 oe_runconf
15}
16
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
new file mode 100644
index 0000000000..4ab8ea8eb3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins.inc
@@ -0,0 +1,59 @@
1SUMMARY = "Plugins for the GStreamer multimedia framework 1.x"
2HOMEPAGE = "http://gstreamer.freedesktop.org/"
3BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
4SECTION = "multimedia"
5DEPENDS = "gstreamer1.0"
6
7inherit autotools pkgconfig
8
9FILESPATH =. "${FILE_DIRNAME}/gst-plugins:"
10
11GSTREAMER_1_0_DEBUG ?= "--disable-debug"
12GSTREAMER_1_0_GIT_BRANCH ?= "master"
13EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_1_0_DEBUG} --disable-examples "
14
15acpaths = "-I ${S}/common/m4 -I ${S}/m4"
16
17LIBV = "1.0"
18require gst-plugins-package.inc
19
20PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
21
22PACKAGES_DYNAMIC = "^${PN}-.*"
23
24# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
25# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
26# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
27oe_runconf_prepend() {
28 if [ -e ${S}/po/Makefile.in.in ]; then
29 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
30 fi
31}
32
33SRC_URI = "${@get_gst_srcuri(d)}"
34
35def get_gst_srcuri(d):
36 # check if expected prefix is present
37 prefix = "gstreamer1.0-"
38 bpn = d.getVar("BPN", True)
39 if not bpn.startswith(prefix):
40 bb.fatal('Invalid GStreamer 1.0 plugin package name "%s" : must start with "%s"' % (bpn, prefix))
41
42 # replaced prefix with "gst-", which is what is used for the tarball and repository filenames
43 gstpkg_basename = "gst-" + bpn[len(prefix):]
44 pv = d.getVar("PV", True)
45 branch = d.getVar("GSTREAMER_1_0_GIT_BRANCH", True)
46
47 if pv == "git":
48 s = "git://anongit.freedesktop.org/gstreamer/%s;branch=%s" % (gstpkg_basename, branch)
49 else:
50 s = "http://gstreamer.freedesktop.org/src/%s/%s-%s.tar.xz" % (gstpkg_basename, gstpkg_basename, pv)
51 return s
52
53delete_liblink_m4_file() {
54 # This m4 file contains nastiness which conflicts with libtool 2.2.2
55 rm "${S}/m4/lib-link.m4" || true
56}
57
58do_configure[prefuncs] += " delete_liblink_m4_file "
59
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
new file mode 100644
index 0000000000..a01c33ce5f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0.inc
@@ -0,0 +1,27 @@
1SUMMARY = "GStreamer 1.0 multimedia framework"
2DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
3It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia"
7LICENSE = "LGPLv2+"
8DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
9
10inherit autotools pkgconfig gettext
11
12GSTREAMER_1_DEBUG ?= "--disable-debug"
13EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
14 --disable-dependency-tracking --disable-check \
15 --disable-examples --disable-tests \
16 --disable-valgrind ${GSTREAMER_1_DEBUG} \
17 "
18
19RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
20RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
21
22CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
23
24FILES_${PN} += " ${libdir}/gstreamer-1.0/*.so"
25FILES_${PN}-dev += " ${libdir}/gstreamer-1.0/*.la ${libdir}/gstreamer-1.0/*.a"
26FILES_${PN}-dbg += " ${libdir}/gstreamer-1.0/.debug/ ${libexecdir}/gstreamer-1.0/.debug/"
27
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
new file mode 100644
index 0000000000..94f5cc56e8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-Fix-crash-with-gst-inspect.patch
@@ -0,0 +1,28 @@
1From 6b26f3dbf9bf577d71534ab7410de66d06e46ba2 Mon Sep 17 00:00:00 2001
2From: Carlos Rafael Giani <dv@pseudoterminal.org>
3Date: Sat, 6 Apr 2013 23:52:11 +0200
4Subject: [PATCH] Fix crash with gst-inspect Chris Lord <chris@openedhand.com>
5
6Upstream-Status: Pending
7
8Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
9---
10 tools/gst-inspect.c | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c
14index 23b7c44..b79b02e 100644
15--- a/tools/gst-inspect.c
16+++ b/tools/gst-inspect.c
17@@ -1556,7 +1556,7 @@ main (int argc, char *argv[])
18 g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
19 g_option_context_add_group (ctx, gst_init_get_option_group ());
20 if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
21- g_printerr ("Error initializing: %s\n", err->message);
22+ g_printerr ("Error initializing: %s\n", err ? err->message : "(null)");
23 return -1;
24 }
25 g_option_context_free (ctx);
26--
271.8.2
28
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb
new file mode 100644
index 0000000000..f2c1db505b
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.2.3.bb
@@ -0,0 +1,13 @@
1include gstreamer1.0.inc
2
3LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
4 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
5
6SRC_URI = " \
7 http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
8 file://0001-Fix-crash-with-gst-inspect.patch \
9 "
10SRC_URI[md5sum] = "8155b9c7574ccaa361cc504e8e0e72dc"
11SRC_URI[sha256sum] = "0f9a9817a384b3448c368c23345e5122435caef9c00f1c40d7b1953827b0d8eb"
12S = "${WORKDIR}/gstreamer-${PV}"
13
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
new file mode 100644
index 0000000000..424c90a9e8
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_git.bb
@@ -0,0 +1,17 @@
1DEFAULT_PREFERENCE = "-1"
2
3include gstreamer1.0.inc
4
5LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
6 file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
7
8SRC_URI = "git://anongit.freedesktop.org/gstreamer/gstreamer;branch=master"
9S = "${WORKDIR}/git"
10
11SRCREV = "3b8181a8c550e74acaba4e8c55bdc649fa551dc9"
12
13do_configure() {
14 ./autogen.sh --noconfigure
15 oe_runconf
16}
17
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
new file mode 100644
index 0000000000..99eee81761
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer_0.10.36.bb
@@ -0,0 +1,48 @@
1SUMMARY = "GStreamer multimedia framework"
2DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
3It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
4HOMEPAGE = "http://gstreamer.freedesktop.org/"
5BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
6SECTION = "multimedia"
7LICENSE = "LGPLv2+"
8LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
9 file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
10DEPENDS = "glib-2.0 libxml2 bison-native flex-native"
11
12PR = "r2"
13
14SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
15 file://check_fix.patch \
16 file://gst-inspect-check-error.patch"
17
18SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
19SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30"
20
21inherit autotools pkgconfig gettext
22
23GSTREAMER_DEBUG ?= "--disable-debug"
24EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
25 --disable-dependency-tracking --disable-check \
26 --disable-examples --disable-tests \
27 --disable-valgrind ${GSTREAMER_DEBUG} \
28 "
29
30CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
31
32# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
33# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
34# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
35oe_runconf_prepend() {
36 sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
37}
38
39#do_compile_prepend () {
40# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/
41#}
42
43RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
44RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
45
46FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
47FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
48FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"