Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder.
@ 2025-04-04  1:17 Peter Xia
  2025-04-04 19:00 ` Michael Niedermayer
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Xia @ 2025-04-04  1:17 UTC (permalink / raw)
  To: ffmpeg-devel; +Cc: Peter Xia

Adds support of decoding animated webp.

Signed-off-by: Peter Xia <aattyy@gmail.com>
---
 Changelog                 |   1 +
 configure                 |   4 +-
 doc/general_contents.texi |   2 +-
 libavcodec/Makefile       |   1 +
 libavcodec/allcodecs.c    |   3 +-
 libavcodec/libwebpdec.c   | 192 ++++++++++++++++++++++++++++++++++++++
 libavcodec/version.h      |   2 +-
 7 files changed, 201 insertions(+), 4 deletions(-)
 create mode 100644 libavcodec/libwebpdec.c

diff --git a/Changelog b/Changelog
index a03a79d17a..4635e16c05 100644
--- a/Changelog
+++ b/Changelog
@@ -12,6 +12,7 @@ version <next>:
 - Animated JPEG XL encoding (via libjxl)
 - VVC in Matroska
 - CENC AV1 support in MP4 muxer
+- Animated WebP decoding
 
 version 7.1:
 - Raw Captions with Time (RCWT) closed caption demuxer
diff --git a/configure b/configure
index 6942e92636..e63fd38601 100755
--- a/configure
+++ b/configure
@@ -3611,6 +3611,7 @@ libvpx_vp9_encoder_deps="libvpx"
 libvvenc_encoder_deps="libvvenc"
 libwebp_encoder_deps="libwebp"
 libwebp_anim_encoder_deps="libwebp"
+libwebp_decoder_deps="libwebp"
 libx262_encoder_deps="libx262"
 libx264_encoder_deps="libx264"
 libx264_encoder_select="atsc_a53 golomb"
@@ -7086,7 +7087,8 @@ enabled libvpx            && {
 enabled libvvenc          && require_pkg_config libvvenc "libvvenc >= 1.6.1" "vvenc/vvenc.h" vvenc_get_version
 enabled libwebp           && {
     enabled libwebp_encoder      && require_pkg_config libwebp "libwebp >= 0.2.0" webp/encode.h WebPGetEncoderVersion
-    enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit; }
+    enabled libwebp_anim_encoder && check_pkg_config libwebp_anim_encoder "libwebpmux >= 0.4.0" webp/mux.h WebPAnimEncoderOptionsInit
+    enabled libwebp_decoder      && check_pkg_config libwebp_decoder "libwebpdemux >= 1.5.0" webp/demux.h WebPAnimDecoderOptionsInitInternal; }
 enabled libx264           && require_pkg_config libx264 x264 "stdint.h x264.h" x264_encoder_encode &&
                              require_cpp_condition libx264 x264.h "X264_BUILD >= 155" && {
                              [ "$toolchain" != "msvc" ] ||
diff --git a/doc/general_contents.texi b/doc/general_contents.texi
index 5faf89815b..4f10c3e34a 100644
--- a/doc/general_contents.texi
+++ b/doc/general_contents.texi
@@ -857,7 +857,7 @@ following image formats are supported:
 @item WBMP         @tab X @tab X
     @tab Wireless Application Protocol Bitmap image format
 @item WebP         @tab E @tab X
-    @tab WebP image format, encoding supported through external library libwebp
+    @tab WebP image format, supported through external library libwebp
 @item XBM  @tab X @tab X
     @tab X BitMap image format
 @item XFace @tab X @tab X
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 3c3ac640e0..bce5e45a79 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -1179,6 +1179,7 @@ OBJS-$(CONFIG_LIBVPX_VP9_ENCODER)         += libvpxenc.o
 OBJS-$(CONFIG_LIBVVENC_ENCODER)           += libvvenc.o
 OBJS-$(CONFIG_LIBWEBP_ENCODER)            += libwebpenc_common.o libwebpenc.o
 OBJS-$(CONFIG_LIBWEBP_ANIM_ENCODER)       += libwebpenc_common.o libwebpenc_animencoder.o
+OBJS-$(CONFIG_LIBWEBP_DECODER)            += libwebpdec.o
 OBJS-$(CONFIG_LIBX262_ENCODER)            += libx264.o
 OBJS-$(CONFIG_LIBX264_ENCODER)            += libx264.o
 OBJS-$(CONFIG_LIBX265_ENCODER)            += libx265.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index f10519617e..5f8f682111 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -810,8 +810,9 @@ extern FFCodec ff_libvpx_vp9_encoder;
 extern const FFCodec ff_libvpx_vp9_decoder;
 extern const FFCodec ff_libvvenc_encoder;
 /* preferred over libwebp */
-extern const FFCodec ff_libwebp_anim_encoder;
 extern const FFCodec ff_libwebp_encoder;
+extern const FFCodec ff_libwebp_anim_encoder;
+extern const FFCodec ff_libwebp_decoder;
 extern const FFCodec ff_libx262_encoder;
 extern const FFCodec ff_libx264_encoder;
 extern const FFCodec ff_libx264rgb_encoder;
diff --git a/libavcodec/libwebpdec.c b/libavcodec/libwebpdec.c
new file mode 100644
index 0000000000..e9ca65ef05
--- /dev/null
+++ b/libavcodec/libwebpdec.c
@@ -0,0 +1,192 @@
+/*
+ * LibWebP decoder
+ * Copyright (c) 2025 Peter Xia
+ *
+ * This file is part of FFmpeg.
+ *
+ * FFmpeg is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * FFmpeg is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with FFmpeg; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/**
+ * @file
+ * LibWebP decoder
+ */
+
+#include "decode.h"
+#include "codec_internal.h"
+#include "libavutil/avutil.h"
+#include "libavutil/opt.h"
+#include "libavformat/avformat.h"
+#include "libavformat/avio.h"
+
+#include <webp/demux.h>
+#include <webp/decode.h>
+
+typedef struct AnimatedWebPContext
+{
+    const AVClass *class;
+    WebPAnimDecoderOptions dec_options;
+    WebPAnimDecoder *dec;
+    AVBufferRef *file_content;
+    WebPData webp_data; // references |file_content|
+    uint32_t loop_to_send;
+    uint32_t loop_sent;
+
+    // --- Options ---
+    int ignore_loop;
+} AnimatedWebPContext;
+
+// Initialize the decoder context
+static av_cold int decode_libwebp_init(AVCodecContext *avctx)
+{
+    AnimatedWebPContext *s = avctx->priv_data;
+
+    if (!WebPAnimDecoderOptionsInit(&s->dec_options)) {
+        av_log(avctx, AV_LOG_DEBUG, "Cannot initialize WebPAnimDecoderOptions\n");
+        return AVERROR(ENOMEM);
+    }
+    s->dec_options.color_mode = MODE_RGBA;
+    s->dec_options.use_threads = 1;
+    s->file_content = NULL;
+    s->loop_sent = 0;
+
+    avctx->pix_fmt = AV_PIX_FMT_RGBA;
+    avctx->pkt_timebase = av_make_q(1, 1000);
+    avctx->framerate = av_make_q(1, 0);
+
+    av_log(avctx, AV_LOG_DEBUG, "Animated WebP decoder initialized.\n");
+    return 0; // Success
+}
+
+/**
+ * Decode one frame of the animated WebP.
+ * This function will be called multiple times by FFmpeg.
+ * The first call receives the AVPacket with the full WebP file.
+ * Subsequent calls receive empty AVPacket until all frames are decoded.
+ */
+static int decode_libwebp_frame(AVCodecContext *avctx, AVFrame *p,
+                                int *got_frame, AVPacket *avpkt)
+{
+    WebPAnimInfo anim_info;
+    uint8_t *frame_rgba;
+    int timestamp_ms;
+
+    AnimatedWebPContext *s = avctx->priv_data;
+    int ret = avpkt->size;
+
+    // Initialization Phase (First Call)
+    // |avpkt| contains the entire file.
+    if (!s->dec) {
+        if (!avpkt || avpkt->size <= 0) {
+            // Should not happen on the first call, but check anyway.
+            av_log(avctx, AV_LOG_ERROR, "No input data provided on first call.\n");
+            return AVERROR(EINVAL);
+        }
+
+        // Store entire WebP file in memory.
+        s->file_content = av_buffer_ref(avpkt->buf);
+        s->webp_data.bytes = s->file_content->data;
+        s->webp_data.size = s->file_content->size;
+
+        s->dec = WebPAnimDecoderNew(&s->webp_data, &s->dec_options);
+        if (!s->dec) {
+            av_log(avctx, AV_LOG_ERROR, "Error creating WebPAnimDecoder.\n");
+            av_buffer_unref(&s->file_content);
+            return AVERROR(ENOMEM);
+        }
+
+        WebPAnimDecoderGetInfo(s->dec, &anim_info);
+
+        s->loop_to_send = s->ignore_loop ? 1 : anim_info.loop_count;
+        avctx->width = anim_info.canvas_width;
+        avctx->coded_width = anim_info.canvas_width;
+        avctx->height = anim_info.canvas_height;
+        avctx->coded_height = anim_info.canvas_height;
+        avctx->framerate = av_make_q(1, 0);
+    }
+
+    if (!WebPAnimDecoderHasMoreFrames(s->dec)) {
+        s->loop_sent++;
+        WebPAnimDecoderReset(s->dec);
+    }
+
+    if (s->loop_sent >= s->loop_to_send) {
+        av_log(avctx, AV_LOG_DEBUG, "End of animated WebP stream.\n");
+        return AVERROR_EOF;
+    }
+
+
+    if (!WebPAnimDecoderGetNext(s->dec, &frame_rgba, &timestamp_ms)) {
+        av_log(avctx, AV_LOG_ERROR, "Error getting next frame from WebPAnimDecoder.\n");
+        return AVERROR(EINVAL);
+    }
+
+    ret = ff_get_buffer(avctx, p, 0);
+    if (ret) {
+        av_log(avctx, AV_LOG_ERROR, "Failed to allocated buffer.\n");
+        return AVERROR(ENOMEM);
+    }
+
+    p->width = avctx->width;
+    p->height = avctx->height;
+    p->format = AV_PIX_FMT_RGBA;
+    p->pts = timestamp_ms;
+    p->pkt_dts = 0;
+    p->pict_type = AV_PICTURE_TYPE_I;
+
+    memcpy(p->data[0], frame_rgba, p->width * p->height * 4);
+
+    *got_frame = 1;
+    return ret;
+}
+
+static av_cold int decode_libwebp_close(AVCodecContext *avctx)
+{
+    AnimatedWebPContext *s = avctx->priv_data;
+    av_buffer_unref(&s->file_content);
+    if (s->dec) {
+        WebPAnimDecoderDelete(s->dec);
+        s->dec = NULL;
+    }
+    return 0;
+}
+
+static const AVOption options[] = {
+    { "ignore_loop", "ignore loop setting (netscape extension)", offsetof(AnimatedWebPContext, ignore_loop), AV_OPT_TYPE_BOOL, {.i64 = 1}, 0, 1, AV_OPT_FLAG_DECODING_PARAM} ,
+    { NULL },
+};
+
+static const AVClass libwebp_decoder_class = {
+    .class_name = "libwebp_decoder",
+    .item_name = av_default_item_name,
+    .option = options,
+    .version = LIBAVUTIL_VERSION_INT,
+    .category = AV_CLASS_CATEGORY_DECODER,
+};
+
+// Define the AVCodec structure for FFmpeg
+const FFCodec ff_libwebp_decoder = {
+    .p.name         = "libwebp",
+    CODEC_LONG_NAME("libwebp image/animation decoder"),
+    .p.type         = AVMEDIA_TYPE_VIDEO,
+    .p.id           = AV_CODEC_ID_WEBP,
+    .p.priv_class   = &libwebp_decoder_class,
+    .priv_data_size = sizeof(AnimatedWebPContext),
+    .p.wrapper_name = "libwebp",
+    .init           = decode_libwebp_init,
+    FF_CODEC_DECODE_CB(decode_libwebp_frame),
+    .close          = decode_libwebp_close,
+    .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
+};
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 0d4156e74a..026609f410 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -30,7 +30,7 @@
 #include "version_major.h"
 
 #define LIBAVCODEC_VERSION_MINOR   0
-#define LIBAVCODEC_VERSION_MICRO 101
+#define LIBAVCODEC_VERSION_MICRO 102
 
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
                                                LIBAVCODEC_VERSION_MINOR, \
-- 
2.39.5 (Apple Git-154)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder.
  2025-04-04  1:17 [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder Peter Xia
@ 2025-04-04 19:00 ` Michael Niedermayer
  2025-04-05  3:21   ` Peter Xia
  0 siblings, 1 reply; 5+ messages in thread
From: Michael Niedermayer @ 2025-04-04 19:00 UTC (permalink / raw)
  To: FFmpeg development discussions and patches


[-- Attachment #1.1: Type: text/plain, Size: 655 bytes --]

Hi Peter

On Thu, Apr 03, 2025 at 06:17:19PM -0700, Peter Xia wrote:
> Adds support of decoding animated webp.

What is missing / is needed to have our decoder support this ?

Our decoder should be made to support this, instead of
adding an external dependancy

also, isnt there a work in progress patchset for our webp decoder
somewhere, or is that about something else ?

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Homeopathy is like voting while filling the ballot out with transparent ink.
Sometimes the outcome one wanted occurs. Rarely its worse than filling out
a ballot properly.

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder.
  2025-04-04 19:00 ` Michael Niedermayer
