Jean-Baptiste Kempf pushed to branch 3.0.x at VideoLAN / VLC
Commits: ff6820d5 by Tristan Matthews at 2021-11-13T08:53:05+00:00 fourcc: add WebP image format Refs #19446 (cherry picked from commit ca04206095232821323f5624113c570f610e2659) Signed-off-by: Marvin Scholz <[email protected]> - - - - - 3ad9f3c2 by Tristan Matthews at 2021-11-13T08:53:05+00:00 demux: image: add WebP probing Refs #19446 (cherry picked from commit 816f1630123b781a74cab3591583e9a05e7a29a3) Signed-off-by: Marvin Scholz <[email protected]> - - - - - fb79c124 by Tristan Matthews at 2021-11-13T08:53:05+00:00 vpx: decode WebP's VP8 chunks Fixes #19446 (cherry picked from commit ac9038e9ac46792f294e2fe348d66f1e12340d2e) Signed-off-by: Marvin Scholz <[email protected]> - - - - - 4 changed files: - include/vlc_fourcc.h - modules/codec/vpx.c - modules/demux/image.c - src/misc/fourcc_list.h Changes: ===================================== include/vlc_fourcc.h ===================================== @@ -400,6 +400,7 @@ #define VLC_CODEC_PCX VLC_FOURCC('p','c','x',' ') #define VLC_CODEC_XWD VLC_FOURCC('X','W','D',' ') #define VLC_CODEC_TXD VLC_FOURCC('T','X','D',' ') +#define VLC_CODEC_WEBP VLC_FOURCC('W','E','B','P') /* Audio codec */ ===================================== modules/codec/vpx.c ===================================== @@ -290,6 +290,7 @@ static int OpenDecoder(vlc_object_t *p_this) switch (dec->fmt_in.i_codec) { #ifdef ENABLE_VP8_DECODER + case VLC_CODEC_WEBP: case VLC_CODEC_VP8: iface = &vpx_codec_vp8_dx_algo; vp_version = 8; ===================================== modules/demux/image.c ===================================== @@ -407,6 +407,21 @@ static bool IsJfif(stream_t *s) return true; } +static bool IsWebP(stream_t *s) +{ + const uint8_t *header; + if (vlc_stream_Peek(s, &header, 20) < 20) /* WebP header size */ + return false; + if (memcmp(&header[0], "RIFF", 4)) + return false; + /* TODO: support other chunk types */ + if (memcmp(&header[8], "WEBPVP8 ", 8)) + return false; + /* skip headers */ + vlc_stream_Seek(s, 20); + return true; +} + static bool IsSpiff(stream_t *s) { const uint8_t *header; @@ -607,6 +622,9 @@ static const image_format_t formats[] = { { .codec = VLC_CODEC_JPEG, .detect = IsExif, }, + { .codec = VLC_CODEC_WEBP, + .detect = IsWebP, + }, { .codec = VLC_CODEC_BPG, .marker_size = 4, .marker = { 'B', 'P', 'G', 0xFB }, ===================================== src/misc/fourcc_list.h ===================================== @@ -1007,6 +1007,9 @@ static const staticentry_t p_list_video[] = { A("LJ2C"), A("LJ2K"), + B(VLC_CODEC_WEBP, "WebP Image"), + A("WEBP"), + B(VLC_CODEC_LAGARITH, "Lagarith Lossless"), A("LAGS"), View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a108715f1d0f6e7c878a5b9ba01c799f08dc78f3...fb79c1242d8c6b640124a7c36126e5002107cae8 -- View it on GitLab: https://code.videolan.org/videolan/vlc/-/compare/a108715f1d0f6e7c878a5b9ba01c799f08dc78f3...fb79c1242d8c6b640124a7c36126e5002107cae8 You're receiving this email because of your account on code.videolan.org.
_______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
