[FFmpeg-devel] WORDS_BIGENDIAN used in installed header avutil.h
Baptiste Coudurier
baptiste.coudurier
Thu Jan 29 20:10:05 CET 2009
Michael Niedermayer wrote:
> On Thu, Jan 29, 2009 at 01:41:42PM +0100, Diego Biurrun wrote:
>> On Thu, Jan 29, 2009 at 12:21:52PM +0100, Michael Niedermayer wrote:
>>> On Wed, Jan 28, 2009 at 03:16:46PM -0800, Baptiste Coudurier wrote:
>>>> Diego Biurrun wrote:
>>>>> Houston, we have a problem. The installed header avutil.h uses
>>>>> WORDS_BIGENDIAN, which is #defined in config.h, which is not installed...
>>>>>
>>>> first, pix_fmt stuff should be moved to another header.
>>>>
>>>> second, Im pretty sure, these redefines for RGBA/BGRA/32 whatever can be
>>>> avoided if dealt within libswscale when choosing func pointer.
>>> they are part of the public API and they are intentionally part of it.
>>> They are usefull and used, for example in codecs.
Used _internally_ in codecs.
>>> IMHO we shouldnt be butchering the API
>> Ummm, clearly only half of it is part of the API, since the
>> '#ifdef WORDS_BIGENDIAN' amounts to a '#if 0'...
>
> That may be the implementation but certainly not the API.
> Not every bug in the implementation is part of the API
You can add pixfmt.h and include it in avutil.h, this do not break API.
>> So the goal of the API - different semantics on big-endian systems - is
>> not achieved.
>
> something like
>
> grep WORDS_BIGENDIAN config.h && echo '#define WORDS_BIGENDIAN 1' > lib/avutil.h
> cat avutil.h >> lib/avutil.h
>
> would solve it
> of course that can be done cleaner its just to show it can be solved
> trivially without breaking the API
>
Well changing the documentation can be done, since behaviour was always
wrong, nobody complained so far ? This lightens that practically nobody
noticed.
You remove the ifdef WORDS_BIGENDIAN case and keep:
#define PIX_FMT_RGBA PIX_FMT_BGR32
#define PIX_FMT_BGRA PIX_FMT_RGB32
#define PIX_FMT_ARGB PIX_FMT_BGR32_1
#define PIX_FMT_ABGR PIX_FMT_RGB32_1
Then you add checks in libswscale, considering both values since the
goal is to deprecate all _1 (horrible names)
--
Baptiste COUDURIER GnuPG Key Id: 0x5C1ABAAA
Key fingerprint 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no
FFmpeg maintainer http://www.ffmpeg.org
More information about the ffmpeg-devel
mailing list