[vlc-devel] VLC Plugin for Mac OS X (Lion & upwards): some progress, but further help requested
remi at remlab.net
Fri May 11 17:02:37 CEST 2012
Le vendredi 11 mai 2012 17:44:00 James Bates, vous avez écrit :
> The main problem is that vlc video playback is basically a "push" model: a
> vout module should react to and implement pictureRender and pictureDisplay
> methods, which libvlccore calls at its discression. Core Animation on the
> other hand uses a "pull" model, and expects the implementing layer to
> render content whenever IT calls you. You can "ping" core animation and
> say: "hey, please call my update method" (CAOpenGlLaye:: setNeedsDisplay),
> and then it will call your display method "at some point in the future"
> (i.e. asynchronously).
The VLC core provides a picture when it can, which is when the decoder
provides one, which follows the original frame rate. The physical hardware on
the other hand renders a picture according to its refresh interval. Getting
them to agree is not generally impossible. (It might be possible in some
cases, but not all.) So something somewhere needs to deal with this. It might
well be that you cannot avoid it.
(In relation to that, there is a forever standing bug in most VLC video output
plugins: They fail to redraw immediately when there rendering area is damaged.
Instead, they simply rely on the next picture coming fast.)
More information about the vlc-devel