[FFmpeg-devel] [PATCH] WebP native muxer bugfix: frames should have alpha blending off

Urvang Joshi urvang at google.com
Thu May 28 00:10:05 CEST 2015


All the frames that the native muxer gets are fully reconstructed
frames, and they should not be alpha-blended with the previous frames.

As per the WebP container spec
https://developers.google.com/speed/webp/docs/riff_container#animation,
ANMF chunk should specify blending method = do not blend (and disposal
method = do not dispose).

However, the native muxer was wrongly setting blending method = use
alpha blending.
This bug can be reproduced by converting a source with transparency
(e.g. animated GIF with transparency) to an animated WebP, and viewing
it with vwebp.
---
 libavformat/webpenc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavformat/webpenc.c b/libavformat/webpenc.c
index 69270c6..1455cc7 100644
--- a/libavformat/webpenc.c
+++ b/libavformat/webpenc.c
@@ -137,7 +137,7 @@ static int flush(AVFormatContext *s, int trailer, int64_t pts)
                 avio_wl24(s->pb, pts - w->last_pkt.pts);
             } else
                 avio_wl24(s->pb, w->last_pkt.duration);
-            avio_w8(s->pb, 0);
+            avio_w8(s->pb, 2);  // Do not dispose and do not blend.
         }
         avio_write(s->pb, w->last_pkt.data + skip, w->last_pkt.size - skip);
         av_free_packet(&w->last_pkt);
-- 
2.2.0.rc0.207.ga3a616c



More information about the ffmpeg-devel mailing list