summaryrefslogtreecommitdiffstats
path: root/gst/liveadder
diff options
context:
space:
mode:
authorYouness Alaoui <youness.alaoui@collabora.co.uk>2008-04-28 15:48:50 +0000
committerEdward Hervey <bilboed@bilboed.com>2009-02-17 19:29:04 +0100
commit2a2d21a1f2cdf6b45cf12164ae5746c39e38962d (patch)
tree007c42da2516807c6cd7a0429691352b611ff392 /gst/liveadder
parentc9450ad8e22b9ec434ae46a5cc7da03aaaad76f4 (diff)
downloadgst-plugins-bad-2a2d21a1f2cdf6b45cf12164ae5746c39e38962d.tar.gz
gst-plugins-bad-2a2d21a1f2cdf6b45cf12164ae5746c39e38962d.tar.bz2
gst-plugins-bad-2a2d21a1f2cdf6b45cf12164ae5746c39e38962d.zip
[MOVED FROM GST-P-FARSIGHT] error if no clock is available
20080428154850-4f0f6-38fdc4134835c457d0054301579d8cd4cbd4989a.gz
Diffstat (limited to 'gst/liveadder')
-rw-r--r--gst/liveadder/liveadder.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/gst/liveadder/liveadder.c b/gst/liveadder/liveadder.c
index 3f553b44..68796047 100644
--- a/gst/liveadder/liveadder.c
+++ b/gst/liveadder/liveadder.c
@@ -1028,9 +1028,10 @@ gst_live_adder_loop (gpointer data)
buffer_timestamp = GST_BUFFER_TIMESTAMP (g_queue_peek_head (adder->buffers));
clock = GST_ELEMENT_CLOCK (adder);
- if (!clock)
- /* let's just push if there is no clock */
- goto push_buffer;
+
+ if (!clock) {
+ goto no_clock;
+ }
GST_DEBUG_OBJECT (adder, "sync to timestamp %" GST_TIME_FORMAT,
GST_TIME_ARGS (buffer_timestamp));
@@ -1068,8 +1069,6 @@ gst_live_adder_loop (gpointer data)
if (ret != GST_CLOCK_OK && ret != GST_CLOCK_EARLY)
goto clock_error;
- push_buffer:
-
buffer = g_queue_pop_head (adder->buffers);
if (!buffer)
@@ -1147,6 +1146,16 @@ gst_live_adder_loop (gpointer data)
return;
}
+ no_clock:
+ {
+ gst_pad_pause_task (adder->srcpad);
+ GST_OBJECT_UNLOCK (adder);
+ GST_ELEMENT_ERROR (adder, STREAM, MUX, ("No available clock"),
+ ("No available clock"));
+ GST_ERROR_OBJECT (adder, "No available clock");
+ return;
+ }
+
pause:
{
const gchar *reason = gst_flow_get_name (result);