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/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch30
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch2
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb8
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb (renamed from meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb (renamed from meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-fluendo.inc4
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch252
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch107
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch54
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop10
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch71
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-player_git.bb38
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb7
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins-package.inc8
-rw-r--r--meta/recipes-multimedia/gstreamer/gst-plugins.inc6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.1.bb)10
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb3
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb11
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.1.bb)5
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb1
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc2
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch57
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc1
-rwxr-xr-xmeta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch25
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.1.bb)7
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.1.bb)6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb6
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch55
-rw-r--r--meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb (renamed from meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.1.bb)6
32 files changed, 740 insertions, 82 deletions
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch
deleted file mode 100644
index 6b60d163fb..0000000000
--- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-gst-ffmpeg: huffyuvdec: check width more completely, avoid out of array
- accesses
-
-Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
-
-Upstream-Status: Backport
-
-Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
----
- libavcodec/huffyuv.c | 5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/libavcodec/huffyuv.c b/libavcodec/huffyuv.c
-index 6e88114..ca5bcd8 100644
---- a/gst-libs/ext/libav/libavcodec/huffyuv.c
-+++ b/gst-libs/ext/libav/libavcodec/huffyuv.c
-@@ -526,6 +526,10 @@ s->bgr32=1;
- assert(0);
- }
-
-+ if (s->predictor == MEDIAN && avctx->pix_fmt == AV_PIX_FMT_YUV422P && avctx->width%4) {
-+ av_log(avctx, AV_LOG_ERROR, "width must be a multiple of 4 this colorspace and predictor\n");
-+ return AVERROR_INVALIDDATA;
-+ }
- alloc_temp(s);
-
- // av_log(NULL, AV_LOG_DEBUG, "pred:%d bpp:%d hbpp:%d il:%d\n", s->predictor, s->bitstream_bpp, avctx->bits_per_coded_sample, s->interlaced);
---
-1.7.5.4
-
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch
index 9055b341dc..1860752202 100644
--- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg-0.10.13/libav-9.patch
@@ -111,7 +111,7 @@ diff -uNr gst-ffmpeg-0.10.13.orig/ext/ffmpeg/gstffmpegcodecmap.c gst-ffmpeg-0.10
#include <gst/gst.h>
#ifdef HAVE_FFMPEG_UNINSTALLED
#include <avcodec.h>
-+#include <channel_layout.h>>
++#include <channel_layout.h>
#else
#include <libavcodec/avcodec.h>
+#include <libavutil/channel_layout.h>
diff --git a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
index 30e5deb1f9..b5c838f9ea 100644
--- a/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-ffmpeg_0.10.13.bb
@@ -12,9 +12,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://gst-libs/ext/libav/COPYING.LGPLv3;md5=e6a600fd5e1d9cbde2d983680233ad02"
LICENSE_FLAGS = "commercial"
HOMEPAGE = "http://www.gstreamer.net/"
-DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native"
+DEPENDS = "gstreamer gst-plugins-base zlib bzip2 yasm-native libpostproc"
-inherit autotools pkgconfig
+inherit autotools-brokensep pkgconfig
SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
file://lower-rank.diff \
@@ -46,7 +46,6 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
file://0001-avcodec-rpza-Perform-pointer-advance-and-checks-befo.patch \
file://gst-ffmpeg-CVE-2013-0855.patch \
file://0001-qdm2dec-fix-buffer-overflow.patch \
- file://0001-huffyuvdec-check-width-more-completely-avoid-out-of-.patch \
file://0001-smackerdec-Check-that-the-last-indexes-are-within-th.patch \
file://0001-avcodec-dsputil-fix-signedness-in-sizeof-comparissio.patch \
file://0001-error-concealment-initialize-block-index.patch \
@@ -57,7 +56,7 @@ SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
file://0001-h264-skip-error-concealment-when-SPS-and-slices-are-.patch \
file://0001-avcodec-smc-fix-off-by-1-error.patch \
file://0002-avcodec-mjpegdec-check-bits-per-pixel-for-changes-si.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'libav9', 'file://libav-9.patch', '', d)} \
+ file://libav-9.patch \
"
SRC_URI[md5sum] = "7f5beacaf1312db2db30a026b36888c4"
@@ -84,7 +83,6 @@ EXTRA_OECONF = "${FFMPEG_EXTRA_CONFIGURE_COMMON}"
PACKAGECONFIG ??= "external-libav"
PACKAGECONFIG[external-libav] = "--with-system-ffmpeg,,libav"
PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
-PACKAGECONFIG[libav9] = ",,,"
FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb
index 9e68288844..1e2cd2a4ab 100644
--- a/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.19.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mp3_0.10.31.bb
@@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2"
LICENSE_FLAGS = "commercial"
GSTREAMER_DEBUG ?= "--disable-debug"
-EXTRA_OECONF += "${GSTREAMER_DEBUG}"
+EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10"
acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-SRC_URI[md5sum] = "5d95a9a216dd15bc5c00c9414061115c"
-SRC_URI[sha256sum] = "30c79d24d8926f75dd4ef0f572942ce155ad541734b36a95591b9c0524dcc0f3"
+SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38"
+SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb
index f79015403b..7bba41a341 100644
--- a/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.72.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo-mpegdemux_0.10.85.bb
@@ -1,6 +1,6 @@
require gst-fluendo.inc
-SUMMARY = "Fluendo closed-format mpeg video GStreamer plug-in"
+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"
@@ -8,5 +8,5 @@ LICENSE_FLAGS = "commercial"
acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-SRC_URI[md5sum] = "df726579404af65b9536428661ab4322"
-SRC_URI[sha256sum] = "a9784bc16352d0fb73de81b9c17142609e8bede46f6d9b881fc3d19673954abf"
+SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970"
+SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424"
diff --git a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
index feaf1c7c62..7a77d624f2 100644
--- a/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
+++ b/meta/recipes-multimedia/gstreamer/gst-fluendo.inc
@@ -1,7 +1,7 @@
SUMMARY = "Fluendo closed-format GStreamer plug-in"
SECTION = "multimedia"
-HOMEPAGE = "http://www.fluendo.com/resources/source-plugins.php"
-DEPENDS = "gstreamer zlib"
+HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki"
+DEPENDS = "gstreamer gst-plugins-base zlib"
inherit autotools pkgconfig
diff --git a/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch b/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch
new file mode 100644
index 0000000000..712d46daa0
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player/Add-error-signal-emission-for-missing-plugins.patch
@@ -0,0 +1,252 @@
+From d64c7edb66f4a64ff49c4306cf77fd269b7079ab Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Mon, 16 Mar 2015 13:45:30 +0200
+Subject: [PATCH] Add error signal emission for missing plugins
+
+Add a missing plugins error signal to gst-player. Note that this error
+does not necessarily mean the playback has completely failed, but in
+practice the user experience will be bad (think, e.g. of a mp4 file
+where H.264 codec is missing: AAC playback still works...).
+
+Use the signal in gtk-play to show a infobar if plugins are missing.
+
+Submitted upstream at https://github.com/sdroege/gst-player/pull/11
+
+Upstream-Status: Submitted
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+---
+ configure.ac | 2 +-
+ gtk/gtk-play.c | 54 +++++++++++++++++++++++++++++++++++++++++++++-
+ lib/gst/player/gstplayer.c | 22 +++++++++++++++++++
+ lib/gst/player/gstplayer.h | 3 ++-
+ 4 files changed, 78 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 90ab74c..6cdb4eb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -53,7 +53,7 @@ AC_SUBST(LT_AGE)
+ PKG_PROG_PKG_CONFIG
+
+ PKG_CHECK_MODULES(GLIB, [glib-2.0 gobject-2.0])
+-PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0 >= 1.4 gstreamer-video-1.0 >= 1.4])
++PKG_CHECK_MODULES(GSTREAMER, [gstreamer-1.0 >= 1.4 gstreamer-video-1.0 >= 1.4 gstreamer-pbutils-1.0])
+
+ GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
+ AC_SUBST(GLIB_PREFIX)
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
+index b92773b..e2b605a 100644
+--- a/gtk/gtk-play.c
++++ b/gtk/gtk-play.c
+@@ -30,6 +30,8 @@ typedef struct
+ GtkWidget *prev_button, *next_button;
+ GtkWidget *seekbar;
+ GtkWidget *video_area;
++ GtkWidget *info_label;
++ GtkWidget *info_bar;
+ GtkWidget *volume_button;
+ gulong seekbar_value_changed_signal_id;
+ gboolean playing;
+@@ -141,6 +143,13 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play)
+ }
+
+ static void
++clear_missing_plugins (GtkPlay * play)
++{
++ gtk_label_set_text (GTK_LABEL (play->info_label), "");
++ gtk_widget_hide (play->info_bar);
++}
++
++static void
+ skip_prev_clicked_cb (GtkButton * button, GtkPlay * play)
+ {
+ GList *prev;
+@@ -155,6 +164,7 @@ skip_prev_clicked_cb (GtkButton * button, GtkPlay * play)
+
+ gtk_widget_set_sensitive (play->next_button, TRUE);
+ gst_player_set_uri (play->player, prev->data);
++ clear_missing_plugins (play);
+ gst_player_play (play->player);
+ set_title (play, prev->data);
+ gtk_widget_set_sensitive (play->prev_button, g_list_previous (prev) != NULL);
+@@ -175,6 +185,7 @@ skip_next_clicked_cb (GtkButton * button, GtkPlay * play)
+
+ gtk_widget_set_sensitive (play->prev_button, TRUE);
+ gst_player_set_uri (play->player, next->data);
++ clear_missing_plugins (play);
+ gst_player_play (play->player);
+ set_title (play, next->data);
+ gtk_widget_set_sensitive (play->next_button, g_list_next (next) != NULL);
+@@ -193,10 +204,16 @@ volume_changed_cb (GtkScaleButton * button, gdouble value, GtkPlay * play)
+ gst_player_set_volume (play->player, value);
+ }
+
++void
++info_bar_response_cb (GtkInfoBar * bar, gint response, GtkPlay * play)
++{
++ gtk_widget_hide (GTK_WIDGET (bar));
++}
++
+ static void
+ create_ui (GtkPlay * play)
+ {
+- GtkWidget *controls, *main_hbox, *main_vbox;
++ GtkWidget *controls, *main_hbox, *main_vbox, *info_bar, *content_area;
+
+ play->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ g_signal_connect (G_OBJECT (play->window), "delete-event",
+@@ -208,6 +225,20 @@ create_ui (GtkPlay * play)
+ g_signal_connect (play->video_area, "realize",
+ G_CALLBACK (video_area_realize_cb), play);
+
++ play->info_bar = gtk_info_bar_new ();
++ gtk_info_bar_set_message_type (GTK_INFO_BAR (play->info_bar),
++ GTK_MESSAGE_WARNING);
++ //gtk_info_bar_set_show_close_button (GTK_INFO_BAR (play->info_bar),
++ // TRUE);
++ gtk_widget_set_no_show_all (play->info_bar, TRUE);
++ g_signal_connect (play->info_bar, "response",
++ G_CALLBACK (info_bar_response_cb), play);
++
++ content_area = gtk_info_bar_get_content_area (GTK_INFO_BAR (play->info_bar));
++ play->info_label = gtk_label_new ("");
++ gtk_container_add (GTK_CONTAINER (content_area), play->info_label);
++ gtk_widget_show (play->info_label);
++
+ /* Unified play/pause button */
+ play->play_pause_button =
+ gtk_button_new_from_icon_name ("media-playback-pause",
+@@ -258,6 +289,7 @@ create_ui (GtkPlay * play)
+
+ main_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_box_pack_start (GTK_BOX (main_vbox), main_hbox, TRUE, TRUE, 0);
++ gtk_box_pack_start (GTK_BOX (main_vbox), play->info_bar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (main_vbox), controls, FALSE, FALSE, 0);
+ gtk_container_add (GTK_CONTAINER (play->window), main_vbox);
+
+@@ -322,6 +354,7 @@ eos_cb (GstPlayer * unused, GtkPlay * play)
+ gtk_widget_set_sensitive (play->next_button, g_list_next (next) != NULL);
+
+ gst_player_set_uri (play->player, next->data);
++ clear_missing_plugins (play);
+ gst_player_play (play->player);
+ set_title (play, next->data);
+ } else {
+@@ -330,6 +363,24 @@ eos_cb (GstPlayer * unused, GtkPlay * play)
+ }
+ }
+
++static void
++error_cb (GstPlayer * player, GError * err, GtkPlay * play)
++{
++ char *message;
++
++ if (g_error_matches (err, gst_player_error_quark (),
++ GST_PLAYER_ERROR_MISSING_PLUGIN)) {
++ // add message to end of any existing message: there may be
++ // multiple missing plugins.
++ message = g_strdup_printf ("%s%s. ",
++ gtk_label_get_text (GTK_LABEL (play->info_label)), err->message);
++ gtk_label_set_text (GTK_LABEL (play->info_label), message);
++ g_free (message);
++
++ gtk_widget_show (play->info_bar);
++ }
++}
++
+ int
+ main (gint argc, gchar ** argv)
+ {
+@@ -422,6 +473,7 @@ main (gint argc, gchar ** argv)
+ g_signal_connect (play.player, "video-dimensions-changed",
+ G_CALLBACK (video_dimensions_changed_cb), &play);
+ g_signal_connect (play.player, "end-of-stream", G_CALLBACK (eos_cb), &play);
++ g_signal_connect (play.player, "error", G_CALLBACK (error_cb), &play);
+
+ /* We have file(s) that need playing. */
+ set_title (&play, g_list_first (play.uris)->data);
+diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c
+index bd682d9..78e7ba1 100644
+--- a/lib/gst/player/gstplayer.c
++++ b/lib/gst/player/gstplayer.c
+@@ -47,6 +47,7 @@
+
+ #include <gst/gst.h>
+ #include <gst/video/video.h>
++#include <gst/pbutils/missing-plugins.h>
+
+ GST_DEBUG_CATEGORY_STATIC (gst_player_debug);
+ #define GST_CAT_DEFAULT gst_player_debug
+@@ -238,6 +239,7 @@ gst_player_class_init (GstPlayerClass * klass)
+ g_signal_new ("video-dimensions-changed", G_TYPE_FROM_CLASS (klass),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_NO_RECURSE | G_SIGNAL_NO_HOOKS, 0, NULL,
+ NULL, NULL, G_TYPE_NONE, 2, G_TYPE_INT, G_TYPE_INT);
++
+ }
+
+ static void
+@@ -619,6 +621,21 @@ error_cb (GstBus * bus, GstMessage * msg, gpointer user_data)
+ g_mutex_unlock (&self->priv->lock);
+ }
+
++static void
++element_cb (GstBus * bus, GstMessage * msg, gpointer user_data)
++{
++ GstPlayer *self = GST_PLAYER (user_data);
++
++ if (gst_is_missing_plugin_message (msg)) {
++ gchar *desc;
++
++ desc = gst_missing_plugin_message_get_description (msg);
++ emit_error (self, g_error_new (GST_PLAYER_ERROR,
++ GST_PLAYER_ERROR_MISSING_PLUGIN, "Missing plugin '%s'", desc));
++ g_free (desc);
++ }
++}
++
+ static gboolean
+ eos_dispatch (gpointer user_data)
+ {
+@@ -1059,6 +1076,8 @@ gst_player_main (gpointer data)
+ NULL, NULL);
+ g_source_attach (bus_source, self->priv->context);
+
++ g_signal_connect (G_OBJECT (bus), "message::element",
++ G_CALLBACK (element_cb), self);
+ g_signal_connect (G_OBJECT (bus), "message::error", G_CALLBACK (error_cb),
+ self);
+ g_signal_connect (G_OBJECT (bus), "message::eos", G_CALLBACK (eos_cb), self);
+@@ -1560,6 +1579,7 @@ gst_player_error_get_type (void)
+ static gsize id = 0;
+ static const GEnumValue values[] = {
+ {C_ENUM (GST_PLAYER_ERROR_FAILED), "GST_PLAYER_ERROR_FAILED", "failed"},
++ {C_ENUM (GST_PLAYER_ERROR_MISSING_PLUGIN), "GST_PLAYER_ERROR_MISSING_PLUGIN", "missing-plugin"},
+ {0, NULL, NULL}
+ };
+
+@@ -1577,6 +1597,8 @@ gst_player_error_get_name (GstPlayerError error)
+ switch (error) {
+ case GST_PLAYER_ERROR_FAILED:
+ return "failed";
++ case GST_PLAYER_ERROR_MISSING_PLUGIN:
++ return "missing-plugin";
+ }
+
+ g_assert_not_reached ();
+diff --git a/lib/gst/player/gstplayer.h b/lib/gst/player/gstplayer.h
+index c438513..35fb5bb 100644
+--- a/lib/gst/player/gstplayer.h
++++ b/lib/gst/player/gstplayer.h
+@@ -44,7 +44,8 @@ GType gst_player_error_get_type (void);
+ #define GST_TYPE_PLAYER_ERROR (gst_player_error_get_type ())
+
+ typedef enum {
+- GST_PLAYER_ERROR_FAILED = 0
++ GST_PLAYER_ERROR_FAILED = 0,
++ GST_PLAYER_ERROR_MISSING_PLUGIN
+ } GstPlayerError;
+
+ const gchar *gst_player_error_get_name (GstPlayerError error);
+--
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch b/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch
new file mode 100644
index 0000000000..783c42ad70
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player/Fix-pause-play.patch
@@ -0,0 +1,107 @@
+Fix pause/play
+
+The current player state is now notified via the state-changed signal,
+and in the GTK UI it was only used to keep track of the desired state.
+
+This is a backport of upstream commit 738479c7a0.
+
+Upstream-Status: Backport
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+---
+ gtk/gtk-play.c | 8 ++++++--
+ lib/gst/player/gstplayer.c | 12 ------------
+ lib/gst/player/gstplayer.h | 2 --
+ 3 files changed, 6 insertions(+), 16 deletions(-)
+
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
+index 6e7a098..e2b605a 100644
+--- a/gtk/gtk-play.c
++++ b/gtk/gtk-play.c
+@@ -34,6 +34,7 @@ typedef struct
+ GtkWidget *info_bar;
+ GtkWidget *volume_button;
+ gulong seekbar_value_changed_signal_id;
++ gboolean playing;
+ } GtkPlay;
+
+ /* Compat stubs */
+@@ -118,12 +119,13 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play)
+ {
+ GtkWidget *image;
+
+- if (gst_player_is_playing (play->player)) {
++ if (play->playing) {
+ gst_player_pause (play->player);
+ image =
+ gtk_image_new_from_icon_name ("media-playback-start",
+ GTK_ICON_SIZE_BUTTON);
+ gtk_button_set_image (GTK_BUTTON (play->play_pause_button), image);
++ play->playing = FALSE;
+ } else {
+ gchar *title;
+
+@@ -136,6 +138,7 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play)
+ title = gst_player_get_uri (play->player);
+ set_title (play, title);
+ g_free (title);
++ play->playing = TRUE;
+ }
+ }
+
+@@ -335,7 +338,7 @@ video_dimensions_changed_cb (GstPlayer * unused, gint width, gint height,
+ static void
+ eos_cb (GstPlayer * unused, GtkPlay * play)
+ {
+- if (gst_player_is_playing (play->player)) {
++ if (play->playing) {
+ GList *next = NULL;
+ gchar *uri;
+
+@@ -452,6 +455,7 @@ main (gint argc, gchar ** argv)
+ }
+
+ play.player = gst_player_new ();
++ play.playing = TRUE;
+
+ g_object_set (play.player, "dispatch-to-main-context", TRUE, NULL);
+
+diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c
+index 069b284..78e7ba1 100644
+--- a/lib/gst/player/gstplayer.c
++++ b/lib/gst/player/gstplayer.c
+@@ -1422,18 +1422,6 @@ gst_player_set_uri (GstPlayer * self, const gchar * val)
+ g_object_set (self, "uri", val, NULL);
+ }
+
+-gboolean
+-gst_player_is_playing (GstPlayer * self)
+-{
+- gboolean val;
+-
+- g_return_val_if_fail (GST_IS_PLAYER (self), FALSE);
+-
+- g_object_get (self, "is-playing", &val, NULL);
+-
+- return val;
+-}
+-
+ GstClockTime
+ gst_player_get_position (GstPlayer * self)
+ {
+diff --git a/lib/gst/player/gstplayer.h b/lib/gst/player/gstplayer.h
+index 6933dd7..35fb5bb 100644
+--- a/lib/gst/player/gstplayer.h
++++ b/lib/gst/player/gstplayer.h
+@@ -93,8 +93,6 @@ gchar * gst_player_get_uri (GstPlayer * player);
+ void gst_player_set_uri (GstPlayer * player,
+ const gchar * uri);
+
+-gboolean gst_player_is_playing (GstPlayer * player);
+-
+ GstClockTime gst_player_get_position (GstPlayer * player);
+ GstClockTime gst_player_get_duration (GstPlayer * player);
+
+--
+2.1.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch b/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch
new file mode 100644
index 0000000000..7bf1b034b3
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player/filechooser.patch
@@ -0,0 +1,54 @@
+Upstream-Status: Submitted
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From 43d4b19ab611d844156e26c4840cc54ddb73ae03 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Thu, 26 Feb 2015 17:17:05 +0000
+Subject: [PATCH] gtk-play: show a file chooser if no URIs were passed
+
+---
+ gtk/gtk-play.c | 28 ++++++++++++++++++++++++++--
+ 1 file changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
+index f015077..9766a72 100644
+--- a/gtk/gtk-play.c
++++ b/gtk/gtk-play.c
+@@ -319,8 +319,32 @@ main (gint argc, gchar ** argv)
+ // FIXME: Add support for playlists and stuff
+ /* Parse the list of the file names we have to play. */
+ if (!file_names) {
+- g_print ("Usage: %s FILE(s)|URI(s)\n", APP_NAME);
+- return 1;
++ GtkWidget *chooser;
++ int res;
++
++ chooser = gtk_file_chooser_dialog_new ("Select files to play", NULL,
++ GTK_FILE_CHOOSER_ACTION_OPEN,
++ "_Cancel", GTK_RESPONSE_CANCEL,
++ "_Open", GTK_RESPONSE_ACCEPT,
++ NULL);
++ g_object_set (chooser,
++ "local-only", FALSE,
++ "select-multiple", TRUE,
++ NULL);
++
++ res = gtk_dialog_run (GTK_DIALOG (chooser));
++ if (res == GTK_RESPONSE_ACCEPT) {
++ GSList *l;
++
++ l = gtk_file_chooser_get_uris (GTK_FILE_CHOOSER (chooser));
++ while (l) {
++ play.uris = g_list_append (play.uris, l->data);
++ l = g_slist_delete_link (l, l);
++ }
++ } else {
++ return 0;
++ }
++ gtk_widget_destroy (chooser);
+ } else {
+ guint i;
+
+--
+1.7.10.4
+
diff --git a/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop b/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop
new file mode 100644
index 0000000000..9fd207b384
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player/gst-player.desktop
@@ -0,0 +1,10 @@
+[Desktop Entry]
+Name=Media Player
+Comment=Basic media player
+Icon=audio-player
+TryExec=gtk-play
+Exec=gtk-play
+StartupNotify=true
+Terminal=false
+Type=Application
+Categories=GTK;AudioVideo;
diff --git a/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch b/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch
new file mode 100644
index 0000000000..2cd18bbc95
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch
@@ -0,0 +1,71 @@
+As the rest of Sato is GTK+ 2, patch gtk-play to use GTK+ 2. When the rest of
+Sato has been ported to GTK+ 3 this patch can be dropped.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+
+diff --git a/configure.ac b/configure.ac
+index b8af13b..90ab74c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -60,7 +60,7 @@ AC_SUBST(GLIB_PREFIX)
+ GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-1.0`"
+ AC_SUBST(GST_PREFIX)
+
+-PKG_CHECK_MODULES(GTK, [gtk+-3.0], [have_gtk="yes"], [have_gtk="no"])
++PKG_CHECK_MODULES(GTK, [gtk+-2.0], [have_gtk="yes"], [have_gtk="no"])
+ AM_CONDITIONAL(HAVE_GTK, test "x$have_gtk" != "xno")
+
+ GOBJECT_INTROSPECTION_CHECK([1.31.1])
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
+index f015077..954d6fb 100644
+--- a/gtk/gtk-play.c
++++ b/gtk/gtk-play.c
+@@ -34,6 +34,46 @@ typedef struct
+ gulong seekbar_value_changed_signal_id;
+ } GtkPlay;
+
++/* Compat stubs */
++GtkWidget *
++gtk_box_new (GtkOrientation orientation,
++ gint spacing)
++{
++ switch (orientation) {
++ case GTK_ORIENTATION_HORIZONTAL:
++ return gtk_hbox_new (FALSE, spacing);
++ case GTK_ORIENTATION_VERTICAL:
++ return gtk_vbox_new (FALSE, spacing);
++ }
++}
++
++GtkWidget*
++gtk_button_new_from_icon_name (const gchar *icon_name,
++ GtkIconSize size)
++{
++ GtkWidget *button;
++ GtkWidget *image;
++
++ image = gtk_image_new_from_icon_name (icon_name, size);
++ button = g_object_new (GTK_TYPE_BUTTON,
++ "image", image,
++ NULL);
++ return button;
++}
++
++GtkWidget *
++gtk_scale_new_with_range (GtkOrientation orientation,
++ gdouble min,
++ gdouble max,
++ gdouble step)
++{
++ switch (orientation) {
++ case GTK_ORIENTATION_HORIZONTAL:
++ return gtk_hscale_new_with_range (min, max, step);
++ case GTK_ORIENTATION_VERTICAL:
++ return gtk_vscale_new_with_range (min, max, step);
++ }
++}
+
+ static void
+ set_title (GtkPlay * play, const gchar * title)
diff --git a/meta/recipes-multimedia/gstreamer/gst-player_git.bb b/meta/recipes-multimedia/gstreamer/gst-player_git.bb
new file mode 100644
index 0000000000..54cfbbc927
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gst-player_git.bb
@@ -0,0 +1,38 @@
+SUMMARY="GStreamer playback helper library and examples"
+
+LICENSE = "LGPL-2.0+"
+LIC_FILES_CHKSUM = "file://lib/gst/player/gstplayer.c;beginline=1;endline=19;md5=03aeca9d8295f811817909075a15ff65"
+
+DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base gtk+"
+
+SRC_URI = "git://github.com/sdroege/gst-player.git \
+ file://filechooser.patch \
+ file://gtk2.patch \
+ file://Fix-pause-play.patch \
+ file://Add-error-signal-emission-for-missing-plugins.patch \
+ file://gst-player.desktop"
+
+SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gtk-doc lib_package pkgconfig
+
+do_configure_prepend() {
+ touch ${S}/ChangeLog
+}
+
+EXTRA_OECONF += "ac_cv_path_VALGRIND=no ac_cv_path_GDB=no"
+
+do_install_append() {
+ install -m 0644 -D ${WORKDIR}/gst-player.desktop ${D}${datadir}/applications/gst-player.desktop
+}
+
+FILES_${PN}-bin += "${datadir}/applications/*.desktop"
+
+RDEPENDS_${PN}-bin = "gstreamer1.0-plugins-base-playback"
+RRECOMMENDS_${PN}-bin = "gstreamer1.0-plugins-base-meta \
+ gstreamer1.0-plugins-good-meta \
+ gstreamer1.0-plugins-bad-meta \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-libav", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "gstreamer1.0-plugins-ugly-meta", "", d)}"
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
index 495bb17649..af18281715 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-good_0.10.31.bb
@@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
PR = "r8"
-PACKAGECONFIG ?= "jpeg \
+PACKAGECONFIG ?= "jpeg v4l \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
"
@@ -16,7 +16,9 @@ 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] = "--with-libv4l2,--without-libv4l2,libv4l"
+PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,udev"
+# 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"
@@ -42,3 +44,4 @@ 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/recipes-multimedia/gstreamer/gst-plugins-package.inc b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
index 7bb567866f..cb1be06d09 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins-package.inc
@@ -7,7 +7,7 @@ python split_gstreamer10_packages () {
glibdir = d.getVar('libdir', True)
do_split_packages(d, glibdir, '^lib(.*)\.so\.*', 'lib%s', 'gstreamer %s library', extra_depends='', allow_links=True)
- do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}'))
+ do_split_packages(d, gst_libdir, 'libgst(.*)\.so$', d.expand('${PN}-%s'), 'GStreamer plugin for %s', postinst=postinst, extra_depends='')
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'))
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'))
}
@@ -40,8 +40,7 @@ python set_metapkg_rdepends () {
d.setVar('DESCRIPTION_' + metapkg, pn + ' meta package')
}
-# metapkg has runtime dependency on PN
-# each plugin depends on PN, plugin-dev on PN-dev, plugin-staticdev on PN-staticdev
+# each plugin-dev depends on PN-dev, plugin-staticdev on PN-staticdev
# so we need them even when empty (like in gst-plugins-good case)
ALLOW_EMPTY_${PN} = "1"
ALLOW_EMPTY_${PN}-dev = "1"
@@ -51,8 +50,9 @@ PACKAGES += "${PN}-apps ${PN}-meta ${PN}-glib"
FILES_${PN}-apps = "${bindir}"
RDEPENDS_${PN}-apps += "perl"
+RRECOMMENDS_${PN} += "${PN}-meta"
-FILES_${PN} = "${datadir}/gstreamer-${LIBV}"
+FILES_${PN} = ""
FILES_${PN}-dbg += "${libdir}/gstreamer-${LIBV}/.debug"
FILES_${PN}-glib = "${datadir}/glib-2.0"
diff --git a/meta/recipes-multimedia/gstreamer/gst-plugins.inc b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
index 26976092d6..c852c53fa9 100644
--- a/meta/recipes-multimedia/gstreamer/gst-plugins.inc
+++ b/meta/recipes-multimedia/gstreamer/gst-plugins.inc
@@ -19,10 +19,10 @@ require 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
+# ${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() {
+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/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb
index 8bba8312bc..11b1cfb08d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.4.5.bb
@@ -3,7 +3,7 @@ include gstreamer1.0-libav.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=6762ed442b3822387a51c92d928ead0d \
file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
- file://gst-libs/ext/libav/LICENSE;md5=df1087a33b5cafe5e70b3452aac81515 \
+ file://gst-libs/ext/libav/LICENSE;md5=ea66e97a7ac1db978cf3529068a8c948 \
file://gst-libs/ext/libav/COPYING.GPLv2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://gst-libs/ext/libav/COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504 \
file://gst-libs/ext/libav/COPYING.LGPLv2.1;md5=bd7a443320af8c812e4c18d1b79df004 \
@@ -13,12 +13,14 @@ SRC_URI = " \
http://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${PV}.tar.xz \
file://0001-Disable-yasm-for-libav-when-disable-yasm.patch \
"
-SRC_URI[md5sum] = "ea2d636c24d7c5ae123967ef22e37c07"
-SRC_URI[sha256sum] = "fc125521187fa84f3210269a0eecc51f8a856802f1ca4bb251f118dab90c5a9d"
+SRC_URI[md5sum] = "f4922a46adbcbe7bd01331ff5dc7979d"
+SRC_URI[sha256sum] = "605c62624604f3bb5c870844cc1f2711779cc533b004c2aa1d8c0d58557afbbc"
+
LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
--cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
--ranlib='${RANLIB}' \
- ${GSTREAMER_1_0_DEBUG}"
+ ${GSTREAMER_1_0_DEBUG} \
+ --cross-prefix='${HOST_PREFIX}'"
S = "${WORKDIR}/gst-libav-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
index b0e6b2ecb8..bf1b87e6de 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_git.bb
@@ -18,7 +18,8 @@ SRCREV = "127202d6f65584891dabf92be031f0d170b0e7f1"
LIBAV_EXTRA_CONFIGURE_COMMON_ARG = "--target-os=linux \
--cc='${CC}' --as='${CC}' --ld='${CC}' --nm='${NM}' --ar='${AR}' \
- ${GSTREAMER_1_0_DEBUG}"
+ ${GSTREAMER_1_0_DEBUG} \
+ --cross-prefix='${HOST_PREFIX}'"
do_configure_prepend() {
cd ${S}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
index 931a7fcc96..99c84668ef 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_git.bb
@@ -6,12 +6,17 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
SRC_URI = " \
- git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master \
- file://0001-omx-fixed-type-error-in-printf-call.patch \
+ git://anongit.freedesktop.org/gstreamer/gst-omx;branch=master;name=gst-omx \
+ git://anongit.freedesktop.org/gstreamer/common;destsuffix=git/common;branch=master;name=common \
+ file://0001-omx-fixed-type-error-in-printf-call.patch \
"
+
S = "${WORKDIR}/git"
-SRCREV = "a2db76b048db278ef0aa798e106b7594264e06c0"
+SRCREV_gst-omx = "a2db76b048db278ef0aa798e106b7594264e06c0"
+SRCREV_common = "5edcd857b2107cd8b78c16232dd10877513ec157"
+
+SRCREV_FORMAT = "gst-omx"
do_configure_prepend() {
cd ${S}
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
index dab0bf54a6..e2752af612 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad.inc
@@ -9,7 +9,7 @@ S = "${WORKDIR}/gst-plugins-bad-${PV}"
SRC_URI += "file://configure-allow-to-disable-libssh2.patch \
"
-inherit gettext
+inherit gettext bluetooth
# opengl packageconfig factored out to make it easy for distros
# and BSP layers to pick either (desktop) opengl, gles2, or no GL
@@ -49,7 +49,7 @@ PACKAGECONFIG[bz2] = "--enable-bz2,--disable-bz2,bzip2"
PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth"
PACKAGECONFIG[schroedinger] = "--enable-schro,--disable-schro,schroedinger"
PACKAGECONFIG[smoothstreaming] = "--enable-smoothstreaming,--disable-smoothstreaming,libxml2"
-PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
+PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,${BLUEZ}"
PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg"
PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
PACKAGECONFIG[webp] = "--enable-webp,--disable-webp,libwebp"
@@ -80,6 +80,7 @@ EXTRA_OECONF += " \
--disable-apple_media \
--disable-avc \
--disable-chromaprint \
+ --disable-cocoa \
--disable-daala \
--disable-dc1394 \
--disable-direct3d \
@@ -126,6 +127,7 @@ EXTRA_OECONF += " \
--disable-xvid \
--disable-zbar \
${GSTREAMER_1_0_ORC} \
+ ${@bb.utils.contains("TUNE_FEATURES", "mx32", "--disable-yadif", "", d)} \
"
ARM_INSTRUCTION_SET = "arm"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
index f0116c08a1..59065de811 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.4.5.bb
@@ -7,7 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=73a5855a8119deb017f5f13cf327095d \
SRC_URI += "file://0001-gl-do-not-check-for-GL-GLU-EGL-GLES2-libs-if-disable.patch"
-SRC_URI[md5sum] = "20cb190b18dc63017326321cdb7c91e5"
-SRC_URI[sha256sum] = "0268db2faaf0bb22e5b709a11633abbca4f3d289b1f513bb262d0bf3f53e19ae"
+SRC_URI[md5sum] = "e0bb39412cf4a48fe0397bcf3a7cd451"
+SRC_URI[sha256sum] = "152fad7250683d72f9deb36c5685428338365fe4a4c87ffe15e38783b14f983c"
+
S = "${WORKDIR}/gst-plugins-bad-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
index 75859f9a89..309505f7db 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_git.bb
@@ -11,7 +11,6 @@ S = "${WORKDIR}/git"
SRCREV = "6e5db57d2446a753aaa76bee268e1f95600b14ce"
-PACKAGECONFIG[bluez] = "--enable-bluez,--disable-bluez,bluez4"
PACKAGECONFIG[sbc] = "--enable-sbc,--disable-sbc,sbc"
PACKAGECONFIG[hls] = "--enable-hls,--disable-hls,gnutls"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
index 972ff18160..06eac67be7 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base.inc
@@ -35,6 +35,6 @@ EXTRA_OECONF += " \
${GSTREAMER_1_0_ORC} \
"
-FILES_${PN} += "${datadir}/gst-plugins-base"
+FILES_${MLPREFIX}libgsttag-1.0 += "${datadir}/gst-plugins-base/1.0/license-translations.dict"
CACHED_CONFIGUREVARS_append_i586 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch
new file mode 100644
index 0000000000..51fdc7e177
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base/taglist-not-send-to-down-stream-if-all-the-frame-cor.patch
@@ -0,0 +1,57 @@
+From 68fa1b1425ad2c5f7c5013d0943153a8a6d0934e Mon Sep 17 00:00:00 2001
+From: Jian Li <lj.qfy.sh@gmail.com>
+Date: Wed, 24 Sep 2014 17:21:02 +0800
+Subject: [PATCH] taglist not send to down stream if all the frame corrupted
+
+https://bugzilla.gnome.org/show_bug.cgi?id=737246
+
+Upstream status: Pending
+
+Signed-off-by: Jian Li <lj.qfy.sh@gmail.com>
+---
+ gst-libs/gst/audio/gstaudiodecoder.c | 9 +++++++++
+ gst-libs/gst/video/gstvideodecoder.c | 8 ++++++++
+ 2 files changed, 17 insertions(+)
+
+diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
+index 3504678..3d69efe 100644
+--- a/gst-libs/gst/audio/gstaudiodecoder.c
++++ b/gst-libs/gst/audio/gstaudiodecoder.c
+@@ -2083,6 +2083,15 @@ gst_audio_decoder_sink_eventfunc (GstAudioDecoder * dec, GstEvent * event)
+ gst_audio_decoder_drain (dec);
+ GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
+
++ /* send taglist if no valid frame is decoded util EOS */
++ if (dec->priv->taglist && dec->priv->taglist_changed) {
++ GST_DEBUG_OBJECT (dec, "codec tag %" GST_PTR_FORMAT, dec->priv->taglist);
++ if (!gst_tag_list_is_empty (dec->priv->taglist))
++ gst_audio_decoder_push_event (dec,
++ gst_event_new_tag (gst_tag_list_ref (dec->priv->taglist)));
++ dec->priv->taglist_changed = FALSE;
++ }
++
+ /* Forward EOS because no buffer or serialized event will come after
+ * EOS and nothing could trigger another _finish_frame() call. */
+ ret = gst_audio_decoder_push_event (dec, event);
+diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
+index dd8abe3..d9bfe4d 100644
+--- a/gst-libs/gst/video/gstvideodecoder.c
++++ b/gst-libs/gst/video/gstvideodecoder.c
+@@ -1024,6 +1024,14 @@ gst_video_decoder_sink_event_default (GstVideoDecoder * decoder,
+ * parent class' ::sink_event() until a later time.
+ */
+ forward_immediate = TRUE;
++
++ /* send taglist if no valid frame is decoded util EOS */
++ if (decoder->priv->tags && decoder->priv->tags_changed) {
++ gst_video_decoder_push_event (decoder,
++ gst_event_new_tag (gst_tag_list_ref (decoder->priv->tags)));
++ decoder->priv->tags_changed = FALSE;
++ }
++
+ break;
+ }
+ case GST_EVENT_GAP:
+--
+1.7.9.5
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
index 0db42cec94..11cf8b4fde 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.4.5.bb
@@ -7,8 +7,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c54ce9345727175ff66d17b67ff51f58 \
SRC_URI += "file://do-not-change-eos-event-to-gap-event-if.patch \
file://get-caps-from-src-pad-when-query-caps.patch \
+ file://taglist-not-send-to-down-stream-if-all-the-frame-cor.patch \
"
-SRC_URI[md5sum] = "a825628225bd0a58c0df87cdd2a5db91"
-SRC_URI[sha256sum] = "aea9e25be6691bd3cc0785d005b2b5d70ce313a2c897901680a3f7e7cab5a499"
+SRC_URI[md5sum] = "357165af625c0ca353ab47c5d843920e"
+SRC_URI[sha256sum] = "77bd8199e7a312d3d71de9b7ddf761a3b78560a2c2a80829d0815ca39cbd551d"
+
S = "${WORKDIR}/gst-plugins-base-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
index b33ab2b705..37217f004d 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good.inc
@@ -55,3 +55,4 @@ EXTRA_OECONF += " \
${GSTREAMER_1_0_ORC} \
"
+FILES_${PN}-equalizer += "${datadir}/gstreamer-1.0/presets/*.prs"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch
new file mode 100755
index 0000000000..7f94f50760
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/decrease_asteriskh263_rank.patch
@@ -0,0 +1,25 @@
+commit d71d74daac8ed54156ed103958ab455c63c72b0e
+Author: Song Bing <b06498@freescale.com>
+Date: Mon Nov 10 11:25:47 2014 +0800
+
+[asteriskh263] decrease the rank as we havn't this kind of decoder.
+
+Decrease the rank as we havn't this kind of decoder.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=739935
+
+Upstream Status: Pending
+
+Signed-off-by: Song Bing <b06498@freescale.com>
+
+diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c
+index a01fbc8..8fa3194 100644
+--- a/gst/rtp/gstasteriskh263.c
++++ b/gst/rtp/gstasteriskh263.c
+@@ -226,5 +226,5 @@ gboolean
+ gst_asteriskh263_plugin_init (GstPlugin * plugin)
+ {
+ return gst_element_register (plugin, "asteriskh263",
+- GST_RANK_SECONDARY, GST_TYPE_ASTERISK_H263);
++ GST_RANK_SECONDARY - 1, GST_TYPE_ASTERISK_H263);
+ }
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb
index 441dd51e39..943ab60397 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.4.5.bb
@@ -5,8 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
SRC_URI += "file://0001-gstrtpmp4gpay-set-dafault-value-for-MPEG4-without-co.patch \
+ file://decrease_asteriskh263_rank.patch \
"
-SRC_URI[md5sum] = "eb3a3296b2f6009def1f5a09590ce767"
-SRC_URI[sha256sum] = "8559d4270065b30ed5c49b826e1b7a3a2bd5ee9a340ae745a2ae3f9718e4c637"
-S = "${WORKDIR}/gst-plugins-good-${PV}"
+SRC_URI[md5sum] = "eaf1a6daf73749bc423feac301d60038"
+SRC_URI[sha256sum] = "79b1b5f3f7bcaa8a615202eb5e176121eeb8336960f70687e536ad78dbc7e641"
+S = "${WORKDIR}/gst-plugins-good-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb
index 6d63ba62d4..25cb28c060 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.4.5.bb
@@ -2,7 +2,9 @@ include gstreamer1.0-plugins-ugly.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 "
-SRC_URI[md5sum] = "316974af949ca4654efee704a0164076"
-SRC_URI[sha256sum] = "25440435ac4ed795d213f2420a0e7355e4a2e2e76d1f9d020b2073f815e8b071"
+
+SRC_URI[md5sum] = "6954beed7bb9a93e426dee543ff46393"
+SRC_URI[sha256sum] = "5cd5e81cf618944f4dc935f1669b2125e8bb2fe9cc7dc8dc15b72237aca49067"
+
S = "${WORKDIR}/gst-plugins-ugly-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb
deleted file mode 100644
index 1f34be0e8f..0000000000
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-include gstreamer1.0-rtsp-server.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
-
-SRC_URI[md5sum] = "e39f8643eb363611c342d87088a29aa0"
-SRC_URI[sha256sum] = "10aeacc774e99d81607aeb2748c0a1c6736425b8ae3a9caf8db3cd0c4a08d06e"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
new file mode 100644
index 0000000000..bb9b42b53f
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.4.5.bb
@@ -0,0 +1,6 @@
+include gstreamer1.0-rtsp-server.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d"
+
+SRC_URI[md5sum] = "a9f9b8899ec7ab33663cda7627db40d3"
+SRC_URI[sha256sum] = "3089254bd31b7c1f1cf2c034a3b3551f92878f9e3cab65cef3a901a04c0f1d37"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch
new file mode 100644
index 0000000000..8213c4b8b5
--- /dev/null
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0/0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch
@@ -0,0 +1,55 @@
+From 81fecd367b016e5ac4fb0c04b84da5c474f30da6 Mon Sep 17 00:00:00 2001
+From: Peter Urbanec <git.user@urbanec.net>
+Date: Fri, 27 Feb 2015 01:16:58 +1100
+Subject: [PATCH 1/1] gstinfo: Shorten __FILE__ on all platforms.
+
+This is useful not only for MSVC, but also with gcc/Linux when doing
+cross-compilation builds and out-of-tree builds.
+
+Upstream-Status: Submitted [https://bugzilla.gnome.org/show_bug.cgi?id=745213]
+
+Signed-off-by: Peter Urbanec <git.user@urbanec.net>
+---
+ gst/gstinfo.c | 11 ++++-------
+ 1 file changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/gst/gstinfo.c b/gst/gstinfo.c
+index b2a3005..8b61d09 100644
+--- a/gst/gstinfo.c
++++ b/gst/gstinfo.c
+@@ -444,7 +444,6 @@ gst_debug_log (GstDebugCategory * category, GstDebugLevel level,
+ va_end (var_args);
+ }
+
+-#ifdef G_OS_WIN32
+ /* based on g_basename(), which we can't use because it was deprecated */
+ static inline const gchar *
+ gst_path_basename (const gchar * file_name)
+@@ -467,7 +466,6 @@ gst_path_basename (const gchar * file_name)
+
+ return file_name;
+ }
+-#endif
+
+ /**
+ * gst_debug_log_valist:
+@@ -497,12 +495,11 @@ gst_debug_log_valist (GstDebugCategory * category, GstDebugLevel level,
+ g_return_if_fail (function != NULL);
+ g_return_if_fail (format != NULL);
+
+- /* The predefined macro __FILE__ is always the exact path given to the
+- * compiler with MSVC, which may or may not be the basename. We work
+- * around it at runtime to improve the readability. */
+-#ifdef G_OS_WIN32
++ /* The predefined macro __FILE__ can be an absolute path in some build
++ * environments, such as MSVC or out-of-tree cross-compiles. This may
++ * be significantly longer than the filename. We work around it at
++ * runtime to improve the readability. */
+ file = gst_path_basename (file);
+-#endif
+
+ message.message = NULL;
+ message.format = format;
+--
+2.3.0
+
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.1.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb
index 56fc4f2083..0a2ce86343 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.1.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.4.5.bb
@@ -6,8 +6,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=6762ed442b3822387a51c92d928ead0d \
SRC_URI = " \
http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.xz \
file://0001-Fix-crash-with-gst-inspect.patch \
+ file://0001-gstinfo-Shorten-__FILE__-on-all-platforms.patch \
"
-SRC_URI[md5sum] = "bd0938d680d657249b885162f310702d"
-SRC_URI[sha256sum] = "5638f75003282135815c0077d491da11e9a884ad91d4ba6ab3cc78bae0fb452e"
+SRC_URI[md5sum] = "88a9289c64a4950ebb4f544980234289"
+SRC_URI[sha256sum] = "40801aa7f979024526258a0e94707ba42b8ab6f7d2206e56adbc4433155cb0ae"
+
S = "${WORKDIR}/gstreamer-${PV}"