# PixelPort third-party decoder

PixelPort 1.1.0 uses the unmodified `libheif-without-unsafe-eval.js` from heic-to 1.6.7, built from libheif 1.23.7 and libde265 1.0.16 with USE_UNSAFE_EVAL=0 and USE_WASM=0. The independent JavaScript module is distributed as vendor/libheif.js. It is loaded only by the local HEIC worker.

Copyright notices and license texts are retained in the corresponding source archives. heic-to, libheif and libde265 are distributed under their respective LGPL terms; see LGPL-3.0.txt and the COPY* files in the source archives. These notices do not change the terms of those libraries.

Sources and build instructions are supplied in decoder-sources.zip on getpixelport.com/vendor/. The upstream heic-to build instructions and esbuild script accompany the versioned libheif and libde265 sources. Upstreams:
- https://github.com/hoppergee/heic-to
- https://github.com/strukturag/libheif
- https://github.com/strukturag/libde265

The library remains a separate, replaceable file. For local development, replace src/vendor/libheif.js with a compatible modified build, run npm run build, and load the extension directory in Chrome developer mode. The wrapper interface is buildLibheif() returning HeifDecoder, heif_context_free and decoded-image display methods; see src/heic-worker.js. The same module can be replaced in a locally served website build. PixelPort does not prohibit modification of the LGPL library or reverse engineering for debugging modifications to it. Original copyright and license notices must be preserved.
