diff --git a/codecs/avif/enc/avif_enc.cpp b/codecs/avif/enc/avif_enc.cpp index 1f47e4a2..d8d13b8b 100644 --- a/codecs/avif/enc/avif_enc.cpp +++ b/codecs/avif/enc/avif_enc.cpp @@ -50,6 +50,16 @@ val encode(std::string buffer, int width, int height, AvifOptions options) { avifImage* image = avifImageCreate(width, height, depth, format); + if ( + options.maxQuantizer == AVIF_QUANTIZER_LOSSLESS && + options.minQuantizer == AVIF_QUANTIZER_LOSSLESS && + options.minQuantizerAlpha == AVIF_QUANTIZER_LOSSLESS && + options.maxQuantizerAlpha == AVIF_QUANTIZER_LOSSLESS && + format == AVIF_PIXEL_FORMAT_YUV444 + ) { + image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_IDENTITY; + } + uint8_t* rgba = (uint8_t*)buffer.c_str(); avifRGBImage srcRGB; diff --git a/codecs/avif/enc/avif_enc.wasm b/codecs/avif/enc/avif_enc.wasm index 2a60d70d..48c0c2ac 100644 Binary files a/codecs/avif/enc/avif_enc.wasm and b/codecs/avif/enc/avif_enc.wasm differ