summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clutter-gst/clutter-gst-video-sink.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/clutter-gst/clutter-gst-video-sink.c b/clutter-gst/clutter-gst-video-sink.c
index f83f4fd..df4254d 100644
--- a/clutter-gst/clutter-gst-video-sink.c
+++ b/clutter-gst/clutter-gst-video-sink.c
@@ -413,7 +413,13 @@ clutter_gst_buffer_new (ClutterGstVideoSink *sink,
ClutterGstVideoSinkPrivate *priv = sink->priv;
ClutterGstBuffer *new_buffer;
guchar *map;
+ static guint last_size = 0;
+ if (size == 0)
+ size = last_size;
+ else
+ last_size = size;
+
new_buffer =
(ClutterGstBuffer *) gst_mini_object_new (CLUTTER_GST_TYPE_BUFFER);
@@ -689,6 +695,13 @@ memory_management:
g_cond_signal (request->wait_for_buffer);
}
+ if (priv->buffer_pool == NULL)
+ {
+ ClutterGstBuffer *new_buffer;
+ new_buffer = clutter_gst_buffer_new (sink, 0);
+ priv->buffer_pool = g_slist_prepend (priv->buffer_pool, new_buffer);
+ }
+
g_mutex_unlock (priv->pool_lock);
GST_DEBUG_OBJECT (sink, "dispatch end");
@@ -1628,6 +1641,7 @@ clutter_gst_video_sink_buffer_alloc (GstBaseSink *bsink,
request = clutter_gst_buffer_request_new (size);
clutter_gst_video_sink_queue_buffer_request (sink, request);
+ printf ("waiting\n");
GST_DEBUG_OBJECT (sink,
"(%d) (req%d) waiting for new buffer\n",
i,