mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-24 16:18:16 +00:00
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
This commit is contained in:
parent
9ab4b2e94e
commit
08df711c0c
1 changed files with 1 additions and 1 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue