[FFmpeg-devel] libavcodec/pthread.c:138: error: no previous prototype for 'avcodec_thread_execute2'
Benoit Fouet
benoit.fouet
Tue Mar 9 14:54:03 CET 2010
On Tue, 09 Mar 2010 13:05:24 +0000 M?ns Rullg?rd wrote:
> 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.
>
OK, so now I just need a "patch ok" stamp on any of the two proposed one.
Ben
More information about the ffmpeg-devel
mailing list