third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
author Tom Schuster <tschuster@mozilla.com>
Thu, 17 Jul 2025 07:01:33 +0000 (10 hours ago)
changeset 796956 2732dfd8c3b2071a053c85819299033f50ec5d48
parent 772628 f08088d1b2ff22a5cf1efc47f3161aeed6cee7d3
permissions -rw-r--r--
Bug 1977645 - Remove svg.use-element.data-url-href.allowed pref. r=longsonr Differential Revision: https://phabricator.services.mozilla.com/D257534
CAVIF=../cavif/cmake-build-debug/cavif
DAVIF=../davif/cmake-build-debug/davif

all: hato kimono fox plum;

HATO=\
	hato.profile2.8bpc.yuv422.avif \
	hato.profile2.8bpc.yuv422.monochrome.avif \
	hato.profile2.10bpc.yuv422.avif \
	hato.profile2.10bpc.yuv422.monochrome.avif \
	hato.profile2.12bpc.yuv422.avif \
	hato.profile2.12bpc.yuv422.monochrome.avif \
	hato.profile0.8bpc.yuv420.avif \
	hato.profile0.8bpc.yuv420.monochrome.avif \
	hato.profile0.10bpc.yuv420.avif \
	hato.profile0.10bpc.yuv420.monochrome.avif

hato: $(HATO);

KIMONO=\
	kimono.avif \
	kimono.rotate90.avif \
	kimono.rotate270.avif \
	kimono.mirror-horizontal.avif \
	kimono.mirror-vertical.avif \
	kimono.mirror-vertical.rotate270.avif \
	kimono.crop.avif \
	kimono.mirror-vertical.rotate270.crop.avif

kimono: $(KIMONO);

FOX=\
	fox.profile0.8bpc.yuv420.avif \
	fox.profile0.8bpc.yuv420.odd-width.avif \
	fox.profile0.8bpc.yuv420.odd-height.avif \
	fox.profile0.8bpc.yuv420.odd-width.odd-height.avif \
	fox.profile0.8bpc.yuv420.monochrome.avif \
	fox.profile0.8bpc.yuv420.monochrome.odd-width.avif \
	fox.profile0.8bpc.yuv420.monochrome.odd-height.avif \
	fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif \
	fox.profile0.10bpc.yuv420.avif \
	fox.profile0.10bpc.yuv420.odd-width.avif \
	fox.profile0.10bpc.yuv420.odd-height.avif \
	fox.profile0.10bpc.yuv420.odd-width.odd-height.avif \
	fox.profile0.10bpc.yuv420.monochrome.avif \
	fox.profile0.10bpc.yuv420.monochrome.odd-width.avif \
	fox.profile0.10bpc.yuv420.monochrome.odd-height.avif \
	fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv420.avif \
	fox.profile2.12bpc.yuv420.odd-width.avif \
	fox.profile2.12bpc.yuv420.odd-height.avif \
	fox.profile2.12bpc.yuv420.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv420.monochrome.avif \
	fox.profile2.12bpc.yuv420.monochrome.odd-width.avif \
	fox.profile2.12bpc.yuv420.monochrome.odd-height.avif \
	fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif \
	fox.profile2.8bpc.yuv422.avif \
	fox.profile2.8bpc.yuv422.odd-width.avif \
	fox.profile2.8bpc.yuv422.odd-height.avif \
	fox.profile2.8bpc.yuv422.odd-width.odd-height.avif \
	fox.profile2.8bpc.yuv422.monochrome.avif \
	fox.profile2.8bpc.yuv422.monochrome.odd-width.avif \
	fox.profile2.8bpc.yuv422.monochrome.odd-height.avif \
	fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif \
	fox.profile2.10bpc.yuv422.avif \
	fox.profile2.10bpc.yuv422.odd-width.avif \
	fox.profile2.10bpc.yuv422.odd-height.avif \
	fox.profile2.10bpc.yuv422.odd-width.odd-height.avif \
	fox.profile2.10bpc.yuv422.monochrome.avif \
	fox.profile2.10bpc.yuv422.monochrome.odd-width.avif \
	fox.profile2.10bpc.yuv422.monochrome.odd-height.avif \
	fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv422.avif \
	fox.profile2.12bpc.yuv422.odd-width.avif \
	fox.profile2.12bpc.yuv422.odd-height.avif \
	fox.profile2.12bpc.yuv422.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv422.monochrome.avif \
	fox.profile2.12bpc.yuv422.monochrome.odd-width.avif \
	fox.profile2.12bpc.yuv422.monochrome.odd-height.avif \
	fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif \
	fox.profile1.8bpc.yuv444.avif \
	fox.profile1.8bpc.yuv444.odd-width.avif \
	fox.profile1.8bpc.yuv444.odd-height.avif \
	fox.profile1.8bpc.yuv444.odd-width.odd-height.avif \
	fox.profile1.10bpc.yuv444.avif \
	fox.profile1.10bpc.yuv444.odd-width.avif \
	fox.profile1.10bpc.yuv444.odd-height.avif \
	fox.profile1.10bpc.yuv444.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv444.avif \
	fox.profile2.12bpc.yuv444.odd-width.avif \
	fox.profile2.12bpc.yuv444.odd-height.avif \
	fox.profile2.12bpc.yuv444.odd-width.odd-height.avif \
	fox.profile2.12bpc.yuv444.monochrome.avif \
	fox.profile2.12bpc.yuv444.monochrome.odd-width.avif \
	fox.profile2.12bpc.yuv444.monochrome.odd-height.avif \
	fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif

