[vlc-devel] [PATCH 2/2] avcodec: va: wait indefinitely until a surface is available

Rémi Denis-Courmont remi at remlab.net
Thu Jul 9 16:31:49 CEST 2020


Le jeudi 9 juillet 2020, 12:56:30 EEST Steve Lhomme a écrit :
> If there's no surface available the decoder should wait for one to be
> available, not get an error and not try to decode anymore. When pictures
> (and thus surfaces) were coming from the display a picture_pool_Wait() was
> used, so in the normal case we should do something similar.

In theory, yes. In practice, unfortunately, dubious.

> The infinite looping shouldn't be an issue as on Flush or Close the decoder
> will release all the past pictures/surfaces. So there will be new surfaces
> available for past calls.

It will still deadlock if one of the following is true:
- the loop is running on the main decoder thread, and thus will block flushing/
closing, or
- the picture pool is too small even for the "few" allocations after flush, in 
particular if there is shortage of memory on the GPU.

Not sure it's really safe yet.

-- 
Rémi Denis-Courmont




More information about the vlc-devel mailing list