Le mercredi 03 juin 2015 à 13:40 +0200, Peter Körner a écrit :
> Hi Nicolas,
>> On 03.06.2015 02:45, Nicolas Dufresne wrote:
> > Le Tuesday 02 June 2015 à 15:30 +0200, Peter Körner a écrit :
> > > My guess is, that there may be a truncation error or sth. the
> > > like in
> > > the inter* elements, but I may be wrong here. I'm happy to accept
> > > Ideas on how to debug this further.
> >
> > The inter sink/src element are use to split your stream into
> > multiple
> > pipeline. This means, split your stream over multiple clocks, hence
> > not
> > synchronization is happening.
> I chose that design with inter-Elements so that when a source dies
> (someone pulls a plug, for example), the mixer- and output-pipelines
> keep running. inter*src fills the gap with black/silence in this
> case.
>> Is there another design that would achieve this?
On git master, the compositor should keep composing if a source stop
producing (ignoring that pad, done with a timeout);
>>> > If you want synchronized playback, keep
> > everything in the same pipeline, or considering using a shared
> > clock.
> I was under the impression that they would share the same
> Gst.SystemClock anyway.
>> Nevertheless I created a global Gst.SystemClock and shared them
> across
> all pipelines. I set start_time to CLOCK_TIME_NONE and base_time to a
> common value fetched from the clock upon startup, following the
> example
> <http://noraisin.net/gst/play-master.py>
>> The result is identical: the audio starts 10ms early on the output,
> drifts to beeing equal and drifts on to 30ms late over ~30 minutes
> playback.
That's because inter* element don't use upstream timestamp at all it
seems, making synchronization impossible.
Nicolas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150603/f544c59a/attachment.sig>