fox: $(FOX);

PLUM_LARGE=\
	plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif \
	plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif \
	plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif \
	plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif \
	plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif \
	plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif \
	plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif \
	plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif \
	plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif \
	plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif \
	plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif \
	plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif \
	plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif \
	plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif \
	plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif \
	plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif \
	plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif \
	plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif \
	plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif \
	plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif

PLUM_SMALL=\
	plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif \
	plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif \
	plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif \
	plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif \
	plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif \
	plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif \
	plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif \
	plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif \
	plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif \
	plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif \
	plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif \
	plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif \
	plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif \
	plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif \
	plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif \
	plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif \
	plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif \
	plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif \
	plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif \
	plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif \
	plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif \
	plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif \
	plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif \
	plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif

PLUM=$(PLUM_LARGE) $(PLUM_SMALL)

plum: $(PLUM);

STAR=\
	star-8bpc.avifs \
	star-8bpc-with-alpha.avifs \
	star-10bpc.avifs \
	star-10bpc-with-alpha.avifs \
	star-12bpc.avifs \
	star-12bpc-with-alpha.avifs

star: $(STAR);

ALL_AVIF=$(HATO) $(KIMONO) $(FOX) $(PLUM)
ALL_AVIFS=$(STAR)
DECODED_PNG=$(ALL_AVIF:%.avif=decoded/%.png)
DUMMY_CHECK_TARGETS=$(ALL_AVIF:%.avif=%.check)

.PHONY: all clean \
    hato kimono fox plum \
	star \
	decode decode-clean decode-images \
	url hato-url kimono-url fox-url plum-url\
	compare $(DUMMY_CHECK_TARGETS)

decode-clean:
	rm -Rf decoded/

$(DECODED_PNG): | decoded

decoded:
	mkdir -p decoded

decode-images: $(DECODED_PNG);

decode:
	$(MAKE) decode-clean
	$(MAKE) decode-images

compare: $(DUMMY_CHECK_TARGETS);

decoded/%.png: %.avif
	$(DAVIF) -i $< -o $@

$(DUMMY_CHECK_TARGETS): %.check: %.avif decoded/%.png
	bash -e scripts/compare.sh $@ $(word 1,$^) $(word 2,$^)

