# WebP export fallback

libwebp 1.6.0, compiled with Emscripten 4.0.15. Used only when the browser cannot encode WebP natively. Encoding stays in the conversion worker, with no external requests or image uploads. One worker is terminated after each image; allocations are released between quality-search attempts. No SIMD or threads are required. WASM memory is capped at 512 MiB; the application enforces 24 megapixels and a 90-second job timeout.

Source: https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.6.0.tar.gz

Source SHA-256: e4ab7009bf0629fd11982d4c2aa83964cf244cffba7347ecd39019a9e38c4564

JS SHA-256: 5db1b95db14e465723a51a7a911d6906e89768c32f112afd7e735249d458261c

WASM SHA-256: a04b30f9850a8f19f8e16e6063f37881c1b9c560fed2130bbab15f9d6f15d440

Rebuild: unpack /source/webp-source.tar.gz into the same build folder prepared by the HEIC decoder's bootstrap-tools.sh. Extract libwebp-1.6.0.tar.gz there, then run bash build-webp.sh. It uses the existing Emscripten 4.0.15, CMake 3.31.8 and Ninja toolchain. Replace this folder's JS/WASM pair and src/vendor/libwebp.mjs together, rebuild the application, and run the cross-browser tests. Review upstream advisories when upgrading.

libwebp uses its BSD-style license and WebM patent grant; see LICENSE-libwebp.txt, AUTHORS.txt and PATENTS.txt. Emscripten, musl and compiler-rt notices are also served under /vendor/libheif/ and linked on /licenses/.
