[FFmpeg-devel] [PATCH] Add XPM decoder

Marton Balint cus at passwd.hu
Sun Mar 12 20:10:50 EET 2017


On Sat, 11 Mar 2017, Paras Chadha wrote:

> On Sat, Mar 11, 2017 at 5:40 AM, Moritz Barsnick <barsnick at gmx.net> wrote:
>
>>
>> > +static int color_table_compare(const void *lhs, const void *rhs)
>> > +{
>> > +    return av_strcasecmp(lhs, ((const ColorEntry *)rhs)->name);
>> > +}
>> > +
>> > +static const ColorEntry color_table[] = {
>> > +    { "AliceBlue",            { 0xF0, 0xF8, 0xFF } },
>> > +    { "AntiqueWhite",         { 0xFA, 0xEB, 0xD7 } },
>> > +    { "Aqua",                 { 0x00, 0xFF, 0xFF } },
>> [...]
>>
>> Is this duplicated from libavutil/parseutils.c?
>>
>
> Yes, it is duplicated from parseutils.c
> XPM format also specifies a color None which is transparent, it has been
> added to the array.
> Also ColorEntry is changed a bit.
> These changes are in my next patch.
>

Why don't you improve the code in parseutils then, and use that? 
Duplicating code is generally not welcome without a good reason.

>
>>
>> > +static uint32_t hexstring_to_rgba(const char *p, int len){
>> > +    uint32_t ret = 0xFF000000;
>> > +    const ColorEntry *entry;
>> > +    char color_name[100];
>> > +
>> > +    if(*p == '#'){
>> > +        p++;
>> > +        len--;
>> > +        if (len == 3) {
>> > +            ret |= (convert(p[2]) <<  4) |
>> > +                   (convert(p[1]) << 12) |
>> > +                   (convert(p[0]) << 20);
>>
>> So is this a modified or redesigned av_parse_color()? Just wondering.
>>
>
> Yes, it is redesigned version of av_parse_color(). It is a bit fast than
> the original.

So please integrate your changes in parseutils, and use that if you can, 
unless there is a reason for the duplication.

Thanks,
Marton


More information about the ffmpeg-devel mailing list