From ef230a361600ae35a8de795960252cf95e39103a Mon Sep 17 00:00:00 2001 From: Javier Viguera Date: Fri, 15 Jan 2016 17:25:19 +0100 Subject: [PATCH] gst-player: support setting the video sink from environment var Also initialize the video sink to 'glimagesink' in case it has not been configured from the environment, but only for the X11 application (gtk-play). This recipe also provides a command line application for framebuffer (gst-play) that is not affected by this change. https://jira.digi.com/browse/DEL-2132 Signed-off-by: Javier Viguera --- ...0001-gstplayer-force-use-glimagesink.patch | 52 +++++++++++++++++++ .../gstreamer/gst-player_git.bbappend | 5 ++ 2 files changed, 57 insertions(+) create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gst-player/0001-gstplayer-force-use-glimagesink.patch create mode 100644 meta-digi-dey/recipes-multimedia/gstreamer/gst-player_git.bbappend diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gst-player/0001-gstplayer-force-use-glimagesink.patch b/meta-digi-dey/recipes-multimedia/gstreamer/gst-player/0001-gstplayer-force-use-glimagesink.patch new file mode 100644 index 000000000..e578b35ec --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gst-player/0001-gstplayer-force-use-glimagesink.patch @@ -0,0 +1,52 @@ +From: Javier Viguera +Date: Fri, 15 Jan 2016 17:21:01 +0100 +Subject: [PATCH] gstplayer: force use glimagesink + +Add support to set the video sink from an environment variable. For the +X11 application (gtk-play) use the 'glimagesink' video sink if it has not +been set in the environment. + +Signed-off-by: Javier Viguera +--- + gtk/gtk-play.c | 3 +++ + lib/gst/player/gstplayer.c | 6 ++++++ + 2 files changed, 9 insertions(+) + +diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c +index b92773b115b5..a364ffcb349d 100644 +--- a/gtk/gtk-play.c ++++ b/gtk/gtk-play.c +@@ -403,6 +403,9 @@ main (gint argc, gchar ** argv) + file_names = NULL; + } + ++ /* Use 'glimagesink' for gtk-play if not already configured in the environment */ ++ g_setenv("VIDEOSINK", "glimagesink", FALSE); ++ + play.player = gst_player_new (); + play.playing = TRUE; + +diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c +index bd682d97b4b8..0c4869a9aa53 100644 +--- a/lib/gst/player/gstplayer.c ++++ b/lib/gst/player/gstplayer.c +@@ -1033,6 +1033,7 @@ request_state_cb (GstBus * bus, GstMessage * msg, gpointer user_data) + static gpointer + gst_player_main (gpointer data) + { ++ GstElement *videosink; + GstPlayer *self = GST_PLAYER (data); + GstBus *bus; + GSource *source; +@@ -1053,6 +1054,11 @@ gst_player_main (gpointer data) + + self->priv->playbin = gst_element_factory_make ("playbin", "playbin"); + ++ /* Use video sink from environment variable */ ++ videosink = gst_element_factory_make(g_getenv("VIDEOSINK"), NULL); ++ if (videosink) ++ g_object_set(self->priv->playbin, "video-sink", videosink, NULL); ++ + self->priv->bus = bus = gst_element_get_bus (self->priv->playbin); + bus_source = gst_bus_create_watch (bus); + g_source_set_callback (bus_source, (GSourceFunc) gst_bus_async_signal_func, diff --git a/meta-digi-dey/recipes-multimedia/gstreamer/gst-player_git.bbappend b/meta-digi-dey/recipes-multimedia/gstreamer/gst-player_git.bbappend new file mode 100644 index 000000000..6cd905c3b --- /dev/null +++ b/meta-digi-dey/recipes-multimedia/gstreamer/gst-player_git.bbappend @@ -0,0 +1,5 @@ +# Copyright (C) 2016 Digi International + +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI_append = " file://0001-gstplayer-force-use-glimagesink.patch"