summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorOlivier CrĂȘte <olivier.crete@collabora.com>2015-03-06 19:50:08 -0500
committerOlivier CrĂȘte <olivier.crete@collabora.com>2015-07-30 14:00:05 -0400
commit6efc106a67ce6ba2a8313150ef919c0be9234da6 (patch)
treef21012007d000d2a0cdf9d9b1820fa2a1bebd222 /gst
parente4a1db2287d7d84d2985a1c8139f6aee5699d13d (diff)
downloadgstreamer-plugins-bad-6efc106a67ce6ba2a8313150ef919c0be9234da6.tar.gz
aggregator: Queue "latency" buffers at each sink pad.
In the case where you have a source giving the GstAggregator smaller buffers than it uses, when it reaches a timeout, it will consume the first buffer, then try to read another buffer for the pad. If the previous element is not fast enough, it may get the next buffer even though it may be queued just before. To prevent that race, the easiest solution is to move the queue inside the GstAggregatorPad itself. It also means that there is no need for strange code cause by increasing the min latency without increasing the max latency proportionally. This also means queuing the synchronized events and possibly acting on them on the src task. https://bugzilla.gnome.org/show_bug.cgi?id=745768
Diffstat (limited to 'gst')
-rw-r--r--gst/audiomixer/gstaudioaggregator.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gst/audiomixer/gstaudioaggregator.c b/gst/audiomixer/gstaudioaggregator.c
index b7e5cff67..351b1d70a 100644
--- a/gst/audiomixer/gstaudioaggregator.c
+++ b/gst/audiomixer/gstaudioaggregator.c
@@ -723,7 +723,7 @@ gst_audio_aggregator_do_clip (GstAggregator * agg,
bpf = GST_AUDIO_INFO_BPF (&pad->info);
GST_OBJECT_LOCK (bpad);
- *out = gst_audio_buffer_clip (buffer, &bpad->segment, rate, bpf);
+ *out = gst_audio_buffer_clip (buffer, &bpad->clip_segment, rate, bpf);
GST_OBJECT_UNLOCK (bpad);
return GST_FLOW_OK;