Diagnosing Frame Sync Issues?

Edward Hervey bilboed at gmail.com
Tue May 14 04:35:38 PDT 2013


Hi,

On Tue, 2013-05-14 at 09:35 +0100, Ian Davidson wrote:
> On 14/05/2013 08:37, Edward Hervey wrote:
> > The current synchronization model in video sinks (and all other sink 
> > element that use the standard GstBaseSink synchronization model) is 
> > "wait-then-render". When a buffer comes in, GstBaseSink will figure 
> > out a target clock running time, wait for that moment and then call 
> > your sink's "render" method (which does the actual 
> > display/output/...). And this is where it gets tricky.
> >
> > _______________________________________________
> > gstreamer-devel mailing list
> > gstreamer-devel at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> >
> Just a thought.  Does the time taken to render depend on what is being 
> rendered?  For example, if one 'nth' of the total picture happened to be 
> 'clear blue sky', it would (possibly) be quicker to render than another 
> 'nth' which contained lots of detail.  Since both pieces start to be 
> rendered at about the same time (remembering that the computer only has 
> so many CPUs actually available), that could allow the 'easy' pieces to 
> be displayed before the 'complicated' bits - and sometimes that might be 
> noticeable.

  When I talk about render, I only mean the display side of things, not
the decoding part.

  The fact that some frames might be faster than others to decode
(before display) is smoothed out by having a small queue between decoder
and sink. So as long as you can decode (on average) N frames over N/fps
duration, that will be handled by the queues. And each decoder works in
separate threads, so the kernel scheduler should also take care of
load-balancing the work being done by multiple decoders.

> 
> I could be totally wrong.




More information about the gstreamer-devel mailing list