From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb | 14 + .../gst-fluendo-mpegdemux_0.10.85.bb | 12 + .../gstreamer-0.10/gst-fluendo.inc | 14 + .../gstreamer-0.10/gst-meta-base_0.10.bb | 73 +++ .../gstreamer-0.10/gst-openmax/gcc_4.6.patch | 18 + .../gstreamer-0.10/gst-openmax/ptr-array.patch | 46 ++ .../gstreamer-0.10/gst-openmax_0.10.1.bb | 35 ++ .../gst-plugins-bad/buffer-overflow-mp4.patch | 36 ++ .../gstreamer-0.10/gst-plugins-bad_0.10.23.bb | 61 +++ ...l.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 ++ ...le-Fix-build-on-x86-if-emmintrin.h-is-ava.patch | 37 ++ .../configure.ac-fix-subparse-plugin.patch | 27 ++ .../gst-plugins-base-tremor.patch | 20 + .../gstreamer-0.10/gst-plugins-base_0.10.36.bb | 43 ++ ...-conditional-gl-framebuffer-undefined-use.patch | 35 ++ .../gst-plugins-gl/rpi-egl-gles2-dep.patch | 22 + .../gstreamer-0.10/gst-plugins-gl_0.10.3.bb | 29 ++ ...ild-with-recent-kernels-the-v4l2_buffer-i.patch | 33 ++ ...define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch | 45 ++ .../0407-mulawdec-fix-integer-overrun.patch | 47 ++ .../gstreamer-0.10/gst-plugins-good_0.10.31.bb | 47 ++ ...sate-for-libcdio-s-recent-cd-text-api-cha.patch | 193 ++++++++ .../0002-Fix-opencore-include-paths.patch | 58 +++ .../gstreamer-0.10/gst-plugins-ugly_0.10.19.bb | 35 ++ .../gstreamer-0.10/gst-plugins.inc | 29 ++ ...ecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch | 38 ++ .../gstreamer-0.10/gst-rtsp_0.10.8.bb | 18 + ...ix-self-comparison-always-evaluates-to-tr.patch | 32 ++ ...01-parse-make-grammar.y-work-with-Bison-3.patch | 35 ++ ...2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch | 32 ++ .../gstreamer-0.10.36/check_fix.patch | 19 + .../gst-inspect-check-error.patch | 16 + .../gstreamer-0.10.36/gstregistrybinary.c | 487 +++++++++++++++++++++ .../gstreamer-0.10.36/gstregistrybinary.h | 194 ++++++++ .../gstreamer-0.10/gstreamer_0.10.36.bb | 53 +++ 35 files changed, 1965 insertions(+) create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb (limited to 'meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10') diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb new file mode 100644 index 000000000..1e2cd2a4a --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb @@ -0,0 +1,14 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2" +LICENSE_FLAGS = "commercial" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38" +SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb new file mode 100644 index 000000000..7bba41a34 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb @@ -0,0 +1,12 @@ +require gst-fluendo.inc + +SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer" +LICENSE = "MPLv1.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \ + file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd" +LICENSE_FLAGS = "commercial" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970" +SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc new file mode 100644 index 000000000..7a77d624f --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc @@ -0,0 +1,14 @@ +SUMMARY = "Fluendo closed-format GStreamer plug-in" +SECTION = "multimedia" +HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki" +DEPENDS = "gstreamer gst-plugins-base zlib" + +inherit autotools pkgconfig + +SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2" + +FILES_${PN} += "${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" + +EXTRA_OECONF = "--disable-valgrind" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb new file mode 100644 index 000000000..88f1abf68 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb @@ -0,0 +1,73 @@ +SUMMARY = "GStreamer package groups" +LICENSE = "MIT" + +COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}" +DEPENDS_UGLY="${@'gst-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS_BAD="${@'gst-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}" +DEPENDS = "gstreamer gst-plugins-base gst-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}" + +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \ + file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + + +PR = "r13" + +PACKAGES = "\ + gst-meta-base \ + gst-meta-x11-base \ + gst-meta-audio \ + gst-meta-debug \ + gst-meta-video" + +ALLOW_EMPTY_gst-meta-base = "1" +ALLOW_EMPTY_gst-meta-x11-base = "1" +ALLOW_EMPTY_gst-meta-audio = "1" +ALLOW_EMPTY_gst-meta-debug = "1" +ALLOW_EMPTY_gst-meta-video = "1" + +RDEPENDS_gst-meta-base = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \ + gstreamer \ + gst-plugins-base-playbin \ + gst-plugins-base-decodebin \ + gst-plugins-base-decodebin2 \ + gst-plugins-base-gio \ + gst-plugins-base-alsa \ + gst-plugins-base-volume \ + gst-plugins-base-audioconvert \ + gst-plugins-base-audioresample \ + gst-plugins-base-typefindfunctions \ + gst-plugins-base-videoscale \ + gst-plugins-base-ffmpegcolorspace \ + gst-plugins-good-autodetect \ + gst-plugins-good-souphttpsrc" + +RRECOMMENDS_gst-meta-x11-base = "\ + gst-plugins-base-ximagesink \ + gst-plugins-base-xvimagesink" + +RDEPENDS_gst-meta-audio = "\ + gst-meta-base \ + gst-plugins-base-vorbis \ + gst-plugins-base-ogg \ + gst-plugins-good-wavparse \ + gst-plugins-good-flac \ + ${COMMERCIAL_AUDIO_PLUGINS}" + + +RDEPENDS_gst-meta-debug = "\ + gst-meta-base \ + gst-plugins-good-debug \ + gst-plugins-base-audiotestsrc \ + gst-plugins-base-videotestsrc" + + +RDEPENDS_gst-meta-video = "\ + gst-meta-base \ + gst-plugins-good-avi \ + gst-plugins-good-matroska \ + gst-plugins-base-theora \ + ${COMMERCIAL_VIDEO_PLUGINS}" + +RRECOMMENDS_gst-meta-video = "\ + gst-meta-audio" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch new file mode 100644 index 000000000..57a63b5a0 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch @@ -0,0 +1,18 @@ +Upstream-Status: Pending + +Signed-off-by: Saul Wold + +Index: gst-openmax-0.10.1/omx/gstomx.c +=================================================================== +--- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700 ++++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700 +@@ -238,7 +238,8 @@ + const gchar *element_name = gst_structure_nth_field_name (element_table, i); + GstStructure *element = get_element_entry (element_name); + const gchar *type_name, *parent_type_name; +- const gchar *component_name, *component_role, *library_name; ++ const gchar *component_name, *library_name; ++ const gchar __attribute__((__unused__)) *component_role; + GType type; + gint rank; + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch new file mode 100644 index 000000000..5965bbafb --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch @@ -0,0 +1,46 @@ +Rename static functions that use GLib naming conventions as one of them +(g_ptr_array_insert) has now been added to GLib. + +Upstream-Status: Pending +Signed-off-by: Ross Burton + +diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c +index 423e441..579dbf5 100644 +--- a/omx/gstomx_util.c ++++ b/omx/gstomx_util.c +@@ -85,7 +85,7 @@ static gboolean initialized; + */ + + static void +-g_ptr_array_clear (GPtrArray * array) ++omx_g_ptr_array_clear (GPtrArray * array) + { + guint index; + for (index = 0; index < array->len; index++) +@@ -93,7 +93,7 @@ g_ptr_array_clear (GPtrArray * array) + } + + static void +-g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) ++omx_g_ptr_array_insert (GPtrArray * array, guint index, gpointer data) + { + if (index + 1 > array->len) { + g_ptr_array_set_size (array, index + 1); +@@ -394,7 +394,7 @@ g_omx_core_unload (GOmxCore * core) + } + + core_for_each_port (core, g_omx_port_free); +- g_ptr_array_clear (core->ports); ++ omx_g_ptr_array_clear (core->ports); + } + + static inline GOmxPort * +@@ -418,7 +418,7 @@ g_omx_core_new_port (GOmxCore * core, guint index) + } + + port = g_omx_port_new (core, index); +- g_ptr_array_insert (core->ports, index, port); ++ omx_g_ptr_array_insert (core->ports, index, port); + + return port; + } diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb new file mode 100644 index 000000000..2e0157956 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb @@ -0,0 +1,35 @@ +SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components" +DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \ +communication with OpenMAX Integration Layer (IL) components. OpenMAX \ +IL is an industry standard that provides an abstraction layer for \ +computer graphics, video, and sound routines." +HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX" +DEPENDS = "gstreamer" +RDEPENDS_${PN} = "libomxil" +LICENSE = "LGPLv2.1" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \ + file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \ + file://gcc_4.6.patch \ + file://ptr-array.patch \ + " + +inherit autotools pkgconfig + +# Tell configure that this isn't a development snapshot so we don't want +# -Werror (hopefully fixed in 0.10.2) +export GST_CVS="no" + +EXTRA_OECONF += "--disable-valgrind" + +PR = "r4" + +FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so" +FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/" + +SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e" +SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch new file mode 100644 index 000000000..235acda8b --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch @@ -0,0 +1,36 @@ +Description: Fix buffer overflow in mp4 parsing +Author: Ralph Giles +--- +Backport patch from debian to fix CVE-2015-0797. +https://sources.debian.net/data/main/g/gst-plugins-bad0.10/0.10.23-7.1+deb7u2/debian/patches/buffer-overflow-mp4.patch + +Upstream-Status: Backport + +Signed-off-by: Kai Kang +--- +--- gst-plugins-bad0.10-0.10.23.orig/gst/videoparsers/gsth264parse.c ++++ gst-plugins-bad0.10-0.10.23/gst/videoparsers/gsth264parse.c +@@ -384,6 +384,11 @@ gst_h264_parse_wrap_nal (GstH264Parse * + + GST_DEBUG_OBJECT (h264parse, "nal length %d", size); + ++ if (size > G_MAXUINT32 - nl) { ++ GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL), ++ ("overflow in nal size")); ++ return NULL; ++ } + buf = gst_buffer_new_and_alloc (size + nl + 4); + if (format == GST_H264_PARSE_FORMAT_AVC) { + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl)); +@@ -452,6 +457,11 @@ gst_h264_parse_process_nal (GstH264Parse + GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size); + return; + } ++ if (G_UNLIKELY (nalu->size > 20 * 1024 * 1024)) { ++ GST_DEBUG_OBJECT (h264parse, "not processing nal size %u (too big)", ++ nalu->size); ++ return; ++ } + + /* we have a peek as well */ + nal_type = nalu->type; diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb new file mode 100644 index 000000000..38fccc8d0 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb @@ -0,0 +1,61 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c" + +DEPENDS += "gst-plugins-base" + +PR = "r4" + +SRC_URI += "file://buffer-overflow-mp4.patch" + +inherit gettext gsettings + +EXTRA_OECONF += "--disable-experimental \ + --disable-sdl --disable-cdaudio --disable-directfb \ + --disable-vdpau --disable-apexsink" + +PACKAGECONFIG ??= "bzip curl \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}" + +PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl" +PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg," +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon" +PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms" +PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng" +PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2" +PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper" +PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" +PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus" +PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" +PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx" +PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass" +PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" +PACKAGECONFIG[schro] = "--enable-schro,--disable-schro,schroedinger" +PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" +PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac" +PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump" +PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc" +PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc" +PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread" +PACKAGECONFIG[zbar] = "--enable-zbar,--disable-zbar,zbar jpeg" + +ARM_INSTRUCTION_SET = "arm" + +PACKAGES =+ "${PN}-resindvd" +FILES_${PN}-resindvd = "${libdir}/gstreamer-${LIBV}/libresindvd.so" +FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/libresindvd.la" +FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987" +SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 000000000..29fbec5f8 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Sun, 2 Oct 2016 21:49:33 +0200 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch new file mode 100644 index 000000000..52142562a --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch @@ -0,0 +1,37 @@ +audioresample: Fix build on x86 if emmintrin.h is available but can't be used + +On x86, EMMINTRIN is defined but not usable without SSE so check for +__SSE__ and __SSE2__ as well. + +https://bugzilla.gnome.org/show_bug.cgi?id=670690 + +Upstream-Status: Backport + +Signed-off-by: Jackie Huang +--- + gst/audioresample/resample.c | 4 ++-- + 1 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c +index 98d006c..481fa01 100644 +--- a/gst/audioresample/resample.c ++++ b/gst/audioresample/resample.c +@@ -77,13 +77,13 @@ + #define EXPORT G_GNUC_INTERNAL + + #ifdef _USE_SSE +-#ifndef HAVE_XMMINTRIN_H ++#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H) + #undef _USE_SSE + #endif + #endif + + #ifdef _USE_SSE2 +-#ifndef HAVE_EMMINTRIN_H ++#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H) + #undef _USE_SSE2 + #endif + #endif +-- +1.7.1 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch new file mode 100644 index 000000000..b8602c80d --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch @@ -0,0 +1,27 @@ +Upstream-Status: Submitted [similar patch by other author, bugzilla] +Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600 + +Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't +search for gstconfig.h in /usr/include. + +Signed-off-by: Andreas Oberritter +--- + configure.ac | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 1901bcf..460fb0a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume) + dnl check for gstreamer core features (subsystems) + dnl FIXME: this assumes srcdir == builddir for uninstalled setups + GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH) ++AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH) + AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1") + + dnl disable plug-ins that require libxml2's HTML support if it is not available +-- +1.7.5.4 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch new file mode 100644 index 000000000..99dbc9d52 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch @@ -0,0 +1,20 @@ +Remove -DTREMOR option since Tremor has dropped its internal +libogg2, and gst-plugins-base has dependency on that. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Dongxiao Xu +Signed-off-by: Shane Wang + +diff -r 70065fb4e085 ext/vorbis/Makefile.am +--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800 ++++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800 +@@ -30,7 +30,7 @@ + gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c + libgstivorbisdec_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \ +- -DTREMOR $(IVORBIS_CFLAGS) ++ $(IVORBIS_CFLAGS) + libgstivorbisdec_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \ + $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \ diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb new file mode 100644 index 000000000..f2354648d --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb @@ -0,0 +1,43 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0" + +DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native" + +SRC_URI += "file://gst-plugins-base-tremor.patch \ + file://configure.ac-fix-subparse-plugin.patch \ + file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \ + file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a" +SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976" + +PR = "r8" + +inherit gettext + +EXTRA_OECONF += "--disable-freetypetest" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" + +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango" +PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice" +PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm -f ${S}/m4/lib-link.m4 +} + +FILES_${PN} += "${datadir}/${BPN}" + +CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no" + +# /usr/bin/gst-visualise-0.10 is a perl script. +RDEPENDS_${PN}-apps += "perl" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch new file mode 100644 index 000000000..bc2f88b24 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch @@ -0,0 +1,35 @@ +From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001 +From: Jeremy Stashluk +Date: Wed, 6 Feb 2013 09:59:48 -0500 +Subject: [PATCH] conditional gl framebuffer undefined use + +The OpenGL extension GL_ARB_framebuffer_object defines the macro +GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error +string if the extension provides functions that might return the macro. + +Upstream-Status: Pending + +Signed-off-by: Jeremy Stashluk +--- + gst-libs/gst/gl/gstgldisplay.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c +index 3ed0b71..64c6c2c 100644 +--- a/gst-libs/gst/gl/gstgldisplay.c ++++ b/gst-libs/gst/gl/gstgldisplay.c +@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void) + GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"); + break; + ++#if defined(GL_ARB_framebuffer_object) + case GL_FRAMEBUFFER_UNDEFINED: + GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED"); + break; ++#endif + + default: + GST_ERROR ("General FBO error"); +-- +1.7.9.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch new file mode 100644 index 000000000..7db1c5afc --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch @@ -0,0 +1,22 @@ +Check for header and library separately and check for GLESv2 before egl +this is to overcome an annoying issue with rpi/userland where egl depends +on sysmbols from libGLESv2 + +-Khem +Index: gst-plugins-gl-0.10.3/configure.ac +=================================================================== +--- gst-plugins-gl-0.10.3.orig/configure.ac ++++ gst-plugins-gl-0.10.3/configure.ac +@@ -183,8 +183,10 @@ case $host in + else + AC_CHECK_HEADERS([EGL/egl.h], [HAVE_EGL=yes], [HAVE_EGL=no]) + if test "x$HAVE_EGL" = "xyes"; then +- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h,, AC_MSG_ERROR([EGL is required])) +- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h,, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([GLES2/gl2.h],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_LIB(GLESv2,[glTexImage2D],, AC_MSG_ERROR([OpenGLES2 is required])) ++ AC_CHECK_HEADERS([EGL/egl.h],, AC_MSG_ERROR([EGL is required])) ++ AC_CHECK_LIB(EGL,[eglGetError],, AC_MSG_ERROR([EGL is required])) + GL_LIBS="$LIBS $X_LIBS -lEGL -lGLESv2" + GL_BACKEND=x11ES2 + GL_TYPE=gles diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb new file mode 100644 index 000000000..f3eaf3094 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb @@ -0,0 +1,29 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ " +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938" +SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210" + +SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch \ + file://rpi-egl-gles2-dep.patch \ +" + +DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew" + +PR = "r4" + +inherit gettext distro_features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +# This package doesn't have a configure switch for EGL or GL, so forcibly tell +# configure that it can't find gl.h so it always uses EGL. If/when we have some +# way for machines to specify their preferred GL flavour this can be +# automatically adapted. +EXTRA_OECONF += "ac_cv_header_GL_gl_h=no" + +ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY_${PN}-apps = "1" +ALLOW_EMPTY_${PN}-glib = "1" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch new file mode 100644 index 000000000..6456d3c6c --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch @@ -0,0 +1,33 @@ +From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Wed, 5 Sep 2012 18:54:42 +0200 +Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input + field was removed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Backport + +[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012 + +Signed-off-by: Andreas Müller +--- + sys/v4l2/gstv4l2bufferpool.c | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) + +diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c +index b81c6a4..51cc0ce 100644 +--- a/sys/v4l2/gstv4l2bufferpool.c ++++ b/sys/v4l2/gstv4l2bufferpool.c +@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps) + GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u", + ret->vbuffer.m.offset); + GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length); +- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input); + + data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length, + PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd, +-- +1.7.6.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch new file mode 100644 index 000000000..bd0de583a --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch @@ -0,0 +1,45 @@ +From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001 +From: Bruce Ashfield +Date: Thu, 22 Aug 2013 12:15:54 -0400 +Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER + +kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls] +removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three +years of depreciation. + +The ioctl values are still free, and the case statement which processess them +in v4l2 userspace falls through to the proper replacement. So in the short +term, we can explicitly define them using the old absolute values, and everything +will work. + +Signed-off-by: Bruce Ashfield +--- + sys/v4l2/v4l2_calls.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c +index 309bfb6..3c64544 100644 +--- a/sys/v4l2/v4l2_calls.c ++++ b/sys/v4l2/v4l2_calls.c +@@ -54,11 +54,16 @@ + #include "gst/gst-i18n-plugin.h" + + /* Those are ioctl calls */ ++ ++/* V4L2_CID_HCENTER has been removed from the mainline kernel, but ++ the ioctl space is still present. Since these values fall through ++ to their replacement, it is safe (in the short term) to re-use the ++ old values explictily */ + #ifndef V4L2_CID_HCENTER +-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED ++#define V4L2_CID_HCENTER V4L2_CID_BASE+22 + #endif + #ifndef V4L2_CID_VCENTER +-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED ++#define V4L2_CID_VCENTER V4L2_CID_BASE+23 + #endif + + GST_DEBUG_CATEGORY_EXTERN (v4l2_debug); +-- +1.7.10.4 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch new file mode 100644 index 000000000..48b8e98b8 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch @@ -0,0 +1,47 @@ +From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001 +From: Roland Krikava +Date: Fri, 2 Nov 2012 12:38:44 -0400 +Subject: [PATCH 407/440] mulawdec: fix integer overrun + +There might be more than 65535 samples in a chunk of data. + +https://bugzilla.gnome.org/show_bug.cgi?id=687469 + +Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Roland Krikava +--- + gst/law/mulaw-conversion.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c +index 8afae80..190a9f5 100644 +--- a/gst/law/mulaw-conversion.c ++++ b/gst/law/mulaw-conversion.c +@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples) + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 + }; +- gint16 sign, exponent, mantissa, i; ++ gint16 sign, exponent, mantissa; + gint16 sample; + guint8 ulawbyte; ++ gint i; + + for (i = 0; i < numsamples; i++) { + sample = in[i]; +@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples) + static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 }; + gint16 sign, exponent, mantissa; + guint8 ulawbyte; +- gint16 linear, i; ++ gint16 linear; ++ gint i; + + for (i = 0; i < numsamples; i++) { + ulawbyte = in[i]; +-- +1.7.9.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb new file mode 100644 index 000000000..f993cfc11 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb @@ -0,0 +1,47 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \ + file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe" + +PR = "r8" + +PACKAGECONFIG ?= "jpeg v4l \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \ +" +PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" +PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" +PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg" +PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" +PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf" +PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev" +# sub-feature of v4l, but control separately since libv4l is not part of oe-core +PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l" +PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2" +PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc" +PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage" +PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394" + +DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \ + speex libsoup-2.4 libcap" + +inherit gettext gconf + +SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \ + file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \ + file://0407-mulawdec-fix-integer-overrun.patch \ +" +EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \ + --disable-examples --disable-taglib" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6" +SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6" + +FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas" +FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch new file mode 100644 index 000000000..1f72fc036 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch @@ -0,0 +1,193 @@ +From 649bd92cd2600719862ad5189899212409dd0a67 Mon Sep 17 00:00:00 2001 +From: Leon Merten Lohse +Date: Thu, 3 May 2012 23:50:30 +0100 +Subject: [PATCH] cdio: compensate for libcdio's recent cd-text api changes + +https://bugzilla.gnome.org/show_bug.cgi?id=675112 + +Conflicts: + + ext/cdio/gstcdiocddasrc.c + +Signed-off-by: Andreas Müller + +Upstream-Status: Backport +--- + ext/cdio/gstcdio.c | 35 ++++++++++++++++++++++++++++------- + ext/cdio/gstcdio.h | 16 ++++++++++++++++ + ext/cdio/gstcdiocddasrc.c | 19 +++++++++++++++++++ + 3 files changed, 63 insertions(+), 7 deletions(-) + +diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c +index 2f58d18..483ebf5 100644 +--- a/ext/cdio/gstcdio.c ++++ b/ext/cdio/gstcdio.c +@@ -30,12 +30,16 @@ + GST_DEBUG_CATEGORY (gst_cdio_debug); + + void +-gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, ++gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track, + cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags) + { + const gchar *txt; + ++#if LIBCDIO_VERSION_NUM > 83 ++ txt = cdtext_get_const (cdtext, field, track); ++#else + txt = cdtext_get_const (field, cdtext); ++#endif + if (txt == NULL || *txt == '\0') { + GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag); + return; +@@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, + } + + GstTagList * ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track) ++{ ++ GstTagList *tags = NULL; ++ ++#else + gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + { + GstTagList *tags = NULL; +@@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track) + GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track); + return NULL; + } ++#endif + +- gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE, ++ &tags); + + return tags; + } + + void ++#if LIBCDIO_VERSION_NUM > 83 ++gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t, ++ GstTagList * tags) ++{ ++#else + gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + { + cdtext_t *t; +@@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags) + GST_DEBUG_OBJECT (src, "no CD-TEXT for album"); + return; + } ++#endif + +- /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */ +- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags); +- gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags); +- ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER, ++ GST_TAG_ALBUM_ARTIST, &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM, ++ &tags); ++ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE, ++ &tags); + GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags); + } + +diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h +index ef31ed0..c6da580 100644 +--- a/ext/cdio/gstcdio.h ++++ b/ext/cdio/gstcdio.h +@@ -24,22 +24,38 @@ + #include + #include + #include ++#include ++ ++#if LIBCDIO_VERSION_NUM <= 83 ++ #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER ++ #define CDTEXT_FIELD_GENRE CDTEXT_GENRE ++ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE ++#endif + + GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug); + #define GST_CAT_DEFAULT gst_cdio_debug + + void gst_cdio_add_cdtext_field (GstObject * src, + cdtext_t * cdtext, ++ track_t track, + cdtext_field_t field, + const gchar * gst_tag, + GstTagList ** p_tags); + + GstTagList * gst_cdio_get_cdtext (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + track_t track); + + void gst_cdio_add_cdtext_album_tags (GstObject * src, ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t * t, ++#else + CdIo * cdio, ++#endif + GstTagList * tags); + + #endif /* __GST_CDIO_H__ */ +diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c +index 615a0c8..830839e 100644 +--- a/ext/cdio/gstcdiocddasrc.c ++++ b/ext/cdio/gstcdiocddasrc.c +@@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + GstCdioCddaSrc *src; + discmode_t discmode; + gint first_track, num_tracks, i; ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext_t *cdtext; ++#endif + + src = GST_CDIO_CDDA_SRC (audiocdsrc); + +@@ -244,8 +244,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device) + if (src->read_speed != -1) + cdio_set_speed (src->cdio, src->read_speed); + ++#if LIBCDIO_VERSION_NUM > 83 ++ cdtext = cdio_get_cdtext (src->cdio); ++ ++ if (NULL == cdtext) ++ GST_DEBUG_OBJECT (src, "no CD-TEXT on disc"); ++ else ++ gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext, ++ cddabasesrc->tags); ++#else + gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio, + cddabasesrc->tags); ++#endif + + GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track); + +@@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device) + * the right thing here (for cddb id calculations etc. as well) */ + track.start = cdio_get_track_lsn (src->cdio, i + first_track); + track.end = track.start + len_sectors - 1; /* -1? */ ++#if LIBCDIO_VERSION_NUM > 83 ++ if (NULL != cdtext) ++ track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext, ++ i + first_track); ++#else + track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio, + i + first_track); ++#endif + + gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track); + } +-- +2.1.0 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch new file mode 100644 index 000000000..3fd6a2697 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch @@ -0,0 +1,58 @@ +From e634bc6420826f760f6519a9f134c6a4d3412ef8 Mon Sep 17 00:00:00 2001 +From: Carlos Rafael Giani +Date: Mon, 19 Oct 2015 15:26:24 +0200 +Subject: [PATCH] Fix opencore include paths + +Upstream-Status: Inappropriate [no upstream - GStreamer 0.10 is no longer being maintained] + +Signed-off-by: Carlos Rafael Giani +--- + ext/amrnb/amrnbdec.h | 2 +- + ext/amrnb/amrnbenc.h | 2 +- + ext/amrwbdec/amrwbdec.h | 4 ++-- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ext/amrnb/amrnbdec.h b/ext/amrnb/amrnbdec.h +index 1e81839..01b7154 100644 +--- a/ext/amrnb/amrnbdec.h ++++ b/ext/amrnb/amrnbdec.h +@@ -22,7 +22,7 @@ + + #include + #include +-#include ++#include + + G_BEGIN_DECLS + +diff --git a/ext/amrnb/amrnbenc.h b/ext/amrnb/amrnbenc.h +index 7f673ac..5be39b5 100644 +--- a/ext/amrnb/amrnbenc.h ++++ b/ext/amrnb/amrnbenc.h +@@ -21,7 +21,7 @@ + #define __GST_AMRNBENC_H__ + + #include +-#include ++#include + #include + + G_BEGIN_DECLS +diff --git a/ext/amrwbdec/amrwbdec.h b/ext/amrwbdec/amrwbdec.h +index c3528fc..f27c6d2 100644 +--- a/ext/amrwbdec/amrwbdec.h ++++ b/ext/amrwbdec/amrwbdec.h +@@ -22,8 +22,8 @@ + + #include + #include +-#include +-#include ++#include ++#include + + G_BEGIN_DECLS + +-- +1.9.1 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb new file mode 100644 index 000000000..199b47d76 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb @@ -0,0 +1,35 @@ +require gst-plugins.inc + +LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \ + file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \ + file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \ + file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9" + +DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame" +PR = "r3" + +inherit gettext + +EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \ + --disable-orc" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" +PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio" +PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread" +PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr" +PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr" + +do_configure_prepend() { + # This m4 file contains nastiness which conflicts with libtool 2.2.2 + rm ${S}/m4/lib-link.m4 || true +} + +SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2" +SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0" +SRC_URI += "file://0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch \ + file://0002-Fix-opencore-include-paths.patch" + +FILES_${PN}-amrnb += "${datadir}/gstreamer-0.10/presets/GstAmrnbEnc.prs" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc new file mode 100644 index 000000000..6e163a8c4 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc @@ -0,0 +1,29 @@ +SUMMARY = "Plugins for the GStreamer multimedia framework" +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +DEPENDS = "gstreamer" + +# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST +inherit autotools pkgconfig gobject-introspection + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2" + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection" + +acpaths = "-I ${S}/common/m4 -I ${S}/m4" + +LIBV = "0.10" +require recipes-multimedia/gstreamer/gst-plugins-package.inc + +PACKAGES_DYNAMIC += "^${PN}-.*" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + if [ -e ${S}/po/Makefile.in.in ]; then + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in + fi +} diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch new file mode 100644 index 000000000..69b21dd87 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch @@ -0,0 +1,38 @@ +index gst-rtsp_0.10.8/bindings/python/Makefile.am +Index: gst-rtsp-0.10.8/bindings/python/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/bindings/python/Makefile.am ++++ gst-rtsp-0.10.8/bindings/python/Makefile.am +@@ -14,7 +14,7 @@ defs_DATA = $(DEFS) + defsdir = $(pkgdatadir)/$(GST_MAJORMINOR)/defs + OVERRIDES = rtspserver.override + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES) + + rtspserver_la_CFLAGS = -I$(top_srcdir)/src \ + $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) +Index: gst-rtsp-0.10.8/examples/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/examples/Makefile.am ++++ gst-rtsp-0.10.8/examples/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-video test-ogg test-mp4 test-readme test-launch test-sdp test-uri test-auth + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ +Index: gst-rtsp-0.10.8/tests/Makefile.am +=================================================================== +--- gst-rtsp-0.10.8.orig/tests/Makefile.am ++++ gst-rtsp-0.10.8/tests/Makefile.am +@@ -1,6 +1,6 @@ + noinst_PROGRAMS = test-cleanup + +-INCLUDES = -I$(top_srcdir) -I$(srcdir) ++AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) + + AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) + AM_LDFLAGS = \ diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb new file mode 100644 index 000000000..b78bcaf5a --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb @@ -0,0 +1,18 @@ +SUMMARY = "GStreamer RTSP server" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605" + +SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch" +SRC_URI[md5sum] = "b511af07000595f63c3a705946221643" +SRC_URI[sha256sum] = "9915887cf8515bda87462c69738646afb715b597613edc7340477ccab63a6617" + +DEPENDS = "gst-plugins-base gstreamer" + +EXTRA_OECONF = "--disable-introspection" + +# Configure always checks for Python so inherit pythonnative. Better solution +# would be to disable the checks entirely. +inherit autotools pythonnative gettext + +FILES_${PN}-dev += "${datadir}/vala/vapi/" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch new file mode 100644 index 000000000..d07749682 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch @@ -0,0 +1,32 @@ +From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001 +From: Sebastian Droege +Date: Tue, 6 Mar 2012 12:28:02 +0100 +Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true' + +This was really a bug. + +Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch + +Upstream Status: Backported + +Signed-off-by: Sebastian Droege +--- + libs/gst/base/gstbaseparse.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c +index 851ec1d..108ee89 100644 +--- a/libs/gst/base/gstbaseparse.c ++++ b/libs/gst/base/gstbaseparse.c +@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event) + seek event (in bytes) to upstream. Segment / flush handling happens + in corresponding src event handlers */ + GST_DEBUG_OBJECT (parse, "seek in PUSH mode"); +- if (seekstop >= 0 && seekpos <= seekpos) ++ if (seekstop >= 0 && seekstop <= seekpos) + seekstop = seekpos; + new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop); +-- +1.7.9.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch new file mode 100644 index 000000000..dc2d60612 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch @@ -0,0 +1,35 @@ +From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001 +From: Kerrick Staley +Date: Tue, 20 Aug 2013 23:59:29 -0700 +Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3 + +YYLEX_PARAM is no longer supported in Bison 3. + +https://bugzilla.gnome.org/show_bug.cgi?id=706462 +--- + gst/parse/grammar.y | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y +index 24fc87b..7f9dd16 100644 +--- a/gst/parse/grammar.y ++++ b/gst/parse/grammar.y +@@ -26,7 +26,6 @@ + */ + + #define YYERROR_VERBOSE 1 +-#define YYLEX_PARAM scanner + + #define YYENABLE_NLS 0 + +@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s); + %right '.' + %left '!' '=' + ++%lex-param { void *scanner } + %parse-param { void *scanner } + %parse-param { graph_t *graph } + %pure-parser +-- +2.7.2 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch new file mode 100644 index 000000000..8db396631 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch @@ -0,0 +1,32 @@ +From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Tue, 1 Nov 2016 19:02:30 +0100 +Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +we are definitely not one of those poor souls mentioned + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + common/m4/gst-glib2.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 +index b01f02f..4569ae5 100644 +--- a/common/m4/gst-glib2.m4 ++++ b/common/m4/gst-glib2.m4 +@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK], + fi + + dnl for the poor souls who for example have glib in /usr/local +- AS_SCRUB_INCLUDE(GLIB_CFLAGS) + + AC_SUBST(GLIB_EXTRA_CFLAGS) + ]) +-- +2.5.5 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch new file mode 100644 index 000000000..5d8bb1340 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch @@ -0,0 +1,19 @@ +# gstreamer: Fix a problem with configure if check has already been built +# Richard Purdie + +Upstream-Status: Inappropriate [configuration] + +diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac +--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800 ++++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800 +@@ -543,8 +543,10 @@ + *) BUILD_CHECK=yes ;; + esac + ]) ++ + dnl bit of a misnomer, but keep the conditional named like this so we don't + dnl have to change too much elsewhere ++HAVE_CHECK=no + AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes") + + dnl configure the desired buffer alignment diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch new file mode 100644 index 000000000..30be85f59 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch @@ -0,0 +1,16 @@ +# Fix crash with gst-inspect +# Chris Lord + +Upstream-Status: Pending + +--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100 ++++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100 +@@ -1123,7 +1123,7 @@ + g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE); + g_option_context_add_group (ctx, gst_init_get_option_group ()); + if (!g_option_context_parse (ctx, &argc, &argv, &err)) { +- g_print ("Error initializing: %s\n", err->message); ++ g_print ("Error initializing: %s\n", err ? err->message : "(null)"); + exit (1); + } + g_option_context_free (ctx); diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c new file mode 100644 index 000000000..c1f3e71af --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c @@ -0,0 +1,487 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * 2005 David A. Schleef + * + * gstregistryxml.c: GstRegistry object, support routines + * + * This library is free software; you can redistribute it and/or + * modify it ulnder the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#include + +/* +** Simple handy function to write a memory location to the registry cache file +*/ +inline static gboolean +gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size) +{ + if (write(registry->cache_file, mem, size) != size) + { + GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n", + mem, size, strerror(errno)); + return FALSE; + } + return TRUE; +} + +/* +** Save features GstBinary style +*/ +static gboolean +gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name) +{ + GstBinaryChunck *chk; + + if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = dest; + chk->size = sizeof (GstBinaryPluginFeature); + + *list = g_list_append(*list, chk); + + dest->rank = orig->rank; + if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) || + !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + + if (GST_IS_ELEMENT_FACTORY(orig)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(orig); + + if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) || + !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) || + !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) || + !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN)) + { + GST_ERROR("Failed to write binary registry feature"); + goto fail; + } + } + + dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0; + return TRUE; + + fail: + free(chk); + return FALSE; +} + + +/* +** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version +*/ +inline static gboolean +gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m) +{ + if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) || + !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Failed to write magic to the registry magic structure"); + return FALSE; + } + return TRUE; +} + +/* +** Check GstBinaryRegistryMagic validity. +** Return a pointer pointing right after the magic structure +*/ +static gchar * +gst_registry_binary_check_magic(gchar *in) +{ + GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in; + + if (m == NULL || m->magic == NULL || m->version == NULL) + { + GST_ERROR("Binary registry magic structure is broken"); + return NULL; + } + if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0) + { + GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x", + GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff, + GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff, + m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff); + return NULL; + } + if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN)) + { + GST_ERROR("Binary registry magic version is different : %s != %s", + GST_MAJORMINOR, m->version); + return NULL; + } + return (in + sizeof (GstBinaryRegistryMagic)); +} + +/* +** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the +** registry file. +*/ +static gboolean +gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin) +{ + GstBinaryPluginElement *e; + GstBinaryChunck *chk; + GList *walk; + + if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL || + (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL) + return FALSE; + + chk->data = e; + chk->size = sizeof (GstBinaryPluginElement); + *list = g_list_append(*list, chk); + + if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) || + !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) || + !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) || + !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) || + !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) || + !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) || + !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) || + !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN)) + { + GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement"); + goto fail; + } + + e->size = plugin->file_size; + e->m32p = plugin->file_mtime; + + GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name); + + for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++) + { + GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data); + GstBinaryPluginFeature *newfeat; + const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat)); + + if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL) + goto fail; + + if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name)) + { + GST_ERROR("Can't fill plugin feature, aborting."); + goto fail; + } + } + + GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name); + return TRUE; + + fail: + free(chk); + free(e); + return FALSE; +} + +/* +** Write the cache to file. Part of the code was taken from gstregistryxml.c +*/ +gboolean +gst_registry_binary_write_cache(GstRegistry *registry, const char *location) +{ + GList *walk; + char *tmp_location; + GstBinaryRegistryMagic *magic; + GstBinaryChunck *magic_chunck; + GList *to_write = NULL; + + GST_INFO("Writing binary registry cache"); + + g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE); + tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL); + registry->cache_file = g_mkstemp (tmp_location); + if (registry->cache_file == -1) + { + char *dir; + + /* oops, I bet the directory doesn't exist */ + dir = g_path_get_dirname (location); + g_mkdir_with_parents (dir, 0777); + g_free (dir); + + registry->cache_file = g_mkstemp (tmp_location); + } + + if (registry->cache_file == -1) + goto fail; + + if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL || + !gst_registry_binary_initialize_magic(magic)) + goto fail; + + if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL) + goto fail; + + magic_chunck->data = magic; + magic_chunck->size = sizeof (GstBinaryRegistryMagic); + to_write = g_list_append(to_write, magic_chunck); + + /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */ + for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk)) + { + GstPlugin *plugin = GST_PLUGIN(walk->data); + + if (!plugin->filename) + continue; + + if (plugin->flags & GST_PLUGIN_FLAG_CACHED) + { + int ret; + struct stat statbuf; + + ret = g_stat (plugin->filename, &statbuf); + if ((ret = g_stat (plugin->filename, &statbuf)) < 0 || + plugin->file_mtime != statbuf.st_mtime || + plugin->file_size != statbuf.st_size) + continue; + } + + if (!gst_registry_binary_save_plugin(&to_write, registry, plugin)) + { + GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename); + continue; /* Try anyway */ + } + } + + for (walk = g_list_first(to_write); walk; walk = g_list_next(walk)) + { + GstBinaryChunck *cur = walk->data; + + if (!gst_registry_binary_write(registry, cur->data, cur->size)) + { + free(cur->data); + free(cur); + g_list_free(to_write); + goto fail; + } + free(cur->data); + free(cur); + } + g_list_free(to_write); + + if (close(registry->cache_file) < 0) + { + GST_DEBUG("Can't close registry file : %s", strerror(errno)); + goto fail; + } + + if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) { +#ifdef WIN32 + remove (location); +#endif + rename (tmp_location, location); + } + + g_free (tmp_location); + return TRUE; + + fail: + g_free(tmp_location); + return FALSE; +} + +static GstPluginFeature* +gst_registry_binary_load_feature(GstBinaryPluginFeature *in) +{ + GstPluginFeature *feature; + GType type; + + if (!in->typename || !*(in->typename)) + return NULL; + + /* GST_INFO("Plugin feature typename : %s", in->typename);*/ + + if (!(type = g_type_from_name(in->typename))) + { + GST_ERROR("Unknown type from typename"); + return NULL; + } + feature = g_object_new (type, NULL); + + if (!feature) { + GST_ERROR("Can't create feature from type"); + return NULL; + } + + if (!GST_IS_PLUGIN_FEATURE (feature)) { + /* don't really know what it is */ + if (GST_IS_OBJECT (feature)) + gst_object_unref (feature); + else + g_object_unref (feature); + return NULL; + } + + feature->name = g_strdup(in->name); + feature->rank = in->rank; + + if (GST_IS_ELEMENT_FACTORY(feature)) + { + GstElementFactory *factory = GST_ELEMENT_FACTORY(feature); + + factory->details.longname = g_strdup(in->longname); + factory->details.klass = g_strdup(in->class); + factory->details.description = g_strdup(in->description); + factory->details.author = g_strdup(in->author); + + /* GST_INFO("Element factory : %s", factory->details.longname); */ + } + + GST_DEBUG("Added feature %p with name %s", feature, feature->name); + return feature; +} + +/* +** Make a new plugin from current GstBinaryPluginElement structure +** and save it to the GstRegistry. Return an offset to the next +** GstBinaryPluginElement structure. +*/ +static unsigned long +gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in) +{ + GstBinaryPluginElement *p = (GstBinaryPluginElement *) in; + GstPlugin *plugin = NULL; + GList *plugin_features = NULL; + GstBinaryPluginFeature *feat; + unsigned int i; + unsigned long offset; + + plugin = g_object_new (GST_TYPE_PLUGIN, NULL); + + plugin->flags |= GST_PLUGIN_FLAG_CACHED; + + plugin->desc.name = g_strdup(p->name); + plugin->desc.description= g_strdup(p->description); + plugin->filename = g_strdup(p->filename); + plugin->desc.version = g_strdup(p->version); + plugin->desc.license = g_strdup(p->license); + plugin->desc.source = g_strdup(p->source); + plugin->desc.package = g_strdup(p->package); + plugin->desc.origin = g_strdup(p->origin); + plugin->file_mtime = p->m32p; + plugin->file_size = p->size; + plugin->basename = g_path_get_basename (plugin->filename); + + if (plugin->file_mtime < 0 || plugin->file_size < 0) + { + GST_ERROR("Plugin time or file size is not valid !"); + g_free(plugin); + return -1; + } + + if (p->nfeatures < 0) + { + GST_ERROR("The number of feature structure is not valid !"); + gst_object_unref(plugin); + return -1; + } + + for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0; + i < p->nfeatures; i++, feat++) + { + GstPluginFeature *gstfeat; + + if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL) + { + g_list_free(plugin_features); + g_free(plugin); + GST_ERROR("Error while loading binary feature"); + return -1; + } + gstfeat->plugin_name = g_strdup(plugin->desc.name); + plugin_features = g_list_prepend(plugin_features, gstfeat); + } + + GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name); + GList *g; + + gst_registry_add_plugin (registry, plugin); + for (g = plugin_features; g; g = g_list_next (g)) + gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data)); + /* g_list_free(plugin_features); */ + + offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature); + return offset; +} + + +/* +** Read the cache and adapt it to fill GstRegistry +*/ +gboolean +gst_registry_binary_read_cache(GstRegistry *registry, const char *location) +{ + GMappedFile *mapped = NULL; + GTimer *timer = NULL; + gchar *contents = NULL; + gdouble seconds; + unsigned long offset, inc; + gsize size; + + /* make sure these types exist */ + GST_TYPE_ELEMENT_FACTORY; + GST_TYPE_TYPE_FIND_FACTORY; + GST_TYPE_INDEX_FACTORY; + + timer = g_timer_new (); + + if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL || + (contents = g_mapped_file_get_contents(mapped)) == NULL) + { + GST_ERROR("Can't load file : %s", strerror(errno)); + return FALSE; + } + if ((contents = gst_registry_binary_check_magic(contents)) == NULL) + { + GST_ERROR("Binary registry type not recognized (invalid magic)"); + g_mapped_file_free(mapped); + return FALSE; + } + + if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement)) + { + GST_INFO("No binary plugins structure to read"); + return TRUE; /* This is not really an error */ + } + + for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size && + (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0; + offset += inc) + ; /* May want in the future to do something here */ + if (inc < 0) + { + GST_DEBUG("Problem while reading binary registry"); + return FALSE; + } + + g_timer_stop (timer); + seconds = g_timer_elapsed (timer, NULL); + g_timer_destroy (timer); + + GST_INFO ("loaded %s in %f seconds", location, seconds); + + if (mapped) + g_mapped_file_free (mapped); + return TRUE; +} diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h new file mode 100644 index 000000000..2ef24d765 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h @@ -0,0 +1,194 @@ +/* GStreamer + * Copyright (C) 1999,2000 Erik Walthinsen + * 2000 Wim Taymans + * + * gstregistry.h: Header for registry handling + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* SUGGESTIONS AND TODO : +** ==================== +** - Use a compressed registry, but would induce performance loss +** - Encrypt the registry, for security purpose, but would also reduce performances +** - Also have a non-mmap based cache reading (work with file descriptors) +*/ + +#ifndef __GST_REGISTRYBINARY_H__ +#define __GST_REGISTRYBINARY_H__ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#ifdef HAVE_UNISTD_H +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "glib-compat-private.h" +#include + +/* A magic, written at the beginning of the file */ +#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d" +#define GST_MAGIC_BINARY_REGISTRY_LEN (4) +#define GST_MAGIC_BINARY_VERSION_LEN (64) + +typedef struct _GstBinaryRegistryMagic +{ + char magic[GST_MAGIC_BINARY_REGISTRY_LEN]; + char version[GST_MAGIC_BINARY_VERSION_LEN]; +} GstBinaryRegistryMagic; + + +/* Used to store pointers to write */ +typedef struct _GstBinaryChunck +{ + void *data; + unsigned int size; +} GstBinaryChunck; + + +/* A structure containing (staticely) every information needed for a plugin +** +** Notes : +** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have +** right after the structure itself. +*/ + +/* Various lenght defines for our GstBinaryPluginElement structure +** Note : We could eventually use smaller size +*/ +#define GST_BINARY_REGISTRY_NAME_LEN (256) +#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_VERSION_LEN (64) +#define GST_BINARY_REGISTRY_LICENSE_LEN (256) +#define GST_BINARY_REGISTRY_SOURCE_LEN (256) +#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024) +#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024) + +typedef struct _GstBinaryPluginElement +{ + char name[GST_BINARY_REGISTRY_NAME_LEN]; + char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN]; + char filename[_POSIX_PATH_MAX]; + char version[GST_BINARY_REGISTRY_VERSION_LEN]; + char license[GST_BINARY_REGISTRY_LICENSE_LEN]; + char source[GST_BINARY_REGISTRY_SOURCE_LEN]; + char package[GST_BINARY_REGISTRY_PACKAGE_LEN]; + char origin[GST_BINARY_REGISTRY_ORIGIN_LEN]; + unsigned long size; + unsigned long m32p; + unsigned int nfeatures; +} GstBinaryPluginElement; + + +/* A structure containing the plugin features +** +** Note : +** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself. +** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself. +** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself. +*/ +#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256) +#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512) +#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024) +#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256) + +typedef struct _GstBinaryPluginFeature +{ + char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN]; + char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN]; + unsigned long rank; + char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN]; + char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN]; + char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN]; + char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN]; + unsigned int npadtemplates; + unsigned int ninterfaces; + unsigned int nuritypes; +} GstBinaryPluginFeature; + + +/* +** A structure containing the static pad templates of a plugin feature +*/ +#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256) +#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024) + +typedef struct _GstBinaryPadTemplate +{ + char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN]; + char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN]; + int direction; /* Either 0:"sink" or 1:"src" */ + GstPadPresence presence; +} GstBinaryPadTemplate; + +/* +** A very simple structure defining the plugin feature interface string +*/ +#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512) +typedef struct _GstBinaryInterface +{ + char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN]; + unsigned long size; +} GstBinaryInterface; + +/* Uri Type */ +typedef struct _GstBinaryUriType +{ + GstURIType type; + unsigned long nuriprotocols; +} GstBinaryUriType; + +/* +** Function prototypes +*/ + +/* Local prototypes */ +inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size); +inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m); +static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *); +static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin); +static gchar *gst_registry_binary_check_magic(gchar *in); +static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *); +static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in); + +/* Exportable */ +gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location); +gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location); + +#endif /* !__GST_REGISTRYBINARY_H__ */ + + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb new file mode 100644 index 000000000..5f97a20fd --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb @@ -0,0 +1,53 @@ +SUMMARY = "GStreamer multimedia framework" +DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \ +It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime." +HOMEPAGE = "http://gstreamer.freedesktop.org/" +BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer" +SECTION = "multimedia" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \ + file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4" +DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native" + +PR = "r2" + +SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \ + file://check_fix.patch \ + file://gst-inspect-check-error.patch \ + file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \ + file://0001-parse-make-grammar.y-work-with-Bison-3.patch \ + file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \ +" + +SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b" +SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30" + +inherit autotools pkgconfig gettext + +GSTREAMER_DEBUG ?= "--disable-debug" +EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \ + --disable-dependency-tracking --disable-check \ + --disable-examples --disable-tests \ + --disable-valgrind ${GSTREAMER_DEBUG} \ + --disable-introspection \ + " + +CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no" + +# apply gstreamer hack after Makefile.in.in in source is replaced by our version from +# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed +# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html +oe_runconf_prepend() { + sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in +} + +#do_compile_prepend () { +# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/ +#} + +RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" +RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi" + +FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so" +FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a" +FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/" -- cgit v1.2.3