summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-01-15 13:13:51 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-01-15 13:13:51 +0100
commitefb74ca0df86954d2cbb51109e3bc214d814f874 (patch)
tree26e88c40c65ce562298c8c15040dd77b3b86ea11
parente734c3cf134d2c57b5ffaaee585eedb19cf9bb1e (diff)
interaudiosink: Make sure that buffer time is always bigger than period time
-rw-r--r--gst/inter/gstinteraudiosink.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gst/inter/gstinteraudiosink.c b/gst/inter/gstinteraudiosink.c
index d8e34ea77..58e78325e 100644
--- a/gst/inter/gstinteraudiosink.c
+++ b/gst/inter/gstinteraudiosink.c
@@ -300,6 +300,16 @@ gst_inter_audio_sink_render (GstBaseSink * sink, GstBuffer * buffer)
buffer_time = interaudiosink->surface->audio_buffer_time;
period_time = interaudiosink->surface->audio_period_time;
+
+ if (buffer_time < period_time) {
+ GST_ERROR_OBJECT (interaudiosink,
+ "Buffer time smaller than period time (%" GST_TIME_FORMAT " < %"
+ GST_TIME_FORMAT ")", GST_TIME_ARGS (buffer_time),
+ GST_TIME_ARGS (period_time));
+ g_mutex_unlock (&interaudiosink->surface->mutex);
+ return GST_FLOW_ERROR;
+ }
+
buffer_samples =
gst_util_uint64_scale (buffer_time, interaudiosink->info.rate,
GST_SECOND);