practical usage of the sync property on sinks

Eslam Ahmed eslam.ahmed at
Wed Nov 3 14:26:11 UTC 2021

I am guessing that it all comes down to the type and the load of the
processing being done in the sink and the maximum delay of a frame before
it can be dropped at the sink.

That is if the sink is not rendering (e.g. udpsink/filesink/appsink), it is
safe to assume that those can have sync=1 since they don't need that much
of processing power unlike rendering a 4k image for example.
Another sink I had a problem with was the nvegglessink that it was dropping
frames not because of sync=1 but because it was generating qos messages
instructing upstream elements to drop frames.

At this point, it's also safe to set sync=0 on udpsink/filesink/appsink
because it will mean that I want my pipeline to have less latency and be
more responsive regardless of having a live source or not.

Best Regards,
Eslam Ahmed

On Wed, Nov 3, 2021 at 4:00 PM Marianna Smidth Buschle via gstreamer-devel <
gstreamer-devel at> wrote:

> I get the basic usage of the sync property of sink elements, fx when
> viewing a video from a live (camera) or file src.
> I normally use sync=0 in the autovideosink when I have a live src
> because my machine often has problems being able to display fast enough,
> so sync=1 stutters.
> While if I use a filesrc I know that sync=0 will play the file faster
> than the fps, which doesnt happens with a live src since it cant produce
> frames faster than the fps.
> My question is what about other types of sink?
> Where does it make sense to use true/false? Which consequences does it
> have?
> Fx a udpsink when streaming?
> Or an appsink?
> Or a filesink?
> --
> Best regards / Med venlig hilsen
> “Marianna Smidth Buschle”
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the gstreamer-devel mailing list