[OE-core] [PATCH] gst-player: port to GTK+ 2

Ross Burton ross.burton at intel.com
Mon Mar 2 11:41:47 UTC 2015


Whilst Sato still uses GTK+ 2 we don't want the overhead of building both GTK+ 2
and GKT+ 3.  Luckily gtk-play is a simple application and it's just a small
patch away from building with GTK+ 2.

When Sato is ported to GTK+ 3 (the mythical Shuku proposal) this patch can be
removed.

Signed-off-by: Ross Burton <ross.burton at intel.com>
---
 .../gstreamer/gst-player/gtk2.patch                |   71 ++++++++++++++++++++
 .../recipes-multimedia/gstreamer/gst-player_git.bb |    3 +-
 2 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 meta/recipes-multimedia/gstreamer/gst-player/gtk2.patch

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 0000000..2cd18bb
--- /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 at 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
index cd96d77..988c407 100644
--- a/meta/recipes-multimedia/gstreamer/gst-player_git.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-player_git.bb
@@ -3,10 +3,11 @@ 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+3"
+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://gst-player.desktop"
 
 SRCREV = "5386c5b984d40ef5434673ed62204e69aaf52645"
-- 
1.7.10.4




More information about the Openembedded-core mailing list