[Bug 795443] New: audiobasesrc: Re-timestamp slave method introduce latency
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Sat Apr 21 19:39:56 UTC 2018
https://bugzilla.gnome.org/show_bug.cgi?id=795443
Bug ID: 795443
Summary: audiobasesrc: Re-timestamp slave method introduce
latency
Classification: Platform
Product: GStreamer
Version: unspecified
OS: Linux
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: nicolas at ndufresne.ca
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
So, to workaround https://bugzilla.gnome.org/show_bug.cgi?id=795442 I started
using re-timestamp slave method. As I'm using an audiomixer or an
audiointerleaver downstream, I can rely on these to handle the skew for me. So
this method worked in maintaining a constant latency. The problem that I faces
though is that between the first and the second called to
GstAudioBaseSrc:create() there is a large delay (around 130ms in my case).
read(sample 0)
130ms later ...
read(sample 1)
As the segtotal is pretty large (320ms) all this data get buffered in the
ringbuffer, and remains. I've made a quick hack to get going, basically I would
never let the read-head be further then 2 segments from the most recent, but
this had a side effect, which is that the audio source can no longer accumulate
latency.
If it wasn't of the re-timestamp, what would happen is that all buffered
segments would get pushed, but would be late according to their timestamp, but
with the re-timestamp, which is a bit of a hack method really, they all will be
right on time. Investigating this delay seems useful, but it would be nice to
improve the re-timestamp slave method so it does not have this side effect.
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list