summaryrefslogtreecommitdiffstats
path: root/ext/pulse/pulsesink.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/pulse/pulsesink.c')
-rw-r--r--ext/pulse/pulsesink.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index e2bc57da..48bd7f2f 100644
--- a/ext/pulse/pulsesink.c
+++ b/ext/pulse/pulsesink.c
@@ -1338,6 +1338,8 @@ gst_pulse_sink_get_time (GstClock * clock, GstBaseAudioSink * sink)
psink = GST_PULSESINK_CAST (GST_OBJECT_PARENT (pbuf));
pa_threaded_mainloop_lock (psink->mainloop);
+ if (gst_pulsering_is_dead (psink, pbuf))
+ goto server_dead;
/* if we don't have enough data to get a timestamp, just return NONE, which
* will return the last reported time */
@@ -1352,6 +1354,15 @@ gst_pulse_sink_get_time (GstClock * clock, GstBaseAudioSink * sink)
GST_TIME_ARGS (time));
return time;
+
+ /* ERRORS */
+server_dead:
+ {
+ GST_DEBUG_OBJECT (psink, "the server is dead");
+ pa_threaded_mainloop_unlock (psink->mainloop);
+
+ return GST_CLOCK_TIME_NONE;
+ }
}
static void