From 872fc2ed3d0339559e4023523fa0935f168f631a Mon Sep 17 00:00:00 2001
From: Luis de Bethencourt <luis@debethencourt.com>
Date: Tue, 28 Jul 2015 12:06:16 +0100
Subject: clutter: upgrade to clutter-gst-3.0

---
 configure.ac         | 4 ++--
 src/gst_engine.c     | 2 +-
 src/gst_engine.h     | 5 +++--
 src/snappy.c         | 7 ++-----
 src/user_interface.h | 4 ++++
 5 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/configure.ac b/configure.ac
index b2986c6..75ffb8d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -35,7 +35,7 @@ AC_CANONICAL_HOST
 # keep one single GST_REQ, core/base should be same versions anyway
 GST_REQ=1.0.0
 CLUTTER_REQS=1.12.0
-CLUTTER_GST_REQS=2.0.0
+CLUTTER_GST_REQS=2.99.2
 CLUTTER_GTK_REQS=1.0.2
 GTK_REQS=3.5.0
 GIO_REQ=2.32
@@ -55,7 +55,7 @@ PKG_CHECK_MODULES([CLUTTER],
 AC_SUBST(CLUTTER_CFLAGS)
 AC_SUBST(CLUTTER_LIBS)
 
-PKG_CHECK_MODULES([CLUTTER_GST], [clutter-gst-2.0 >= $CLUTTER_GST_REQS])
+PKG_CHECK_MODULES([CLUTTER_GST], [clutter-gst-3.0 >= $CLUTTER_GST_REQS])
 AC_SUBST(CLUTTER_GST_CFLAGS)
 AC_SUBST(CLUTTER_GST_LIBS)
 
diff --git a/src/gst_engine.c b/src/gst_engine.c
index 8fc16d4..431d77c 100644
--- a/src/gst_engine.c
+++ b/src/gst_engine.c
@@ -724,7 +724,7 @@ cycle_streams (GstEngine * engine, guint streamid)
 
 /*            Init GstEngine variables           */
 gboolean
-engine_init (GstEngine * engine, GstElement * sink)
+engine_init (GstEngine * engine, ClutterGstVideoSink * sink)
 {
   engine->playing = FALSE;
   engine->direction_foward = TRUE;
diff --git a/src/gst_engine.h b/src/gst_engine.h
index 70dce63..1c044eb 100644
--- a/src/gst_engine.h
+++ b/src/gst_engine.h
@@ -24,6 +24,7 @@
 #define __GST_ENGINE_H__
 
 #include <gst/gst.h>
+#include <clutter-gst/clutter-gst.h>
 
 /* GStreamer Interfaces */
 #include <gst/video/navigation.h>
@@ -50,7 +51,7 @@ struct _GstEngine
   gchar *uri;
 
   GstElement *player;
-  GstElement *sink;
+  ClutterGstVideoSink *sink;
 
   GstBus *bus;
 
@@ -64,7 +65,7 @@ gboolean bus_call (GstBus * bus, GstMessage * msg, gpointer data);
 gboolean change_state (GstEngine * engine, gchar * state);
 gboolean check_missing_plugins_error (GstEngine * engine, GstMessage * msg);
 gboolean cycle_streams (GstEngine * engine, guint streamid);
-gboolean engine_init (GstEngine * engine, GstElement * sink);
+gboolean engine_init (GstEngine * engine, ClutterGstVideoSink * sink);
 gboolean engine_change_offset (GstEngine * engine, gint64 av_offest);
 gboolean engine_change_speed (GstEngine * engine, gdouble rate);
 void engine_load_uri (GstEngine * engine, gchar * uri);
diff --git a/src/snappy.c b/src/snappy.c
index c2bb2d0..c06fd10 100644
--- a/src/snappy.c
+++ b/src/snappy.c
@@ -29,9 +29,6 @@
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
-#include <clutter/clutter.h>
-#include <clutter-gst/clutter-gst.h>
-#include <clutter-gtk/clutter-gtk.h>
 
 #include "user_interface.h"
 
@@ -160,7 +157,7 @@ main (int argc, char *argv[])
   UserInterface *ui = NULL;
   GstEngine *engine = NULL;
   ClutterActor *video_texture;
-  GstElement *sink;
+  ClutterGstVideoSink *sink;
 
   gboolean ok, blind = FALSE, fullscreen = FALSE, hide = FALSE, loop = FALSE;
   gboolean secret = FALSE, tags = FALSE;
@@ -230,7 +227,7 @@ main (int argc, char *argv[])
 
   /* Gstreamer engine */
   engine = g_new (GstEngine, 1);
-  sink = gst_element_factory_make ("cluttersink", "video-sink");
+  sink = clutter_gst_video_sink_new ();
   if (sink == NULL) {
     g_print ("ERROR: Failed to create clutter-gst sink element\n");
     return FALSE;
diff --git a/src/user_interface.h b/src/user_interface.h
index 6fe43c5..b011da0 100644
--- a/src/user_interface.h
+++ b/src/user_interface.h
@@ -23,6 +23,10 @@
 #ifndef __USER_INTERFACE_H__
 #define __USER_INTERFACE_H__
 
+#include <clutter/clutter.h>
+#include <clutter-gst/clutter-gst.h>
+#include <clutter-gtk/clutter-gtk.h>
+
 #include <gtk/gtk.h>
 
 #include "gst_engine.h"
-- 
cgit v0.11.2

From f33f7a5e9424544884a37b264bf88ee1866a56ac Mon Sep 17 00:00:00 2001
From: Luis de Bethencourt <luis@debethencourt.com>
Date: Tue, 28 Jul 2015 14:02:44 +0100
Subject: clutter: update method to create video texture

---
 src/snappy.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/snappy.c b/src/snappy.c
index c06fd10..94b6e5b 100644
--- a/src/snappy.c
+++ b/src/snappy.c
@@ -222,8 +222,6 @@ main (int argc, char *argv[])
   ui->tags = tags;
   ui->data_dir = data_dir;
   interface_init (ui);
-  video_texture = g_object_new (CLUTTER_TYPE_TEXTURE, "disable-slicing", TRUE,
-      NULL);
 
   /* Gstreamer engine */
   engine = g_new (GstEngine, 1);
@@ -232,7 +230,9 @@ main (int argc, char *argv[])
     g_print ("ERROR: Failed to create clutter-gst sink element\n");
     return FALSE;
   }
-  g_object_set (G_OBJECT (sink), "texture", video_texture, NULL);
+  video_texture = g_object_new (CLUTTER_TYPE_ACTOR, "content",
+      g_object_new (CLUTTER_GST_TYPE_CONTENT, "sink", sink, NULL),
+      "name", "texture", NULL);
 
   ok = engine_init (engine, sink);
   if (!ok)
-- 
cgit v0.11.2

