[FFmpeg-devel] [PATCH] Make avcodec_thread_init set the thread_count in the encoder when there isn't support for threads compiled in
Michael Niedermayer
michaelni
Mon Apr 20 07:01:56 CEST 2009
On Sun, Mar 09, 2008 at 01:00:36PM +0100, Stefano Sabatini wrote:
> On date Saturday 2008-03-08 20:31:25 +0100, Michael Dorr encoded:
> > On Saturday 08 March 2008 07:25:49 pm Stefano Sabatini wrote:
> > > On date Saturday 2008-03-08 18:55:26 +0100, Michael Niedermayer encoded:
> > > > On Sat, Mar 08, 2008 at 06:33:27PM +0100, Stefano Sabatini wrote:
> > > > > Hi,
> > > > > as in $subject.
> > > > >
> > > > > If threads support is not enabled and threads count is set to a
> > > > > value greater than MAX_THREADS (currently is 8), then encoder is
> > > > > initialized with a value of thread_count equal to 1, then
> > > > > enc->threads_count is set to the value set by the user, finally
> > > > > libavcodec crashes when it tryies to free the first thread beyond
> > > > > MAX_THREADS (this happens when quitting ffplay).
> > > >
> > > > the command line parsing code should not accept >MAX_THREADS
> > >
> > > [...]
> > >
> > > I agree, but MAX_THREADS is defined in libavcodec/mpegvideo.h, which
> > > is not public, furthermore the patch implements the correct behaviour
> > > for opening an encoder so I'd like to see it applied.
> >
> > Shouldn't manually setting enc->thread_count be omitted completely, since it
> > gets set correctly in avcodec_thread_init anyway (and if thread_init isn't
> > called, it defaults to 1, which is also correct)? Theoretically,
> > avcodec_thread_init could fail, then enc->thread_count and the 'real' number
> > of threads will differ, and ffmpeg will crash ...
>
> Hi,
[...]
> Index: libavcodec/utils.c
> ===================================================================
> --- libavcodec/utils.c (revision 12393)
> +++ libavcodec/utils.c (working copy)
> @@ -1350,6 +1350,7 @@
>
> #if !defined(HAVE_THREADS)
> int avcodec_thread_init(AVCodecContext *s, int thread_count){
> + s->thread_count = thread_count;
> return -1;
> }
> #endif
patch ok
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090420/b75e11b8/attachment.pgp>
More information about the ffmpeg-devel
mailing list