diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2015-01-28 15:48:26 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2015-01-28 16:13:16 +0100 |
commit | 4eb5cd915614c25f6bf6eee9366d18dac5cf8bab (patch) | |
tree | 2a0a5fee8a92a3f8ab56c798f793cd6fba6bb382 /sys/decklink/gstdecklinkaudiosink.cpp | |
parent | e2ff5587fe36823a8677ce1d3374b9ac8d00e4e5 (diff) | |
download | gstreamer-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.cpp | 4 |
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 (); |