[vlc-devel] [vlc-commits] vout: fix picture lock/unlock with private pool

Rémi Denis-Courmont remi at remlab.net
Wed Nov 5 16:16:21 CET 2014

Le 2014-11-05 13:06, Thomas Guillem a écrit :
> The new vout will use a normal picture Pool without lock/unlock for
> non-dr.
> But, I can't find a way to not use pool->pic_unlock when using direct
> rendering: we need a way to release the picture on mediacodec/omx 
> side if it's released and not displayed.

As far as I understand Android MediaCodec, the decoder decides on which buffer 
gets dequeued, not the video output. The decoder should know which pictures it 
references. If it did not, you would be really absolutely totally irrevocably 
terminally ultimately screwed.

So the problem is to know which buffers are still queued for display, and which 
buffers are free to decode further frames into. Maybe unlock works for that 
purpose. All I meant is that lock/unlock does not work for what it was 
supposed to... And so the vain lock/unlock callbacks should be dropped from 
DirectX plugins.

I have no plans to remove the callbacks. Besides, it's only lock that 
interferes with my plans for tick-less decoder thread, not unlock.

> Ideally, pictures allocated by the pool have pixels allocated by vlc
> only for non-dr, non omx, non mediacodec (so, for avcodec).

As far as I know, indirect rendering has always worked that way. 
Decoder and private pool pictures are allocated from the heap.

Rémi Denis-Courmont

More information about the vlc-devel mailing list