Syncing streams to clock in the middle of pipeline

Alexey Chernov 4ernov at gmail.com
Tue Sep 3 07:35:37 PDT 2013


В письме от Понедельник, 02 сентября 2013 23:46:52 Вы написали:
> On Tue, 2013-09-03 at 00:00 +0400, Alexey Chernov wrote:
> 
> Hi,
> 
> > I faced some rare use case, seems I need to sync streams against pipeline
> > clock in the middle of it instead of on the sink elements. Here's a
> > pipeline:
> > 
> > Audio: appsrc -> aacparse -> queue   \
> > 
> >                                                           mpegtsmux ->
> >                                                           appsink
> > 
> > Video: appsrc -> h264parse -> queue /
> > 
> > 
> > The problem is that there seem to be GST_FORMAT_BYTE segment after
> > mpegtsdemux, and appsink synchronization is literally useless.
> 
> This is fixed in 1.0. (Also in 0.10 git)

What is the expected behaviour now? I'm experimenting with 1.0.9, so maybe I 
miss something for it to work out of the box.
 
> But there's also identity sync=true, which might do what you want.

Thanks, Tim, it sounds like what I want. But perhaps it can run without it 
given you said there were fixes in 1.0.
 
> > I looked at multiqueue element and its 'sync-by-running-time' property,
> > but
> > it's described to 'Synchronize deactivated or not-linked streams by
> > running
> > time' and it seems to be for some broken streams and not for my use case.
> 
> It's not for broken streams, but when not all inputs come from a common
> source, e.g. one input is videotestsrc and another input is from live
> video source, then you want to keep both advancing in lock-step and not
> videotestsrc to fill the queue as fast as it can.

Thanks for clarification. Didn't know this case is properly processed.


More information about the gstreamer-devel mailing list