url:
	cat Makefile | grep '^.*\?\.avif:' | sort -d | sed 's/^\(.*\)\:\s*\(.*\)$\/https\:\/\/raw.githubusercontent.com\/link-u\/avif-sample-images\/master\/\1, https\:\/\/raw.githubusercontent.com\/link-u\/avif-sample-images\/master\/\2/'

hato-url:
	$(MAKE) url | grep hato

kimono-url:
	$(MAKE) url | grep kimono

fox-url:
	$(MAKE) url | grep fox

plum-url:
	$(MAKE) url | grep plum-blossom

clean:
	rm -Rf *.avif decoded .alpha-masks

## hato

### YUV422

hato.profile2.8bpc.yuv422.avif: hato.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

hato.profile2.8bpc.yuv422.monochrome.avif: hato.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18

hato.profile2.10bpc.yuv422.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

hato.profile2.10bpc.yuv422.monochrome.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18

hato.profile2.12bpc.yuv422.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

hato.profile2.12bpc.yuv422.monochrome.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --monochrome --cpu-used 0 --rate-control q --crf 18

### YUV420

hato.profile0.8bpc.yuv420.avif: hato.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

hato.profile0.8bpc.yuv420.monochrome.avif: hato.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --monochrome --cpu-used 0 --rate-control q --crf 18

hato.profile0.10bpc.yuv420.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

hato.profile0.10bpc.yuv420.monochrome.avif: hato.16bpc.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --monochrome --cpu-used 0 --rate-control q --crf 18

## Kimono

kimono.avif: kimono.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.rotate90.avif: kimono.rotate90.png
	$(CAVIF) -i $< -o $@ --rotation 270 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.rotate270.avif: kimono.rotate270.png
	$(CAVIF) -i $< -o $@ --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.mirror-horizontal.avif: kimono.mirror-horizontal.png
	$(CAVIF) -i $< -o $@ --mirror horizontal --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.mirror-vertical.avif: kimono.mirror-vertical.png
	$(CAVIF) -i $< -o $@ --mirror vertical --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.mirror-vertical.rotate270.avif: kimono.mirror-vertical.rotate270.png
	$(CAVIF) -i $< -o $@ --mirror vertical --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.crop.avif: kimono.png
	$(CAVIF) -i $< -o $@ --crop-offset 103,-308 --crop-size 385,330 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

kimono.mirror-vertical.rotate270.crop.avif: kimono.mirror-vertical.rotate270.png
	$(CAVIF) -i $< -o $@ --crop-offset -308,103 --crop-size 330,385 --mirror vertical --rotation 90 --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

## Fox Parade

### YUV420

#### 8bit

fox.profile0.8bpc.yuv420.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

#### 10bit

fox.profile0.10bpc.yuv420.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

#### 12bit

fox.profile2.12bpc.yuv420.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

### YUV422

#### 8bit

fox.profile2.8bpc.yuv422.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

#### 10bit

fox.profile2.10bpc.yuv422.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

#### 12bit

fox.profile2.12bpc.yuv422.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

### YUV444

#### 8bit

fox.profile1.8bpc.yuv444.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.8bpc.yuv444.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.8bpc.yuv444.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.8bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 10bit

fox.profile1.10bpc.yuv444.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.10bpc.yuv444.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.10bpc.yuv444.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile1.10bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 12bit

fox.profile2.12bpc.yuv444.avif: fox.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.monochrome.avif: fox.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.monochrome.odd-width.avif: fox.odd-width.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.monochrome.odd-height.avif: fox.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif: fox.odd-width.odd-height.png
	$(CAVIF) -i $< -o $@ --monochrome --tune psnr --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

## Alpha mask

.alpha-masks:
	mkdir -p .alpha-masks

$(PLUM): | .alpha-masks

## Plum blossom - large version

### YUV420

#### 8bit

plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 10bit

plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 12bit

plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

## YUV422

#### 8bit

plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 10bit

plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 12bit

plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

### YUV444

#### 8bit

plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 10bit

plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 12bit

plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif: plum-blossom-large.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome

## Plum blossom - small version

### YUV420

#### 8bit

plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 8 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 10bit

plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 0 --bit-depth 10 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 12bit

plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv420 --cpu-used 0 --rate-control q --crf 18 --monochrome

## YUV422

#### 8bit

plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 10bit

plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

#### 12bit

plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv422 --cpu-used 0 --rate-control q --crf 18 --monochrome

### YUV444

#### 8bit

plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 8 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 8 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 10bit

plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 10 --pix-fmt yuv422 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 1 --bit-depth 10 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

#### 12bit

plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome

plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18

plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif: plum-blossom-small.png
	$(CAVIF) -i $< -o .alpha-masks/$@ --encode-target alpha --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --lossless --monochrome --enable-full-color-range
	$(CAVIF) -i $< -o $@ --tune psnr --encode-target image --attach-alpha .alpha-masks/$@ --profile 2 --bit-depth 12 --pix-fmt yuv444 --cpu-used 0 --rate-control q --crf 18 --monochrome

star-8bpc.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv420p -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`
	MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
	MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
	MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
	rm -Rfv $(TMP)

# FIXME(ledya-z): WORK IN PROGRESS
star-8bpc-with-alpha.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv420p -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
	# FIXME(ledyba-z): It does not generate monochrome OBUs.
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`

	MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
	MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"

	MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
	MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
	rm -Rfv $(TMP)

star-10bpc.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv422p10 -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`
	MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
	MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
	MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
	rm -Rfv $(TMP)

# FIXME(ledya-z): WORK IN PROGRESS
star-10bpc-with-alpha.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv422p10 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
	# FIXME(ledyba-z): It does not generate monochrome OBUs.
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray10 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`

	MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
	MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"

	MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
	MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
	rm -Rfv $(TMP)

star-12bpc.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv444p12 -color_range jpeg -b:v 0 -crf 0 -lossless 1 $(TMP)/star.mp4
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`
	MP4Box -add-image $(TMP)/star.mp4:id=1:primary -new $@
	MP4Box -ab avis -ab msf1 -ab miaf -ab MA1B -rb mif1 -brand avis $@
	MP4Box -add $(TMP)/star.mp4:hdlr=pict:ccst:name="GPAC avifs" $@
	rm -Rfv $(TMP)

# FIXME(ledya-z): WORK IN PROGRESS
star-12bpc-with-alpha.avifs: star.input.txt
	$(eval TMP := $(shell mktemp -d))
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt yuv444p12 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-video.mp4"
	# FIXME(ledyba-z): It does not generate monochrome OBUs.
	~/umi/src/git.ffmpeg.org/ffmpeg/ffmpeg -r 10 -f concat -i star.input.txt -strict -2 -vcodec av1 -pix_fmt gray12 -color_range mpeg -b:v 0 -crf 0 -lossless 1 "$(TMP)/star-alpha.mp4"
	# You need the latest version of gpac.
	# Go to https://github.com/gpac/gpac
	# then, `make deb -j32`

	MP4Box -raw-layer "1:output=$(TMP)/star-video" "$(TMP)/star-video.mp4"
	MP4Box -raw-layer "1:output=$(TMP)/star-alpha" "$(TMP)/star-alpha.mp4"

	MP4Box -add-image "$(TMP)/star-alpha.av1:id=3:ref=auxl,4:alpha:name=Alpha" -add-image "$(TMP)/star-video.av1:id=4:name=Color" -set-primary 4 -ab avif -new $@
	MP4Box -add "$(TMP)/star-video.av1:hdlr=pict:ccst:name=\"GPAC avifs\"" -add "$(TMP)/star-alpha.av1:hdlr=auxv:ccst:alpha:name=\"GPAC avifs alpha\"" -ref 2:auxl:1 -ab msf1 -ab miaf -ab MA1B -brand avis $@
	rm -Rfv $(TMP)