[vlc-devel] [PATCH 2/2] RFC: core/vout: don't reset the display pool
Rémi Denis-Courmont
remi at remlab.net
Wed Jan 4 15:14:10 CET 2017
Le mercredi 4 janvier 2017, 08:38:09 Steve Lhomme a écrit :
> On Tue, Jan 3, 2017 at 4:45 PM, Thomas Guillem <thomas at gllm.fr> wrote:
> > In case of direct rendering, the decoder_pool (== the display_pool) should
> > not be reseted. Indeed, the vout display module implementation could
> > still hold pictures while the decoder is reseted. This fixes the warning
> > "n picture(s) leaked by decoder" and an assert from
> > picture_pool_ReleasePicture() when the vout is finally releasing the
> > picture.
>
> That sounds hackish when the vout reset is already described as a hack:
> /* Hack to make sure all the the pictures are freed by the decoder
> * and that the vout is not paused anymore */
> It seems that a cleaner fix would be to release the pictures when
> there's no reference left ?
In other words, the clean fix consists of never resetting a picture pool at
all.
I agree that we should remove it (but don't count on me to fix any decoder that
would still depend on it).
> Or there's no way to know ?
How do you distinguish between a decoder, a filter, a splitter or a display
leaking a picture reference or holding a reference thereto? Without any
further assumptions, that is the halting problem.
The reset hack made sense when leak-prone libmpeg2 was the norm. But this hack
is not compatible with asynchronous decoders, asynchronous displays, mid-
stream output format change.
--
Rémi Denis-Courmont
http://www.remlab.net/
More information about the vlc-devel
mailing list