[vlc-devel] VLC Plugin for Mac OS X (Lion & upwards): some progress, but further help requested

Rémi Denis-Courmont 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.)

Rémi Denis-Courmont

More information about the vlc-devel mailing list