summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2010-03-31 19:42:22 +0100
committerDamien Lespiau <damien.lespiau@intel.com>2010-03-31 19:42:22 +0100
commita473ac59a67007473ed5bfaa7ee06449d40e1dc3 (patch)
tree9d9b659fbe1fcd60a00a850d509f561ae424de6c
parentc0f2aedec36cc6c4a056085b1cd7e20d074c6252 (diff)
downloadclutter-gst-broken/pbo-upload.tar.gz
sink: add a new buffer is the list is emptybroken/pbo-upload
-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,