> -----Original Message-----
> From: ffmpeg-devel <[email protected]> On Behalf Of
> James Almer
> Sent: Tuesday, September 17, 2019 3:29 AM
> To: [email protected]
> Subject: Re: [FFmpeg-devel] [PATCH] Fix gif decoder max option
>
> On 9/16/2019 10:24 PM, Soft Works wrote:
> >> From: ffmpeg-devel <[email protected]> On Behalf Of
> >> James Almer
> >> Sent: Tuesday, September 17, 2019 3:11 AM
> >> To: [email protected]
> >> Subject: Re: [FFmpeg-devel] [PATCH] Fix gif decoder max option
> >>
> >> On 9/16/2019 10:05 PM, Soft Works wrote:
> >>> An int32 option cannot have a maximum of UINT32_MAX
> >>
> >> AV_OPT_TYPE_INT options are int64_t. In this case however the storage
> >> type for trans_color in GifState is int.
> >>
> >> Reading the code i see it's intended to be uint32_t, so i think the
> >> correct fix is changing its storage type, and not limiting its
> >> allowed range. Same with stored_bg_color.
> >
> > Hi James,
> >
> > Thanks for looking into this.
> >
> > The purpose of this option is to indicate a "replacement color" for
> transparent pixels.
> > Such a replacement color itself can never have an alpha component.
> >
> > I was unsure how to indicate this. Maybe, by setting the maximum to
> 0x00FFFFFF ?
>
> In that case set the max to GIF_TRANSPARENT_COLOR (default value), which
> is 0x00FFFFFF.
>
> Storage type as int in the struct is still wrong IMO, but i guess it's
> harmless. I'll
> let others chime in either way.
Thanks James,
I agree with all your comments.
But to be honest, I didn't intend to get into gif decoder development.
I had just seen this:
$ ffmpeg -h decoder=gif
Decoder gif [GIF (Graphics Interchange Format)]:
General capabilities: dr1
Threading capabilities: none
gif decoder AVOptions:
-trans_color <int> .D.V..... color value (ARGB) that is used
instead of transparent color (from 0 to UINT32_MAX) (default 1.67772e+07)
Two things are incorrect here: The max and the default.
My patches are turning this into:
-trans_color <int> .D.V..... color value (ARGB) that is used
instead of transparent color (from 0 to INT_MAX) (default 16777215)
It might not be perfect, but it's much better than before.
Changing the storage type would need code changes to the gif decoder and
require testing. At this time, I'm afraid, I'm not able to get into this. Of
course, I'll do requested detail adjustments to my patches, though. :-)
Best regards,
softworkz
_______________________________________________
ffmpeg-devel mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".