[vlc-devel] [PATCH] Avcodec: limit the number of threads automatically selected to 12
Laurent Aimar
fenrir at elivagar.org
Thu Dec 29 16:24:44 CET 2011
On Thu, Dec 29, 2011 at 09:31:07AM +0100, Denis Charmet wrote:
> Le mercredi 28 décembre 2011 à 11:59:49, Rafaël Carré a écrit :
> > Le 2011-12-28 21:08, Jean-Baptiste Kempf a écrit :
> > > It seems that over 16 doesn't behave well. Reduce it further for safety
> >
> > What is the problem exactly ?
> >
> IMO, as I said earlier I strongly suspect a race condition in picture
> pool with two threads working on the same picture. Would'nt it be
> cleaner and safer to just lock/unlock around decoder_NewPicture in
> avcodec/video.c ?
A decoder goes through vout_GetPicture() which already protects the
pool used with a lock.
I think the issue is that the pool might be too small when there is
too much thread as the latency increase.
For a quick test, could you test by increasing the value dpb_size
in src/input/decoder.c by the number of threads (in the function
vout_new_buffer()). If it fixes the issue, decoder_t will have to be
extended to allow transmitting the value.
Regards,
--
fenrir
More information about the vlc-devel
mailing list