[FFmpeg-devel] [RFC][PATCH] libwebp: combine libwebp_anim and libwebp encoders into one

James Almer jamrial at gmail.com
Sun May 24 23:39:05 CEST 2015

On 24/05/15 5:59 PM, Michael Niedermayer wrote:
> On Sun, May 24, 2015 at 04:22:42PM -0300, James Almer wrote:
>> Use either the WebPEncoder or WebPAnimEncoder APIs depending on availability
>> of the latter.
>> Signed-off-by: James Almer <jamrial at gmail.com>
>> ---
>> This is an RFC because the resulting encoder will use one of the two APIs, which
>> is a change from the current behavior of having one encoder for each API.
>> The new encoder was added only two days ago so removing it shouldn't be an issue.
>> Basically, is there any benefit from using the native lavf muxer over letting
>> WebPAnimEncoder do the entire process to justify having two encoders?
>> The resulting ifdeffery is minimal now that the webp muxer can act as a raw muxer
>> cleanly, so the only concern is the above. We can deal with cosmetics later, but
>> the functional change needs to be done asap least we want to deal with deprecation
>> nonsense if the new encoder makes it into a release.
> They are 2 different encoders, the old is partly implemented in
> FFmpeg, the new does all steps in an external lib
> The 2 variants work differently
> command lines for the old encoder do NOT work with WebPAnimEncoder,
> at least not with the current implementation we have

My intention was to keep it all as a single encoder, using one of the two APIs depending
on availability. If the AVOptions have different results on them then i guess it's not
really feasible after all. So patch dropped.

> try it yourself
> ./ffmpeg -i matrixbench_mpeg2.mpg -cr_threshold 10000 -cr_size 16 -t 10 -loop 2 -vcodec libwebp test.webp
> works with the old encoder but after this patch produces a video
> that is a flickering checkerboard

This happens when the WebPAnimEncoder API is used alongside one or two of those -cr_
options. Unrelated to this patch, but as i said above a good argument against it.

It should be fixed, for that matter. CCing Urvang Joshi.

> Also libwebp lacks a maintainer in MAINTAINERs
> anyone volunteers ?

libwebpenc_animencoder.c should be maintained by the person that wrote/submitted it.

> I might be willing to maintain it when the 2 encoders can be tested
> without the need to build ffmpeg twice (they can be in one .c file for
> that or in multiple of course),

I'm not sure what you mean. The two encoders can be tested without having to build
ffmpeg twice, assuming you have a new enough libwebp/mux installed. They are currently
independent, and you can use one or the other with -c:v or such.

> I know from the xcb/x11 alternative that i practically never bother
> to test both variants when i would have to build teh code twice.
> So if that becomes needed then someone else should maintain it
> Of course even if both can be build at the same time, i would still
> be happy if someone else, maybe you ? does the maintaince
> Thanks
> [...]
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

More information about the ffmpeg-devel mailing list