[FFmpeg-devel] libavcodec/pthread.c:138: error: no previous prototype for 'avcodec_thread_execute2'

Måns Rullgård mans
Tue Mar 9 14:05:24 CET 2010


Benoit Fouet <benoit.fouet at free.fr> writes:

>> > Index: libavcodec/w32thread.c
>> > ===================================================================
>> > --- libavcodec/w32thread.c      (revision 22379)
>> > +++ libavcodec/w32thread.c      (working copy)
>> > @@ -93,7 +93,7 @@ void avcodec_thread_free(AVCodecContext
>> >      av_freep(&s->thread_opaque);
>> >  }
>> >
>> > -int avcodec_thread_execute(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size){
>> > +static int avcodec_thread_execute(AVCodecContext *s, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size){
>> >      ThreadContext *c= s->thread_opaque;
>> >      int i;
>> >      int jobnr = 0;
>> > Index: libavcodec/options.c
>> > ===================================================================
>> > --- libavcodec/options.c        (revision 22379)
>> > +++ libavcodec/options.c        (working copy)
>> > @@ -26,6 +26,7 @@
>> >
>> >  #include "avcodec.h"
>> >  #include "opt.h"
>> > +#include "internal.h"
>> >  #include <float.h>              /* FLT_MIN, FLT_MAX */
>> >
>> >  static const char* context_to_name(void* ptr) {
>> 
>> Why?
>> 
>
> because of the needed definition of avcodec_default_execute and
> avcodec_default_execute2 which are now there.
>
>> > Index: libavcodec/internal.h
>> > ===================================================================
>> > --- libavcodec/internal.h       (revision 22379)
>> > +++ libavcodec/internal.h       (working copy)
>> > @@ -48,4 +48,7 @@ AVHWAccel *ff_find_hwaccel(enum CodecID
>> >   */
>> >  int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b);
>> >
>> > +int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
>> > +int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
>> > +
>> 
>> This looks wrong.  You're making the functions definitions static, so
>> there should be no prototypes in headers.  This shouldn't even compile.
>> 
>
> No, I am not. I think you are mixing avcodec_default_execute* and
> avcodec_thread_execute* definitions, aren't you ?

You're right.  I confused the two.

-- 
M?ns Rullg?rd
mans at mansr.com



More information about the ffmpeg-devel mailing list