diff --git a/.clutter-gst2.metadata b/.clutter-gst2.metadata index 2f44675..4f8efda 100644 --- a/.clutter-gst2.metadata +++ b/.clutter-gst2.metadata @@ -1 +1 @@ -623923ac8bfee20f0ce60b2d3671673ad342afaa SOURCES/clutter-gst-2.0.4.tar.xz +da6249c6ce686ba74e459402774831f19672379f SOURCES/clutter-gst-2.0.12.tar.xz diff --git a/.gitignore b/.gitignore index 8cf5c4a..8a88fed 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/clutter-gst-2.0.4.tar.xz +SOURCES/clutter-gst-2.0.12.tar.xz diff --git a/SOURCES/0001-video-sink-clear-buffer-in-flush.patch b/SOURCES/0001-video-sink-clear-buffer-in-flush.patch new file mode 100644 index 0000000..9230aab --- /dev/null +++ b/SOURCES/0001-video-sink-clear-buffer-in-flush.patch @@ -0,0 +1,58 @@ +From 6dd67050554caf7e689a0de28807631b56d01b16 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Tue, 19 May 2015 13:31:12 +0200 +Subject: [PATCH] video-sink: clear buffer in flush + +We need to release our refs to the buffer in FLUSH_START so that +upstream can free and reuse the memory. +--- + clutter-gst/clutter-gst-video-sink.c | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c +index 63867d4..ef6d996 100644 +--- a/clutter-gst/clutter-gst-video-sink.c ++++ b/clutter-gst/clutter-gst-video-sink.c +@@ -1971,6 +1971,31 @@ clutter_gst_video_sink_propose_allocation (GstBaseSink * base_sink, GstQuery * q + return TRUE; + } + ++static gboolean ++clutter_gst_video_sink_event (GstBaseSink * basesink, GstEvent * event) ++{ ++ ClutterGstVideoSink *sink = CLUTTER_GST_VIDEO_SINK (basesink); ++ ClutterGstVideoSinkPrivate *priv = sink->priv; ++ ClutterGstSource *gst_source = priv->source; ++ ++ switch (GST_EVENT_TYPE (event)) { ++ case GST_EVENT_FLUSH_START: ++ g_mutex_lock (&gst_source->buffer_lock); ++ if (gst_source->buffer) { ++ GST_DEBUG ("Freeing existing buffer %p", gst_source->buffer); ++ gst_buffer_unref (gst_source->buffer); ++ gst_source->buffer = NULL; ++ } ++ g_mutex_unlock (&gst_source->buffer_lock); ++ break; ++ ++ default: ++ break; ++ } ++ ++ return GST_BASE_SINK_CLASS (parent_class)->event (basesink, event); ++} ++ + static void + clutter_gst_video_sink_class_init (ClutterGstVideoSinkClass * klass) + { +@@ -2007,6 +2032,7 @@ clutter_gst_video_sink_class_init (ClutterGstVideoSinkClass * klass) + gstbase_sink_class->set_caps = clutter_gst_video_sink_set_caps; + gstbase_sink_class->get_caps = clutter_gst_video_sink_get_caps; + gstbase_sink_class->propose_allocation = clutter_gst_video_sink_propose_allocation; ++ gstbase_sink_class->event = clutter_gst_video_sink_event; + + /** + * ClutterGstVideoSink:texture: +-- +2.1.0 + diff --git a/SPECS/clutter-gst2.spec b/SPECS/clutter-gst2.spec index 2b344ac..49288dd 100644 --- a/SPECS/clutter-gst2.spec +++ b/SPECS/clutter-gst2.spec @@ -1,11 +1,12 @@ Name: clutter-gst2 -Version: 2.0.4 -Release: 3%{?dist} +Version: 2.0.12 +Release: 2%{?dist} Summary: GStreamer integration for Clutter License: LGPLv2+ URL: http://www.clutter-project.org Source0: http://ftp.gnome.org/pub/GNOME/sources/clutter-gst/2.0/clutter-gst-%{version}.tar.xz +Patch1: 0001-video-sink-clear-buffer-in-flush.patch BuildRequires: clutter-devel BuildRequires: gobject-introspection-devel @@ -33,6 +34,7 @@ developing applications that use clutter-gst API version 2.0. %prep %setup -q -n clutter-gst-%{version} +%patch1 -p1 %build %configure @@ -64,6 +66,14 @@ rm -rf $RPM_BUILD_ROOT%{_datadir}/gtk-doc/ #doc #{_datadir}/gtk-doc/ %changelog +* Tue May 19 2015 Wim Taymans - 2.0.12-2 +- Add patch to flush video sink, fixes errors in cheese +- Resolves: #1174515 + +* Thu Mar 19 2015 Richard Hughes - 2.0.12-1 +- Update to 2.0.12 +- Resolves: #1174515 + * Fri Jan 24 2014 Daniel Mach - 2.0.4-3 - Mass rebuild 2014-01-24