RFC - possible new vmethod for GstBaseSink

Nicolas Dufresne nicolas at ndufresne.ca
Mon Dec 11 16:00:51 UTC 2017


Le lundi 11 décembre 2017 à 12:37 +0000, Tom Bailey a écrit :
> The implementation of the is_prerolled vmethod in our derived sink
> now queries the hardware decoder, and if there are decoded frames of
> video queued for display it returns true. This has massively improved
> the performance of the application when transitioning from playing to
> paused.
> 
> Does this seem like a sensible enhancement to GstBaseSink for derived
> sinks which run with sync=FALSE? If so I can submit a patch. 

I'm not against, but it does not seems complete, specially for those
that want to implement proper clock slaving hense sync=TRUE. Best is to
file a bug so we can discuss the options.

Last time I had to deal with similar stack, I ended up forcing
async=FALSE on the base class, and implementing my own asynchronous
state change. It then worked seamlessly, because I could switch paused
whenever a frame was displayed (prerolled), and from paused to playing,
there was no code from the base class waiting. I understand this is
difficult, but I'm wondering if we could have helpers in that direction
instead.

Nicolas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20171211/a2ca4cd3/attachment.sig>


More information about the gstreamer-devel mailing list