summaryrefslogtreecommitdiff
path: root/sys/decklink/gstdecklinkaudiosink.cpp
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-01-28 15:48:26 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-01-28 16:13:16 +0100
commit4eb5cd915614c25f6bf6eee9366d18dac5cf8bab (patch)
tree2a0a5fee8a92a3f8ab56c798f793cd6fba6bb382 /sys/decklink/gstdecklinkaudiosink.cpp
parente2ff5587fe36823a8677ce1d3374b9ac8d00e4e5 (diff)
downloadgstreamer-plugins-bad-4eb5cd915614c25f6bf6eee9366d18dac5cf8bab.tar.gz
decklink{audio,video}sink: Only start scheduled playback once both sources are ready and we are in PLAYING
Otherwise we might start the scheduled playback before the audio or video streams are actually enabled, and then error out later because they are enabled to late. We enable the streams when getting the caps, which might be *after* we were set to PLAYING state.
Diffstat (limited to 'sys/decklink/gstdecklinkaudiosink.cpp')
-rw-r--r--sys/decklink/gstdecklinkaudiosink.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/decklink/gstdecklinkaudiosink.cpp b/sys/decklink/gstdecklinkaudiosink.cpp
index 61ff6bbca..7dcd59b22 100644
--- a/sys/decklink/gstdecklinkaudiosink.cpp
+++ b/sys/decklink/gstdecklinkaudiosink.cpp
@@ -363,6 +363,8 @@ gst_decklink_audio_sink_ringbuffer_acquire (GstAudioRingBuffer * rb,
g_mutex_lock (&self->output->lock);
self->output->audio_enabled = TRUE;
+ if (self->output->start_scheduled_playback)
+ self->output->start_scheduled_playback (self->output->videosink);
g_mutex_unlock (&self->output->lock);
ret =
@@ -398,6 +400,8 @@ gst_decklink_audio_sink_ringbuffer_release (GstAudioRingBuffer * rb)
if (self->output) {
g_mutex_lock (&self->output->lock);
self->output->audio_enabled = FALSE;
+ if (self->output->start_scheduled_playback)
+ self->output->start_scheduled_playback (self->output->videosink);
g_mutex_unlock (&self->output->lock);
self->output->output->DisableAudioOutput ();