mbox series

[FFmpeg-devel,v13,0/8,WIP] webp: add support for animated WebP decoding

Message ID 20240621104323.92453-1-thilo.borgmann@mail.de
Headers show
Series webp: add support for animated WebP decoding | expand

Message

Thilo Borgmann June 21, 2024, 10:43 a.m. UTC
Marked WIP because we'd want to introduce private bsf's first; review
welcome before that though

v13
Switched to new ProgressFrame API
Support for pixel format changes in animations
Propagate MIN_DELAY in case of invalid delay in animations
Added more tests for animations with pixel format changes

v12
VP8 decoder decoupled again
The whole animated sequence goes into one packet
The (currently public) bitstream filter splits animations up into non-conformant packets
Now with XMP metadata support (as string, like MOV)


Patch 5/8 is still there for making changes in lavc/webp reviewable but shall be stashed when pushing.

-Thilo

Josef Zlomek (2):
  libavcodec/webp: add support for animated WebP
  libavformat/webp: add WebP demuxer

Thilo Borgmann via ffmpeg-devel (6):
  avcodec/webp: remove unused definitions
  avcodec/webp: separate VP8 decoding
  avcodec/bsf: Add awebp2webp bitstream filter
  avcodec/webp: make init_canvas_frame static
  fate: add test for animated WebP
  avcodec/webp: export XMP metadata

 Changelog                                     |   2 +
 configure                                     |   1 +
 doc/demuxers.texi                             |  28 +
 libavcodec/bitstream_filters.c                |   1 +
 libavcodec/bsf/Makefile                       |   1 +
 libavcodec/bsf/awebp2webp.c                   | 353 +++++++
 libavcodec/codec_desc.c                       |   3 +-
 libavcodec/webp.c                             | 983 ++++++++++++++++--
 libavformat/Makefile                          |   1 +
 libavformat/allformats.c                      |   1 +
 libavformat/webpdec.c                         | 384 +++++++
 tests/fate/image.mak                          |   9 +
 tests/ref/fate/exif-image-webp                |   4 +-
 tests/ref/fate/webp-anim                      |  22 +
 tests/ref/fate/webp-chfmt1                    |  23 +
 tests/ref/fate/webp-chfmt2                    | 106 ++
 tests/ref/fate/webp-rgb-lena-lossless         |   2 +-
 tests/ref/fate/webp-rgb-lena-lossless-rgb24   |   2 +-
 tests/ref/fate/webp-rgb-lossless              |   2 +-
 .../fate/webp-rgb-lossless-palette-predictor  |   2 +-
 tests/ref/fate/webp-rgb-lossy-q80             |   2 +-
 tests/ref/fate/webp-rgba-lossless             |   2 +-
 tests/ref/fate/webp-rgba-lossy-q80            |   2 +-
 23 files changed, 1855 insertions(+), 81 deletions(-)
 create mode 100644 libavcodec/bsf/awebp2webp.c
 create mode 100644 libavformat/webpdec.c
 create mode 100644 tests/ref/fate/webp-anim
 create mode 100644 tests/ref/fate/webp-chfmt1
 create mode 100644 tests/ref/fate/webp-chfmt2