@ 2025-04-05  3:21   ` Peter Xia
  2025-04-05  7:18     ` Steven Liu
  2025-04-05 11:19     ` Michael Niedermayer
  0 siblings, 2 replies; 5+ messages in thread
From: Peter Xia @ 2025-04-05  3:21 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Hi Michael, 

The current webp decoder does not support animated, only webp stills. It has been a pretty long standing feature request (#4907).

Although it adds dependency of the libwebp decoder library, libwebp itself is already a dependency of the encoder. I feel it’s simpler this way.

I don’t know if there is ongoing work about this, I’m pretty new to the project.

Thanks,
Peter

> On Apr 4, 2025, at 12:00 PM, Michael Niedermayer <michael@niedermayer.cc> wrote:
> 
> Hi Peter
> 
> On Thu, Apr 03, 2025 at 06:17:19PM -0700, Peter Xia wrote:
>> Adds support of decoding animated webp.
> 
> What is missing / is needed to have our decoder support this ?
> 
> Our decoder should be made to support this, instead of
> adding an external dependancy
> 
> also, isnt there a work in progress patchset for our webp decoder
> somewhere, or is that about something else ?
> 
> thx
> 
> [...]
> -- 
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> 
> Homeopathy is like voting while filling the ballot out with transparent ink.
> Sometimes the outcome one wanted occurs. Rarely its worse than filling out
> a ballot properly.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder.
  2025-04-05  3:21   ` Peter Xia
