diff --git a/codecs/avif/Makefile b/codecs/avif/Makefile index 7fa2a96c..e4d9604c 100644 --- a/codecs/avif/Makefile +++ b/codecs/avif/Makefile @@ -33,7 +33,7 @@ all: $(OUT_JS) -o $@ \ $+ -$(LIBAOM_OUT): $(LIBAOM_DIR)/README.md +$(LIBAOM_OUT): $(LIBAOM_DIR)/CMakeLists.txt mkdir -p $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) && \ cd $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) && \ emcmake cmake \ @@ -50,10 +50,9 @@ $(LIBAOM_OUT): $(LIBAOM_DIR)/README.md ../ && \ $(MAKE) -$(LIBAOM_DIR)/README.md: $(CODEC_DIR)/README.md - mkdir -p $(LIBAOM_DIR) && \ - cd $(LIBAOM_DIR) && \ - curl -L $(LIBAOM_URL)/+archive/$(LIBAOM_VERSION).tar.gz | tar -xzf - +$(LIBAOM_DIR)/CMakeLists.txt: $(CODEC_DIR)/CMakeLists.txt + mkdir -p $(LIBAOM_DIR) + curl -L $(LIBAOM_URL)/+archive/$(LIBAOM_VERSION).tar.gz | tar -xzf - -C $(LIBAOM_DIR) $(CODEC_OUT): $(LIBAOM_OUT) mkdir -p $(CODEC_DIR)/$(CODEC_BUILD_DIR) && \ @@ -65,12 +64,11 @@ $(CODEC_OUT): $(LIBAOM_OUT) ../ && \ $(MAKE) -$(CODEC_DIR)/README.md: - mkdir -p $(CODEC_DIR) && \ - cd $(CODEC_DIR) && \ - curl -L $(CODEC_URL)/archive/$(CODEC_VERSION).tar.gz | tar -xzf - --strip 1 +$(CODEC_DIR)/CMakeLists.txt: + mkdir -p $(CODEC_DIR) + curl -L $(CODEC_URL)/archive/$(CODEC_VERSION).tar.gz | tar -xzf - --strip 1 -C $(CODEC_DIR) clean: $(RM) $(OUT_JS) $(OUT_WASM) - cd $(CODEC_DIR)/$(CODEC_BUILD_DIR) && $(MAKE) clean - cd $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) && $(MAKE) clean + $(MAKE) -C $(CODEC_DIR)/$(CODEC_BUILD_DIR) clean + $(MAKE) -C $(LIBAOM_DIR)/$(LIBAOM_BUILD_DIR) clean diff --git a/codecs/avif/enc/avif_enc.cpp b/codecs/avif/enc/avif_enc.cpp index e506ec0b..ec2dc90d 100644 --- a/codecs/avif/enc/avif_enc.cpp +++ b/codecs/avif/enc/avif_enc.cpp @@ -49,17 +49,7 @@ val encode(std::string buffer, int width, int height, AvifOptions options) { avifRGBImage srcRGB; avifRGBImageSetDefaults(&srcRGB, image); avifRGBImageAllocatePixels(&srcRGB); - - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - int pixelOffset = y * width + x; - uint8_t* pixel = &srcRGB.pixels[(4 * x) + (srcRGB.rowBytes * y)]; - pixel[0] = rgba[pixelOffset * 4 + 0]; - pixel[1] = rgba[pixelOffset * 4 + 1]; - pixel[2] = rgba[pixelOffset * 4 + 2]; - pixel[3] = rgba[pixelOffset * 4 + 3]; - } - } + memcpy(srcRGB.pixels, rgba, width * height * 4); avifImageRGBToYUV(image, &srcRGB); avifEncoder* encoder = avifEncoderCreate(); diff --git a/codecs/avif/enc/avif_enc.wasm b/codecs/avif/enc/avif_enc.wasm index 04d2fa89..e1439c31 100644 Binary files a/codecs/avif/enc/avif_enc.wasm and b/codecs/avif/enc/avif_enc.wasm differ