[FFmpeg-devel] pixfmt.h installed header using HAVE_BIGENDIAN?
Sun Jan 17 15:30:35 CET 2010
Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
> On Sun, Jan 17, 2010 at 02:11:23PM +0000, M?ns Rullg?rd wrote:
>> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> > On Sun, Jan 17, 2010 at 01:48:23PM +0000, M?ns Rullg?rd wrote:
>> >> Reimar D?ffinger <Reimar.Doeffinger at gmx.de> writes:
>> >> > Hello,
>> >> > am I missing something or is this a double-WTF?
>> >> > First, pixfmt.h uses HAVE_BIGENDIAN which is a big no-no for an installed header,
>> >> > but in addition it does not include config.h, so even pixdesc.c ends up saying
>> >> > In file included from pixdesc.c:22:
>> >> > pixfmt.h:130:5: warning: "HAVE_BIGENDIAN" is not defined
>> >> I know, and it's a problem. Some discussion here:
>> >> http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/81522
>> > That one I though was fixed. Any objections if I just apply patch
>> > below for now, in the worst case it breaks building of some
>> > applications, but that's still better than breaking them
>> > at runtime on bigendian which would happen right now.
>> > Index: pixfmt.h
>> > ===================================================================
>> > --- pixfmt.h (revision 21108)
>> > +++ pixfmt.h (working copy)
>> > @@ -127,6 +127,8 @@
>> > PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
>> > };
>> > +#ifdef HAVE_AV_CONFIG_H
>> > +#include "config.h"
>> > #if HAVE_BIGENDIAN
>> > # define PIX_FMT_NE(be, le) PIX_FMT_##be
>> > #else
>> > @@ -148,5 +150,6 @@
>> > #define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE)
>> > #define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE)
>> > #define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE)
>> > +#endif
>> > #endif /* AVUTIL_PIXFMT_H */
>> This is the type of temporary hack that will stay forever. If we
>> intend to ever fix it, we might as well do so now. Having a broken
>> API serves nobody.
> Uh, that actually is my fix. What more do you want?
I want a f*cking sane API without internal ifdefs sprinkled about it.
Either the _NE formats move to a non-public header, or they go away
entirely. I don't really care which, but the current situation is
mans at mansr.com
More information about the ffmpeg-devel