@ 2025-04-05  7:18     ` Steven Liu
  2025-04-05 11:19     ` Michael Niedermayer
  1 sibling, 0 replies; 5+ messages in thread
From: Steven Liu @ 2025-04-05  7:18 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

Peter Xia <aattyy@gmail.com> 于2025年4月5日周六 11:21写道:
>
> Hi Michael,
>
> The current webp decoder does not support animated, only webp stills. It has been a pretty long standing feature request (#4907).
>
> Although it adds dependency of the libwebp decoder library, libwebp itself is already a dependency of the encoder. I feel it’s simpler this way.
>
> I don’t know if there is ongoing work about this, I’m pretty new to the project.
Hi Peter,

reference this mail thread:
https://ffmpeg.org/pipermail/ffmpeg-devel/2024-June/330023.html



BTW, top-posting maybe will make something wrong or mistake, reference
link: https://ffmpeg.org/contact.html#MailingLists

>
> Thanks,
> Peter
>
> > On Apr 4, 2025, at 12:00 PM, Michael Niedermayer <michael@niedermayer.cc> wrote:
> >
> > Hi Peter
> >
> > On Thu, Apr 03, 2025 at 06:17:19PM -0700, Peter Xia wrote:
> >> Adds support of decoding animated webp.
> >
> > What is missing / is needed to have our decoder support this ?
> >
> > Our decoder should be made to support this, instead of
> > adding an external dependancy
> >
> > also, isnt there a work in progress patchset for our webp decoder
> > somewhere, or is that about something else ?
> >
> > thx
> >
> > [...]
> > --
> > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > Homeopathy is like voting while filling the ballot out with transparent ink.
> > Sometimes the outcome one wanted occurs. Rarely its worse than filling out
> > a ballot properly.
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

Thanks
Steven
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder.
  2025-04-05  3:21   ` Peter Xia
  2025-04-05  7:18     ` Steven Liu
@ 2025-04-05 11:19     ` Michael Niedermayer
  1 sibling, 0 replies; 5+ messages in thread
From: Michael Niedermayer @ 2025-04-05 11:19 UTC (permalink / raw)
  To: FFmpeg development discussions and patches; +Cc: Thilo Borgmann


[-- Attachment #1.1: Type: text/plain, Size: 2350 bytes --]

Hi Peter

On Fri, Apr 04, 2025 at 08:21:21PM -0700, Peter Xia wrote:
> Hi Michael, 
> 
> The current webp decoder does not support animated, only webp stills. It has been a pretty long standing feature request (#4907).
> 
> Although it adds dependency of the libwebp decoder library, libwebp itself is already a dependency of the encoder. I feel it’s simpler this way.
> 

> I don’t know if there is ongoing work about this, I’m pretty new to the project.

There was some work on webp, but i belive there is noone currently working
on it. So if you or someone else want to finish the animated webp decoder
support using our native decoder. That would be appreciated

thx


> 
> Thanks,
> Peter
> 
> > On Apr 4, 2025, at 12:00 PM, Michael Niedermayer <michael@niedermayer.cc> wrote:
> > 
> > Hi Peter
> > 
> > On Thu, Apr 03, 2025 at 06:17:19PM -0700, Peter Xia wrote:
> >> Adds support of decoding animated webp.
> > 
> > What is missing / is needed to have our decoder support this ?
> > 
> > Our decoder should be made to support this, instead of
> > adding an external dependancy
> > 
> > also, isnt there a work in progress patchset for our webp decoder
> > somewhere, or is that about something else ?
> > 
> > thx
> > 
> > [...]
> > -- 
> > Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> > 
> > Homeopathy is like voting while filling the ballot out with transparent ink.
> > Sometimes the outcome one wanted occurs. Rarely its worse than filling out
> > a ballot properly.
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > 
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> 
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Dictatorship naturally arises out of democracy, and the most aggravated
form of tyranny and slavery out of the most extreme liberty. -- Plato

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

[-- Attachment #2: Type: text/plain, Size: 251 bytes --]

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-04-05 11:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-04  1:17 [FFmpeg-devel] [PATCH v2] avcodec/libwebpdec: Add libwebp WebP decoder Peter Xia
2025-04-04 19:00 ` Michael Niedermayer
2025-04-05  3:21   ` Peter Xia
2025-04-05  7:18     ` Steven Liu
2025-04-05 11:19     ` Michael Niedermayer

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git