diff options
author | Damien Lespiau <damien.lespiau@intel.com> | 2010-03-31 19:42:22 +0100 |
---|---|---|
committer | Damien Lespiau <damien.lespiau@intel.com> | 2010-03-31 19:42:22 +0100 |
commit | a473ac59a67007473ed5bfaa7ee06449d40e1dc3 (patch) | |
tree | 9d9b659fbe1fcd60a00a850d509f561ae424de6c | |
parent | c0f2aedec36cc6c4a056085b1cd7e20d074c6252 (diff) | |
download | clutter-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.c | 14 |
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, |