summaryrefslogtreecommitdiffstats
path: root/third_party/rust/mp4parse/link-u-avif-sample-images
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/mp4parse/link-u-avif-sample-images
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/mp4parse/link-u-avif-sample-images')
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml146
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/.gitignore4
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/LICENSE.txt427
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/Makefile911
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/README.md582
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.jpgbin0 -> 272383 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-height.pngbin0 -> 1464986 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.odd-height.pngbin0 -> 1463878 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.pngbin0 -> 1466473 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.pngbin0 -> 1300068 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.avifbin0 -> 83040 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.avifbin0 -> 71882 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-height.avifbin0 -> 69373 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.avifbin0 -> 69321 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avifbin0 -> 68303 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-height.avifbin0 -> 80540 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.avifbin0 -> 80552 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.odd-height.avifbin0 -> 79515 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.avifbin0 -> 80743 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.avifbin0 -> 69856 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-height.avifbin0 -> 67570 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.avifbin0 -> 67417 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avifbin0 -> 66487 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-height.avifbin0 -> 78504 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.avifbin0 -> 78348 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.odd-height.avifbin0 -> 77645 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.avifbin0 -> 97436 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-height.avifbin0 -> 93201 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.avifbin0 -> 93382 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.odd-height.avifbin0 -> 91311 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.avifbin0 -> 95375 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-height.avifbin0 -> 91421 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.avifbin0 -> 91492 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.odd-height.avifbin0 -> 89658 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.avifbin0 -> 89097 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.avifbin0 -> 71878 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-height.avifbin0 -> 69369 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.avifbin0 -> 69317 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avifbin0 -> 68299 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-height.avifbin0 -> 86052 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.avifbin0 -> 86327 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.odd-height.avifbin0 -> 85008 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.avifbin0 -> 84078 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.avifbin0 -> 73014 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-height.avifbin0 -> 70251 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.avifbin0 -> 70199 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avifbin0 -> 69124 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-height.avifbin0 -> 81694 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.avifbin0 -> 81695 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.odd-height.avifbin0 -> 80631 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.avifbin0 -> 90198 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.avifbin0 -> 73014 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-height.avifbin0 -> 70251 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.avifbin0 -> 70199 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avifbin0 -> 69124 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-height.avifbin0 -> 86996 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.avifbin0 -> 87525 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.odd-height.avifbin0 -> 85910 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.avifbin0 -> 98800 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.avifbin0 -> 73014 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-height.avifbin0 -> 70251 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.avifbin0 -> 70199 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avifbin0 -> 69124 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-height.avifbin0 -> 94557 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.avifbin0 -> 94341 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.odd-height.avifbin0 -> 92506 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.avifbin0 -> 86782 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.avifbin0 -> 69852 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-height.avifbin0 -> 67566 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.avifbin0 -> 67413 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avifbin0 -> 66483 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-height.avifbin0 -> 83919 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.avifbin0 -> 84128 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.odd-height.avifbin0 -> 82819 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.16bpc.pngbin0 -> 32049710 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.jpgbin0 -> 848035 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.pngbin0 -> 6665475 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.avifbin0 -> 328366 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.monochrome.avifbin0 -> 269194 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.avifbin0 -> 259104 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.monochrome.avifbin0 -> 220755 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.avifbin0 -> 370041 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.monochrome.avifbin0 -> 269190 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.avifbin0 -> 380045 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.monochrome.avifbin0 -> 277716 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.avifbin0 -> 282146 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.monochrome.avifbin0 -> 220751 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/images.html745
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.avifbin0 -> 85445 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.avifbin0 -> 85486 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.pngbin0 -> 157486 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.jpgbin0 -> 259121 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.avifbin0 -> 84996 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.pngbin0 -> 1267932 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.avifbin0 -> 84632 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.pngbin0 -> 1268141 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.avifbin0 -> 85529 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.crop.avifbin0 -> 85570 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.pngbin0 -> 1277948 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.pngbin0 -> 1278247 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.avifbin0 -> 84886 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.pngbin0 -> 1269687 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.avifbin0 -> 84837 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.pngbin0 -> 1269605 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.pngbin0 -> 87931 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avifbin0 -> 49032 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avifbin0 -> 46838 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avifbin0 -> 48394 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 46200 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avifbin0 -> 36191 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avifbin0 -> 34060 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avifbin0 -> 35946 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 33815 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avifbin0 -> 51332 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avifbin0 -> 50694 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avifbin0 -> 38385 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avifbin0 -> 38140 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avifbin0 -> 50169 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avifbin0 -> 46834 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avifbin0 -> 49531 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 46196 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avifbin0 -> 64569 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avifbin0 -> 62152 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avifbin0 -> 63618 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 61201 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avifbin0 -> 65714 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avifbin0 -> 62152 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avifbin0 -> 64763 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 61201 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avifbin0 -> 66795 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avifbin0 -> 62152 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avifbin0 -> 65844 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avifbin0 -> 61201 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avifbin0 -> 37161 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avifbin0 -> 34056 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avifbin0 -> 36916 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 33811 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.pngbin0 -> 4121 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avifbin0 -> 4217 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avifbin0 -> 3978 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avifbin0 -> 4125 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 3886 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avifbin0 -> 3284 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avifbin0 -> 3044 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avifbin0 -> 3236 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 2996 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avifbin0 -> 4415 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avifbin0 -> 4323 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avifbin0 -> 3463 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avifbin0 -> 3415 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avifbin0 -> 4292 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avifbin0 -> 3974 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avifbin0 -> 4200 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 3882 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avifbin0 -> 5202 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avifbin0 -> 4945 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avifbin0 -> 5110 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avifbin0 -> 4853 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avifbin0 -> 5270 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avifbin0 -> 4945 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avifbin0 -> 5178 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 4853 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avifbin0 -> 5378 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avifbin0 -> 4945 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avifbin0 -> 5286 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avifbin0 -> 4853 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avifbin0 -> 3369 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avifbin0 -> 3040 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avifbin0 -> 3321 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avifbin0 -> 2992 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom.svg176
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-10bpc.avifbin0 -> 198819 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-12bpc.avifbin0 -> 315064 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-8bpc.avifbin0 -> 106983 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-lossy.avifbin0 -> 2840 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.jpgbin0 -> 231513 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.pngbin0 -> 214470 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/scripts/compare.sh23
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc-with-alpha.avifsbin0 -> 50564 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc.avifsbin0 -> 31451 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc-with-alpha.avifsbin0 -> 76383 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc.avifsbin0 -> 49583 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc-with-alpha.avifsbin0 -> 29724 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc.avifsbin0 -> 15679 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star.gifbin0 -> 2900 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star.input.txt9
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star.pngbin0 -> 3844 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star.svg83
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star180.pngbin0 -> 9211 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star270.pngbin0 -> 9395 bytes
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/star90.pngbin0 -> 9272 bytes
191 files changed, 3106 insertions, 0 deletions
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml b/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml
new file mode 100644
index 0000000000..08733dec70
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml
@@ -0,0 +1,146 @@
+name: Encode all images and decode them again weekly.
+
+on:
+ push:
+ schedule:
+ - cron: '0 20 * * 0' # https://crontab.guru/#0_2_*_*_0
+
+jobs:
+ check-on-ubuntu:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-18.04, ubuntu-20.04]
+ include:
+ - os: ubuntu-18.04
+ codename: 'bionic'
+ cavif-flag: ''
+ - os: ubuntu-20.04
+ codename: 'focal'
+ cavif-flag: ''
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install required tools
+ run: sudo apt install -y curl jq unzip coreutils imagemagick
+ - name: Download latest cavif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/cavif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/cavif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "${{ matrix.codename }}")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o cavif.zip -L https://api.github.com/repos/link-u/cavif/actions/artifacts/${artifactId}/zip
+ unzip cavif.zip
+ env:
+ #id of https://github.com/link-u/cavif/actions?query=workflow%3A%22Build+debian+package+on+push+or+release-tags.%22
+ # curl https://api.github.com/repos/link-u/cavif/actions/workflows
+ WORKFLOW_ID: '4521995'
+ - name: Download latest davif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/davif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/davif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "${{ matrix.codename }}")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o davif.zip -L https://api.github.com/repos/link-u/davif/actions/artifacts/${artifactId}/zip
+ unzip davif.zip
+ env:
+ #id of https://github.com/link-u/davif/actions?query=workflow%3A%22Build+debian+package+on+push+or+release-tags.%22
+ # curl https://api.github.com/repos/link-u/davif/actions/workflows
+ WORKFLOW_ID: '452394'
+ - name: Install davif and cavif
+ run: sudo dpkg -i *.deb
+ - name: Use installed cavif and davif
+ run: |
+ sed -i -e 's/^CAVIF=.*$/CAVIF=cavif ${{ matrix.cavif-flag }}/' Makefile
+ sed -i -e 's/^DAVIF=.*$/DAVIF=davif/' Makefile
+ - name: Clean all images.
+ run: make clean
+ - name: Encode them all.
+ run: make all -j $(nproc)
+ - name: Decode them all.
+ run: make decode -j $(nproc)
+ - name: Copy images to upload.
+ run: |
+ mkdir -p ${{ matrix.codename }}/decoded
+ mkdir -p ${{ matrix.codename }}/encoded
+ cp decoded/* ${{ matrix.codename }}/decoded
+ cp *.avif ${{ matrix.codename }}/encoded
+ - name: Upload result
+ uses: actions/upload-artifact@v1
+ with:
+ name: ${{ matrix.codename }}
+ path: ${{ matrix.codename }}
+ - name: Compare the result
+ run: make compare -j $(nproc)
+ check-on-windows:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install msys2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: MINGW64
+ update: true
+ path-type: inherit
+ - name: Install dependencies
+ shell: msys2 {0}
+ run: |
+ set -eux
+ pacman --noconfirm -S make
+ pacman --noconfirm -S bc
+ pacman --noconfirm -S mingw-w64-x86_64-imagemagick
+ pacman --noconfirm -S mingw-w64-x86_64-curl
+ pacman --noconfirm -S mingw-w64-x86_64-jq
+ make --version
+ echo '2+2' | bc
+ magick -version
+ - name: Download latest cavif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/cavif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/cavif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "cavif-win64")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o cavif.zip -L https://api.github.com/repos/link-u/cavif/actions/artifacts/${artifactId}/zip
+ unzip cavif.zip
+ rm cavif.zip
+ ./cavif.exe -h
+ env:
+ WORKFLOW_ID: '4517759'
+ - name: Download latest davif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/davif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/davif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "davif-win64")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o davif.zip -L https://api.github.com/repos/link-u/davif/actions/artifacts/${artifactId}/zip
+ unzip davif.zip
+ rm davif.zip
+ ./davif.exe -h
+ env:
+ WORKFLOW_ID: '4521970'
+ - name: Rewrite Makefile to installed cavif and davif
+ shell: msys2 {0}
+ run: |
+ sed -i -e 's/^CAVIF=.*$/CAVIF=.\/cavif.exe/' Makefile
+ sed -i -e 's/^DAVIF=.*$/DAVIF=.\/davif.exe/' Makefile
+ - name: Clean all images.
+ shell: msys2 {0}
+ run: make clean
+ - name: Encode them all
+ shell: msys2 {0}
+ run: make all -j $(nproc)
+ - name: Decode them all
+ shell: msys2 {0}
+ run: make decode -j $(nproc)
+ - name: Copy images to upload.
+ shell: msys2 {0}
+ run: |
+ mkdir -p win64/decoded
+ mkdir -p win64/encoded
+ cp decoded/* win64/decoded
+ cp *.avif win64/encoded
+ - name: Upload result
+ uses: actions/upload-artifact@v1
+ with:
+ name: win64
+ path: win64
+ - name: Compare the result
+ shell: msys2 {0}
+ run: |
+ export PATH="/mingw64/bin:${PATH}"
+ make compare -j $(nproc)
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/.gitignore b/third_party/rust/mp4parse/link-u-avif-sample-images/.gitignore
new file mode 100644
index 0000000000..69b09be52a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/.gitignore
@@ -0,0 +1,4 @@
+*.avif.png
+/core
+/decoded/
+/.alpha-masks/
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/LICENSE.txt b/third_party/rust/mp4parse/link-u-avif-sample-images/LICENSE.txt
new file mode 100644
index 0000000000..33bec29d51
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/LICENSE.txt
@@ -0,0 +1,427 @@
+Attribution-ShareAlike 4.0 International
+
+=======================================================================
+
+Creative Commons Corporation ("Creative Commons") is not a law firm and
+does not provide legal services or legal advice. Distribution of
+Creative Commons public licenses does not create a lawyer-client or
+other relationship. Creative Commons makes its licenses and related
+information available on an "as-is" basis. Creative Commons gives no
+warranties regarding its licenses, any material licensed under their
+terms and conditions, or any related information. Creative Commons
+disclaims all liability for damages resulting from their use to the
+fullest extent possible.
+
+Using Creative Commons Public Licenses
+
+Creative Commons public licenses provide a standard set of terms and
+conditions that creators and other rights holders may use to share
+original works of authorship and other material subject to copyright
+and certain other rights specified in the public license below. The
+following considerations are for informational purposes only, are not
+exhaustive, and do not form part of our licenses.
+
+ Considerations for licensors: Our public licenses are
+ intended for use by those authorized to give the public
+ permission to use material in ways otherwise restricted by
+ copyright and certain other rights. Our licenses are
+ irrevocable. Licensors should read and understand the terms
+ and conditions of the license they choose before applying it.
+ Licensors should also secure all rights necessary before
+ applying our licenses so that the public can reuse the
+ material as expected. Licensors should clearly mark any
+ material not subject to the license. This includes other CC-
+ licensed material, or material used under an exception or
+ limitation to copyright. More considerations for licensors:
+ wiki.creativecommons.org/Considerations_for_licensors
+
+ Considerations for the public: By using one of our public
+ licenses, a licensor grants the public permission to use the
+ licensed material under specified terms and conditions. If
+ the licensor's permission is not necessary for any reason--for
+ example, because of any applicable exception or limitation to
+ copyright--then that use is not regulated by the license. Our
+ licenses grant only permissions under copyright and certain
+ other rights that a licensor has authority to grant. Use of
+ the licensed material may still be restricted for other
+ reasons, including because others have copyright or other
+ rights in the material. A licensor may make special requests,
+ such as asking that all changes be marked or described.
+ Although not required by our licenses, you are encouraged to
+ respect those requests where reasonable. More_considerations
+ for the public:
+ wiki.creativecommons.org/Considerations_for_licensees
+
+=======================================================================
+
+Creative Commons Attribution-ShareAlike 4.0 International Public
+License
+
+By exercising the Licensed Rights (defined below), You accept and agree
+to be bound by the terms and conditions of this Creative Commons
+Attribution-ShareAlike 4.0 International Public License ("Public
+License"). To the extent this Public License may be interpreted as a
+contract, You are granted the Licensed Rights in consideration of Your
+acceptance of these terms and conditions, and the Licensor grants You
+such rights in consideration of benefits the Licensor receives from
+making the Licensed Material available under these terms and
+conditions.
+
+
+Section 1 -- Definitions.
+
+ a. Adapted Material means material subject to Copyright and Similar
+ Rights that is derived from or based upon the Licensed Material
+ and in which the Licensed Material is translated, altered,
+ arranged, transformed, or otherwise modified in a manner requiring
+ permission under the Copyright and Similar Rights held by the
+ Licensor. For purposes of this Public License, where the Licensed
+ Material is a musical work, performance, or sound recording,
+ Adapted Material is always produced where the Licensed Material is
+ synched in timed relation with a moving image.
+
+ b. Adapter's License means the license You apply to Your Copyright
+ and Similar Rights in Your contributions to Adapted Material in
+ accordance with the terms and conditions of this Public License.
+
+ c. BY-SA Compatible License means a license listed at
+ creativecommons.org/compatiblelicenses, approved by Creative
+ Commons as essentially the equivalent of this Public License.
+
+ d. Copyright and Similar Rights means copyright and/or similar rights
+ closely related to copyright including, without limitation,
+ performance, broadcast, sound recording, and Sui Generis Database
+ Rights, without regard to how the rights are labeled or
+ categorized. For purposes of this Public License, the rights
+ specified in Section 2(b)(1)-(2) are not Copyright and Similar
+ Rights.
+
+ e. Effective Technological Measures means those measures that, in the
+ absence of proper authority, may not be circumvented under laws
+ fulfilling obligations under Article 11 of the WIPO Copyright
+ Treaty adopted on December 20, 1996, and/or similar international
+ agreements.
+
+ f. Exceptions and Limitations means fair use, fair dealing, and/or
+ any other exception or limitation to Copyright and Similar Rights
+ that applies to Your use of the Licensed Material.
+
+ g. License Elements means the license attributes listed in the name
+ of a Creative Commons Public License. The License Elements of this
+ Public License are Attribution and ShareAlike.
+
+ h. Licensed Material means the artistic or literary work, database,
+ or other material to which the Licensor applied this Public
+ License.
+
+ i. Licensed Rights means the rights granted to You subject to the
+ terms and conditions of this Public License, which are limited to
+ all Copyright and Similar Rights that apply to Your use of the
+ Licensed Material and that the Licensor has authority to license.
+
+ j. Licensor means the individual(s) or entity(ies) granting rights
+ under this Public License.
+
+ k. Share means to provide material to the public by any means or
+ process that requires permission under the Licensed Rights, such
+ as reproduction, public display, public performance, distribution,
+ dissemination, communication, or importation, and to make material
+ available to the public including in ways that members of the
+ public may access the material from a place and at a time
+ individually chosen by them.
+
+ l. Sui Generis Database Rights means rights other than copyright
+ resulting from Directive 96/9/EC of the European Parliament and of
+ the Council of 11 March 1996 on the legal protection of databases,
+ as amended and/or succeeded, as well as other essentially
+ equivalent rights anywhere in the world.
+
+ m. You means the individual or entity exercising the Licensed Rights
+ under this Public License. Your has a corresponding meaning.
+
+
+Section 2 -- Scope.
+
+ a. License grant.
+
+ 1. Subject to the terms and conditions of this Public License,
+ the Licensor hereby grants You a worldwide, royalty-free,
+ non-sublicensable, non-exclusive, irrevocable license to
+ exercise the Licensed Rights in the Licensed Material to:
+
+ a. reproduce and Share the Licensed Material, in whole or
+ in part; and
+
+ b. produce, reproduce, and Share Adapted Material.
+
+ 2. Exceptions and Limitations. For the avoidance of doubt, where
+ Exceptions and Limitations apply to Your use, this Public
+ License does not apply, and You do not need to comply with
+ its terms and conditions.
+
+ 3. Term. The term of this Public License is specified in Section
+ 6(a).
+
+ 4. Media and formats; technical modifications allowed. The
+ Licensor authorizes You to exercise the Licensed Rights in
+ all media and formats whether now known or hereafter created,
+ and to make technical modifications necessary to do so. The
+ Licensor waives and/or agrees not to assert any right or
+ authority to forbid You from making technical modifications
+ necessary to exercise the Licensed Rights, including
+ technical modifications necessary to circumvent Effective
+ Technological Measures. For purposes of this Public License,
+ simply making modifications authorized by this Section 2(a)
+ (4) never produces Adapted Material.
+
+ 5. Downstream recipients.
+
+ a. Offer from the Licensor -- Licensed Material. Every
+ recipient of the Licensed Material automatically
+ receives an offer from the Licensor to exercise the
+ Licensed Rights under the terms and conditions of this
+ Public License.
+
+ b. Additional offer from the Licensor -- Adapted Material.
+ Every recipient of Adapted Material from You
+ automatically receives an offer from the Licensor to
+ exercise the Licensed Rights in the Adapted Material
+ under the conditions of the Adapter's License You apply.
+
+ c. No downstream restrictions. You may not offer or impose
+ any additional or different terms or conditions on, or
+ apply any Effective Technological Measures to, the
+ Licensed Material if doing so restricts exercise of the
+ Licensed Rights by any recipient of the Licensed
+ Material.
+
+ 6. No endorsement. Nothing in this Public License constitutes or
+ may be construed as permission to assert or imply that You
+ are, or that Your use of the Licensed Material is, connected
+ with, or sponsored, endorsed, or granted official status by,
+ the Licensor or others designated to receive attribution as
+ provided in Section 3(a)(1)(A)(i).
+
+ b. Other rights.
+
+ 1. Moral rights, such as the right of integrity, are not
+ licensed under this Public License, nor are publicity,
+ privacy, and/or other similar personality rights; however, to
+ the extent possible, the Licensor waives and/or agrees not to
+ assert any such rights held by the Licensor to the limited
+ extent necessary to allow You to exercise the Licensed
+ Rights, but not otherwise.
+
+ 2. Patent and trademark rights are not licensed under this
+ Public License.
+
+ 3. To the extent possible, the Licensor waives any right to
+ collect royalties from You for the exercise of the Licensed
+ Rights, whether directly or through a collecting society
+ under any voluntary or waivable statutory or compulsory
+ licensing scheme. In all other cases the Licensor expressly
+ reserves any right to collect such royalties.
+
+
+Section 3 -- License Conditions.
+
+Your exercise of the Licensed Rights is expressly made subject to the
+following conditions.
+
+ a. Attribution.
+
+ 1. If You Share the Licensed Material (including in modified
+ form), You must:
+
+ a. retain the following if it is supplied by the Licensor
+ with the Licensed Material:
+
+ i. identification of the creator(s) of the Licensed
+ Material and any others designated to receive
+ attribution, in any reasonable manner requested by
+ the Licensor (including by pseudonym if
+ designated);
+
+ ii. a copyright notice;
+
+ iii. a notice that refers to this Public License;
+
+ iv. a notice that refers to the disclaimer of
+ warranties;
+
+ v. a URI or hyperlink to the Licensed Material to the
+ extent reasonably practicable;
+
+ b. indicate if You modified the Licensed Material and
+ retain an indication of any previous modifications; and
+
+ c. indicate the Licensed Material is licensed under this
+ Public License, and include the text of, or the URI or
+ hyperlink to, this Public License.
+
+ 2. You may satisfy the conditions in Section 3(a)(1) in any
+ reasonable manner based on the medium, means, and context in
+ which You Share the Licensed Material. For example, it may be
+ reasonable to satisfy the conditions by providing a URI or
+ hyperlink to a resource that includes the required
+ information.
+
+ 3. If requested by the Licensor, You must remove any of the
+ information required by Section 3(a)(1)(A) to the extent
+ reasonably practicable.
+
+ b. ShareAlike.
+
+ In addition to the conditions in Section 3(a), if You Share
+ Adapted Material You produce, the following conditions also apply.
+
+ 1. The Adapter's License You apply must be a Creative Commons
+ license with the same License Elements, this version or
+ later, or a BY-SA Compatible License.
+
+ 2. You must include the text of, or the URI or hyperlink to, the
+ Adapter's License You apply. You may satisfy this condition
+ in any reasonable manner based on the medium, means, and
+ context in which You Share Adapted Material.
+
+ 3. You may not offer or impose any additional or different terms
+ or conditions on, or apply any Effective Technological
+ Measures to, Adapted Material that restrict exercise of the
+ rights granted under the Adapter's License You apply.
+
+
+Section 4 -- Sui Generis Database Rights.
+
+Where the Licensed Rights include Sui Generis Database Rights that
+apply to Your use of the Licensed Material:
+
+ a. for the avoidance of doubt, Section 2(a)(1) grants You the right
+ to extract, reuse, reproduce, and Share all or a substantial
+ portion of the contents of the database;
+
+ b. if You include all or a substantial portion of the database
+ contents in a database in which You have Sui Generis Database
+ Rights, then the database in which You have Sui Generis Database
+ Rights (but not its individual contents) is Adapted Material,
+
+ including for purposes of Section 3(b); and
+ c. You must comply with the conditions in Section 3(a) if You Share
+ all or a substantial portion of the contents of the database.
+
+For the avoidance of doubt, this Section 4 supplements and does not
+replace Your obligations under this Public License where the Licensed
+Rights include other Copyright and Similar Rights.
+
+
+Section 5 -- Disclaimer of Warranties and Limitation of Liability.
+
+ a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
+ EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
+ AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
+ ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
+ IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
+ WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
+ ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
+ KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
+ ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
+
+ b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
+ TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
+ NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
+ INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
+ COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
+ USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
+ ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
+ DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
+ IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
+
+ c. The disclaimer of warranties and limitation of liability provided
+ above shall be interpreted in a manner that, to the extent
+ possible, most closely approximates an absolute disclaimer and
+ waiver of all liability.
+
+
+Section 6 -- Term and Termination.
+
+ a. This Public License applies for the term of the Copyright and
+ Similar Rights licensed here. However, if You fail to comply with
+ this Public License, then Your rights under this Public License
+ terminate automatically.
+
+ b. Where Your right to use the Licensed Material has terminated under
+ Section 6(a), it reinstates:
+
+ 1. automatically as of the date the violation is cured, provided
+ it is cured within 30 days of Your discovery of the
+ violation; or
+
+ 2. upon express reinstatement by the Licensor.
+
+ For the avoidance of doubt, this Section 6(b) does not affect any
+ right the Licensor may have to seek remedies for Your violations
+ of this Public License.
+
+ c. For the avoidance of doubt, the Licensor may also offer the
+ Licensed Material under separate terms or conditions or stop
+ distributing the Licensed Material at any time; however, doing so
+ will not terminate this Public License.
+
+ d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
+ License.
+
+
+Section 7 -- Other Terms and Conditions.
+
+ a. The Licensor shall not be bound by any additional or different
+ terms or conditions communicated by You unless expressly agreed.
+
+ b. Any arrangements, understandings, or agreements regarding the
+ Licensed Material not stated herein are separate from and
+ independent of the terms and conditions of this Public License.
+
+
+Section 8 -- Interpretation.
+
+ a. For the avoidance of doubt, this Public License does not, and
+ shall not be interpreted to, reduce, limit, restrict, or impose
+ conditions on any use of the Licensed Material that could lawfully
+ be made without permission under this Public License.
+
+ b. To the extent possible, if any provision of this Public License is
+ deemed unenforceable, it shall be automatically reformed to the
+ minimum extent necessary to make it enforceable. If the provision
+ cannot be reformed, it shall be severed from this Public License
+ without affecting the enforceability of the remaining terms and
+ conditions.
+
+ c. No term or condition of this Public License will be waived and no
+ failure to comply consented to unless expressly agreed to by the
+ Licensor.
+
+ d. Nothing in this Public License constitutes or may be interpreted
+ as a limitation upon, or waiver of, any privileges and immunities
+ that apply to the Licensor or You, including from the legal
+ processes of any jurisdiction or authority.
+
+
+=======================================================================
+
+Creative Commons is not a party to its public
+licenses. Notwithstanding, Creative Commons may elect to apply one of
+its public licenses to material it publishes and in those instances
+will be considered the “Licensor.” The text of the Creative Commons
+public licenses is dedicated to the public domain under the CC0 Public
+Domain Dedication. Except for the limited purpose of indicating that
+material is shared under a Creative Commons public license or as
+otherwise permitted by the Creative Commons policies published at
+creativecommons.org/policies, Creative Commons does not authorize the
+use of the trademark "Creative Commons" or any other trademark or logo
+of Creative Commons without its prior written consent including,
+without limitation, in connection with any unauthorized modifications
+to any of its public licenses or any other arrangements,
+understandings, or agreements concerning use of licensed material. For
+the avoidance of doubt, this paragraph does not form part of the
+public licenses.
+
+Creative Commons may be contacted at creativecommons.org. \ No newline at end of file
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile b/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
new file mode 100644
index 0000000000..2cabb6101b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/Makefile
@@ -0,0 +1,911 @@
+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)
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/README.md b/third_party/rust/mp4parse/link-u-avif-sample-images/README.md
new file mode 100644
index 0000000000..6b803ec823
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/README.md
@@ -0,0 +1,582 @@
+# AVIF Example files.
+
+![Encode all images and decode them again weekly.](https://github.com/link-u/avif-sample-images/workflows/Encode%20all%20images%20and%20decode%20them%20again%20weekly./badge.svg)
+
+- All files do not contain Exif metadata.
+- All files are tagged as MIAF compatible.
+- All files are tagged as compatible with the AVIF Baseline or Advanced Profile if possible.
+- All images have the "reduced_still_picture_header" and "still_picture" flags set to 1 in the AV1 Sequence Header.
+- Most images are licensed under [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.en), but some files are licensed different license. Please check.
+
+[Makefile](Makefile) describes how they were created. To generate files yourself, you have to install [cavif](https://github.com/link-u/cavif) and [davif](https://github.com/link-u/davif)
+
+## hato
+
+![hato.jpg](hato.jpg)
+
+ - size: 3082x2048
+ - License: [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.en)
+ - Author: Kaede Fujisaki ([@ledyba](https://github.com/ledyba))
+ - Retrieved from [her website](https://hexe.net/2017/11/27/12:27:02/).
+
+### AVIF version
+
+#### YUV 420
+
+| profile | bit depth | Monochrome | file |
+|---------|-----------|------------|--------------------------------------------------|
+| 0 | 8 | | [here](hato.profile0.8bpc.yuv420.avif) |
+| 0 | 8 | YES | [here](hato.profile0.8bpc.yuv420.monochromeavif) |
+| 0 | 10 | | [here](hato.profile0.10bpc.yuv420.avif) |
+| 0 | 10 | YES | [here](hato.profile0.10bpc.yuv420.avif) |
+
+#### YUV422
+
+| profile | bit depth | Monochrome | file |
+|---------|-----------|------------|---------------------------------------------------|
+| 2 | 8 | | [here](hato.profile2.8bpc.yuv422.avif) |
+| 2 | 8 | YES | [here](hato.profile2.8bpc.yuv422.monochrome.avif) |
+| 2 | 10 | | [here](hato.profile2.10bpc.yuv422.avif) |
+| 2 | 10 | YES | [here](hato.profile2.10bpc.yuv422.avif) |
+| 2 | 12 | | [here](hato.profile2.12bpc.yuv422.avif) |
+| 2 | 12 | YES | [here](hato.profile2.12bpc.yuv422.avif) |
+
+#### URLS
+
+You can obtain this list with `make hato-url`.
+
+```
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile0.10bpc.yuv420.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile0.10bpc.yuv420.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile0.8bpc.yuv420.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile0.8bpc.yuv420.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.10bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.10bpc.yuv422.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.12bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.12bpc.yuv422.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.8bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/hato.profile2.8bpc.yuv422.monochrome.avif
+```
+
+## Kimono - Transformation tests
+
+[<img src="https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.jpg" alt="kimono.jpg" height="512">](kimono.jpg)
+
+ - size: 722x1024
+ - License: [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.en)
+ - Authors: Momiji Jinzamomi([@momiji-san](https://github.com/momiji-san)) and Kaede Fujisaki ([@ledyba](https://github.com/ledyba))
+ - Retrieved from [their website](https://hexe.net/2018/12/24/18:59:01/).
+
+
+Test images for rotation(`irot`), mirroring(`imir`), cropping(`clap`).
+
+All AVIF images are encoded in these settings:
+
+ - Profile 0
+ - YUV420
+ - 8 bits per component
+
+### FYI: Transform operation order
+
+[MIAF](https://www.iso.org/standard/74417.html) defines the transform operation order(p.16):
+
+> These properties, if used, shall be indicated to be applied in the following order:
+> clean aperture first, then rotation, then mirror.
+
+### Identity
+
+[kimono.avif](./kimono.avif)
+
+No operation is applied.
+
+### Rotation 90
+
+[kimono.rotate90.avif](./kimono.rotate90.avif)
+
+[Encoded image is rotated at 90 degree in counter-clockwise](kimono.rotate90.png), and marked to rotate it 270 degree in counter-clockwise when displaying. Thus, resulted image is as the same as the original.
+
+### Rotation 270
+
+[kimono.rotate270.avif](./kimono.rotate270.avif)
+
+[Encoded image is rotated at 270 degree in counter-clockwise](kimono.rotate270.png), and marked to rotate it 90 degree in counter-clockwise when displaying. Thus, resulted image is as the same as the original.
+
+
+### Mirroring horizontally
+
+[kimono.mirror-horizontal.avif](./kimono.mirror-horizontal.avif)
+
+[Encoded image is mirrored horizontally](kimono.mirror-horizontal.png), and marked to mirror it horizontally again when displaying. Thus, resulted image is as the same as the original.
+
+### Mirroring vertically
+
+[kimono.mirror-vertical.avif](./kimono.mirror-vertical.avif)
+
+Vertical version. Same as above.
+
+### Mirroring vertically + Rotating at 90 degrees.
+
+[kimono.mirror-vertical.rotate270.avif](./kimono.mirror-vertical.rotate270.avif)
+
+[Encoded image is mirrored vertically, then rorated at 90 degree in clockwise](kimono.mirror-vertical.rotate270.png), and marked to rotate it at 90 degree in counter-clockwise and then mirror it vertically when displaying.
+
+Thus, resulted image is as the same as the original.
+
+### Cropping
+
+[kimono.crop.avif](kimono.crop.avif)
+
+Displaying image will be cropped from the original image, using `CleanApertureBox`(See: ISO/IEC 14496-12:2015).
+
+Cropped under these condition:
+
+ - cleanApertureWidthN: 385
+ - cleanApertureWidthD: 1
+ - cleanApertureHeightN: 330
+ - cleanApertureHeightD: 1
+ - horizOffN: 103
+ - horizOffD: 1
+ - vertOffN: -308 (This can be negative, as mensioned in ISO/IEC 14496-12:2015).
+ - vertOffD: 1
+
+Resulted image should be:
+
+![kimono.crop.png](kimono.crop.png)
+
+### Cropping + Mirroring vertically + Rotating at 90 degrees.
+
+[kimono.mirror-vertical.rotate270.crop.avif](kimono.mirror-vertical.rotate270.crop.avif)
+
+[Encoded image is mirrored vertically, then rorated at 90 degree in clockwise](kimono.mirror-vertical.rotate270.png), and marked to crop it first, rotate it at 90 degree in counter-clockwise, and then mirror it vertically.
+
+Cropping condition is:
+
+- cleanApertureWidthN: 330
+- cleanApertureWidthD: 1
+- cleanApertureHeightN: 385
+- cleanApertureHeightD: 1
+- horizOffN: -308
+- horizOffD: 1
+- vertOffN: 103
+- vertOffD: 1
+
+Resulted image should be as the same as above.
+
+![kimono.crop.png](kimono.crop.png)
+
+### URLS
+
+You can obtain this list with `make kimono-url`.
+
+```
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.crop.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.mirror-horizontal.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.mirror-vertical.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.mirror-vertical.rotate270.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.mirror-vertical.rotate270.crop.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.rotate270.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/kimono.rotate90.avif
+```
+
+## Fox Parade - Odd dimensions images
+
+### Original
+
+[<img src="https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.jpg" alt="fox.jpg" height="512">](fox.jpg)
+
+ - size: 1204 x 800
+ - License: [CC-BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.en)
+ - Author: Kaede Fujisaki ([@ledyba](https://github.com/ledyba))
+ - Retrieved from [her website](https://hexe.net/2017/12/02/16:33:53/).
+
+#### Odd-Width
+
+ - [fox.odd-width.png](fox.odd-width.png)
+ - size: 1203 x 800
+
+#### Odd-Height
+
+ - [fox.odd-height.png](fox.odd-height.png)
+ - size: 1204 x 799
+
+#### Odd-Width x Odd-Height
+
+ - [fox.odd-width.odd-height.png](fox.odd-width.odd-height.png)
+ - size: 1203 x 799
+
+### AVIF version
+
+| profile | bit depth | pix fmt | Monochrome | odd width | odd height | file |
+|---------|-----------|---------|------------|-----------|------------|------------------------------------------------------------------------|
+| 0 | 8 | YUV420 | | | | [here](fox.profile0.8bpc.yuv420.avif) |
+| 0 | 8 | YUV420 | | YES | | [here](fox.profile0.8bpc.yuv420.odd-width.avif) |
+| 0 | 8 | YUV420 | | | YES | [here](fox.profile0.8bpc.yuv420.odd-height.avif) |
+| 0 | 8 | YUV420 | | YES | YES | [here](fox.profile0.8bpc.yuv420.odd-width.odd-height.avif) |
+| 0 | 8 | YUV420 | YES | | | [here](fox.profile0.8bpc.yuv420.monochrome.avif) |
+| 0 | 8 | YUV420 | YES | YES | | [here](fox.profile0.8bpc.yuv420.monochrome.odd-width.avif) |
+| 0 | 8 | YUV420 | YES | | YES | [here](fox.profile0.8bpc.yuv420.monochrome.odd-height.avif) |
+| 0 | 8 | YUV420 | YES | YES | YES | [here](fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif) |
+| 0 | 10 | YUV420 | | | | [here](fox.profile0.10bpc.yuv420.avif) |
+| 0 | 10 | YUV420 | | YES | | [here](fox.profile0.10bpc.yuv420.odd-width.avif) |
+| 0 | 10 | YUV420 | | | YES | [here](fox.profile0.10bpc.yuv420.odd-height.avif) |
+| 0 | 10 | YUV420 | | YES | YES | [here](fox.profile0.10bpc.yuv420.odd-width.odd-height.avif) |
+| 0 | 10 | YUV420 | YES | | | [here](fox.profile0.10bpc.yuv420.monochrome.avif) |
+| 0 | 10 | YUV420 | YES | YES | | [here](fox.profile0.10bpc.yuv420.monochrome.odd-width.avif) |
+| 0 | 10 | YUV420 | YES | | YES | [here](fox.profile0.10bpc.yuv420.monochrome.odd-height.avif) |
+| 0 | 10 | YUV420 | YES | YES | YES | [here](fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif) |
+| 2 | 12 | YUV420 | | | | [here](fox.profile2.12bpc.yuv420.avif) |
+| 2 | 12 | YUV420 | | YES | | [here](fox.profile2.12bpc.yuv420.odd-width.avif) |
+| 2 | 12 | YUV420 | | | YES | [here](fox.profile2.12bpc.yuv420.odd-height.avif) |
+| 2 | 12 | YUV420 | | YES | YES | [here](fox.profile2.12bpc.yuv420.odd-width.odd-height.avif) |
+| 2 | 12 | YUV420 | YES | | | [here](fox.profile2.12bpc.yuv420.monochrome.avif) |
+| 2 | 12 | YUV420 | YES | YES | | [here](fox.profile2.12bpc.yuv420.monochrome.odd-width.avif) |
+| 2 | 12 | YUV420 | YES | | YES | [here](fox.profile2.12bpc.yuv420.monochrome.odd-height.avif) |
+| 2 | 12 | YUV420 | YES | YES | YES | [here](fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif) |
+| 2 | 8 | YUV422 | | | | [here](fox.profile2.8bpc.yuv422.avif) |
+| 2 | 8 | YUV422 | | YES | | [here](fox.profile2.8bpc.yuv422.odd-width.avif) |
+| 2 | 8 | YUV422 | | | YES | [here](fox.profile2.8bpc.yuv422.odd-height.avif) |
+| 2 | 8 | YUV422 | | YES | YES | [here](fox.profile2.8bpc.yuv422.odd-width.odd-height.avif) |
+| 2 | 8 | YUV422 | YES | | | [here](fox.profile2.8bpc.yuv422.monochrome.avif) |
+| 2 | 8 | YUV422 | YES | YES | | [here](fox.profile2.8bpc.yuv422.monochrome.odd-width.avif) |
+| 2 | 8 | YUV422 | YES | | YES | [here](fox.profile2.8bpc.yuv422.monochrome.odd-height.avif) |
+| 2 | 8 | YUV422 | YES | YES | YES | [here](fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif) |
+| 2 | 10 | YUV422 | | | | [here](fox.profile2.10bpc.yuv422.avif) |
+| 2 | 10 | YUV422 | | YES | | [here](fox.profile2.10bpc.yuv422.odd-width.avif) |
+| 2 | 10 | YUV422 | | | YES | [here](fox.profile2.10bpc.yuv422.odd-height.avif) |
+| 2 | 10 | YUV422 | | YES | YES | [here](fox.profile2.10bpc.yuv422.odd-width.odd-height.avif) |
+| 2 | 10 | YUV422 | YES | | | [here](fox.profile2.10bpc.yuv422.monochrome.avif) |
+| 2 | 10 | YUV422 | YES | YES | | [here](fox.profile2.10bpc.yuv422.monochrome.odd-width.avif) |
+| 2 | 10 | YUV422 | YES | | YES | [here](fox.profile2.10bpc.yuv422.monochrome.odd-height.avif) |
+| 2 | 10 | YUV422 | YES | YES | YES | [here](fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif) |
+| 2 | 12 | YUV422 | | | | [here](fox.profile2.12bpc.yuv422.avif) |
+| 2 | 12 | YUV422 | | YES | | [here](fox.profile2.12bpc.yuv422.odd-width.avif) |
+| 2 | 12 | YUV422 | | | YES | [here](fox.profile2.12bpc.yuv422.odd-height.avif) |
+| 2 | 12 | YUV422 | | YES | YES | [here](fox.profile2.12bpc.yuv422.odd-width.odd-height.avif) |
+| 2 | 12 | YUV422 | YES | | | [here](fox.profile2.12bpc.yuv422.monochrome.avif) |
+| 2 | 12 | YUV422 | YES | YES | | [here](fox.profile2.12bpc.yuv422.monochrome.odd-width.avif) |
+| 2 | 12 | YUV422 | YES | | YES | [here](fox.profile2.12bpc.yuv422.monochrome.odd-height.avif) |
+| 2 | 12 | YUV422 | YES | YES | YES | [here](fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif) |
+| 1 | 8 | YUV444 | | | | [here](fox.profile1.8bpc.yuv444.avif) |
+| 1 | 8 | YUV444 | | YES | | [here](fox.profile1.8bpc.yuv444.odd-width.avif) |
+| 1 | 8 | YUV444 | | | YES | [here](fox.profile1.8bpc.yuv444.odd-height.avif) |
+| 1 | 8 | YUV444 | | YES | YES | [here](fox.profile1.8bpc.yuv444.odd-width.odd-height.avif) |
+| 1 | 10 | YUV444 | | | | [here](fox.profile1.10bpc.yuv444.avif) |
+| 1 | 10 | YUV444 | | YES | | [here](fox.profile1.10bpc.yuv444.odd-width.avif) |
+| 1 | 10 | YUV444 | | | YES | [here](fox.profile1.10bpc.yuv444.odd-height.avif) |
+| 1 | 10 | YUV444 | | YES | YES | [here](fox.profile1.10bpc.yuv444.odd-width.odd-height.avif) |
+| 2 | 12 | YUV444 | | | | [here](fox.profile2.12bpc.yuv444.avif) |
+| 2 | 12 | YUV444 | | YES | | [here](fox.profile2.12bpc.yuv444.odd-width.avif) |
+| 2 | 12 | YUV444 | | | YES | [here](fox.profile2.12bpc.yuv444.odd-height.avif) |
+| 2 | 12 | YUV444 | | YES | YES | [here](fox.profile2.12bpc.yuv444.odd-width.odd-height.avif) |
+| 2 | 12 | YUV444 | YES | | | [here](fox.profile2.12bpc.yuv444.monochrome.avif) |
+| 2 | 12 | YUV444 | YES | YES | | [here](fox.profile2.12bpc.yuv444.monochrome.odd-width.avif) |
+| 2 | 12 | YUV444 | YES | | YES | [here](fox.profile2.12bpc.yuv444.monochrome.odd-height.avif) |
+| 2 | 12 | YUV444 | YES | YES | YES | [here](fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif) |
+
+### URLs
+
+You can obtain this list with `make fox-url`.
+
+```
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.10bpc.yuv420.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile0.8bpc.yuv420.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.10bpc.yuv444.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.10bpc.yuv444.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.10bpc.yuv444.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.10bpc.yuv444.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.8bpc.yuv444.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.8bpc.yuv444.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.8bpc.yuv444.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile1.8bpc.yuv444.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.10bpc.yuv422.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv420.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv422.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.12bpc.yuv444.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.monochrome.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.monochrome.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.odd-height.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.odd-width.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/fox.profile2.8bpc.yuv422.odd-width.odd-height.avif
+```
+## Plum blossom - test images for alpha planes
+
+### Original (SVG)
+
+[![plum-blossom.svg](./plum-blossom.svg)](plum-blossom.svg)
+
+ - License: [CC-BY](https://creativecommons.org/licenses/by/4.0/deed.en)
+ - Author: Ryo Hirafuji ([@ledyba-z](https://github.com/ledyba-z))
+
+#### Large Version (PNG)
+
+ - [plum-blossom-large.png](plum-blossom-large.png)
+ - size: 2048x2048
+
+#### Small Version (PNG)
+
+ - [plum-blossom-small.png](plum-blossom-small.png)
+ - size: 128x128
+
+### AVIF version (Large Version)
+
+#### Limited-ranged alpha
+
+| profile | bit depth | pix fmt | Monochrome | alpha | file |
+|---------|-----------|---------|------------|-------- |--------------------------------------------------------------------------------|
+| 0 | 8 | YUV420 | | limited | [here](plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif) |
+| 0 | 8 | YUV420 | YES | limited | [here](plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif) |
+| 0 | 10 | YUV420 | | limited | [here](plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif) |
+| 0 | 10 | YUV420 | YES | limited | [here](plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif) |
+| 2 | 12 | YUV420 | | limited | [here](plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif) |
+| 2 | 12 | YUV420 | YES | limited | [here](plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif) |
+| 2 | 8 | YUV422 | | limited | [here](plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif) |
+| 2 | 8 | YUV422 | YES | limited | [here](plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif) |
+| 2 | 10 | YUV422 | | limited | [here](plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif) |
+| 2 | 10 | YUV422 | YES | limited | [here](plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif) |
+| 2 | 12 | YUV422 | | limited | [here](plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif) |
+| 2 | 12 | YUV422 | YES | limited | [here](plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif) |
+| 1 | 8 | YUV444 | | limited | [here](plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif) |
+| 1 | 10 | YUV444 | | limited | [here](plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif) |
+| 2 | 12 | YUV444 | | limited | [here](plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif) |
+| 2 | 12 | YUV444 | YES | limited | [here](plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif) |
+
+#### Full-ranged alpha
+
+| profile | bit depth | pix fmt | Monochrome | alpha | file |
+|---------|-----------|---------|------------|-------- |--------------------------------------------------------------------------------|
+| 0 | 8 | YUV420 | | full | [here](plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif) |
+| 0 | 8 | YUV420 | YES | full | [here](plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif) |
+| 0 | 10 | YUV420 | | full | [here](plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif) |
+| 0 | 10 | YUV420 | YES | full | [here](plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif) |
+| 2 | 12 | YUV420 | | full | [here](plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif) |
+| 2 | 12 | YUV420 | YES | full | [here](plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif) |
+| 2 | 8 | YUV422 | | full | [here](plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif) |
+| 2 | 8 | YUV422 | YES | full | [here](plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif) |
+| 2 | 10 | YUV422 | | full | [here](plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif) |
+| 2 | 10 | YUV422 | YES | full | [here](plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif) |
+| 2 | 12 | YUV422 | | full | [here](plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif) |
+| 2 | 12 | YUV422 | YES | full | [here](plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif) |
+| 1 | 8 | YUV444 | | full | [here](plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif) |
+| 1 | 10 | YUV444 | | full | [here](plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif) |
+| 2 | 12 | YUV444 | | full | [here](plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif) |
+| 2 | 12 | YUV444 | YES | full | [here](plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif) |
+
+### AVIF version (Small Version)
+
+#### Limited-ranged alpha
+
+| profile | bit depth | pix fmt | Monochrome | alpha | file |
+|---------|-----------|---------|------------|-------- |--------------------------------------------------------------------------------|
+| 0 | 8 | YUV420 | | limited | [here](plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif) |
+| 0 | 8 | YUV420 | YES | limited | [here](plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif) |
+| 0 | 10 | YUV420 | | limited | [here](plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif) |
+| 0 | 10 | YUV420 | YES | limited | [here](plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif) |
+| 2 | 12 | YUV420 | | limited | [here](plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif) |
+| 2 | 12 | YUV420 | YES | limited | [here](plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif) |
+| 2 | 8 | YUV422 | | limited | [here](plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif) |
+| 2 | 8 | YUV422 | YES | limited | [here](plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif) |
+| 2 | 10 | YUV422 | | limited | [here](plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif) |
+| 2 | 10 | YUV422 | YES | limited | [here](plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif) |
+| 2 | 12 | YUV422 | | limited | [here](plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif) |
+| 2 | 12 | YUV422 | YES | limited | [here](plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif) |
+| 1 | 8 | YUV444 | | limited | [here](plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif) |
+| 1 | 10 | YUV444 | | limited | [here](plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif) |
+| 2 | 12 | YUV444 | | limited | [here](plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif) |
+| 2 | 12 | YUV444 | YES | limited | [here](plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif) |
+
+#### Full-ranged alpha
+
+| profile | bit depth | pix fmt | Monochrome | alpha | file |
+|---------|-----------|---------|------------|-------- |--------------------------------------------------------------------------------|
+| 0 | 8 | YUV420 | | full | [here](plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif) |
+| 0 | 8 | YUV420 | YES | full | [here](plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif) |
+| 0 | 10 | YUV420 | | full | [here](plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif) |
+| 0 | 10 | YUV420 | YES | full | [here](plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif) |
+| 2 | 12 | YUV420 | | full | [here](plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif) |
+| 2 | 12 | YUV420 | YES | full | [here](plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif) |
+| 2 | 8 | YUV422 | | full | [here](plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif) |
+| 2 | 8 | YUV422 | YES | full | [here](plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif) |
+| 2 | 10 | YUV422 | | full | [here](plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif) |
+| 2 | 10 | YUV422 | YES | full | [here](plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif) |
+| 2 | 12 | YUV422 | | full | [here](plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif) |
+| 2 | 12 | YUV422 | YES | full | [here](plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif) |
+| 1 | 8 | YUV444 | | full | [here](plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif) |
+| 1 | 10 | YUV444 | | full | [here](plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif) |
+| 2 | 12 | YUV444 | | full | [here](plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif) |
+| 2 | 12 | YUV444 | YES | full | [here](plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif) |
+
+### URLs
+
+You can obtain this list with `make plum-url`.
+
+```
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif
+https://raw.githubusercontent.com/link-u/avif-sample-images/master/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
+```
+
+## Red at 12 o'clock with color profile - ICC Profile tests
+
+![red-at-12-oclock-with-color-profile.jpg](red-at-12-oclock-with-color-profile)
+
+ - License: GNU LGPL v2.1 or 2 claused BSD License
+ - Author: Tony Payne <tpayne@chromium.org>
+ - [commit](https://chromium.googlesource.com/chromium/src/+/e89ab1941644ff34b262cac05f23e82b7e249377)
+
+### AVIF version
+
+ - [red-at-12-oclock-with-color-profile-lossy.avif](red-at-12-oclock-with-color-profile-lossy.avif)
+ - [red-at-12-oclock-with-color-profile-8bpc.avif](red-at-12-oclock-with-color-profile-8bpc.avif)
+ - [red-at-12-oclock-with-color-profile-10bpc.avif](red-at-12-oclock-with-color-profile-10bpc.avif)
+ - [red-at-12-oclock-with-color-profile-12bpc.avif](red-at-12-oclock-with-color-profile-12bpc.avif)
+
+## Twinkle Star - Image Sequence Test
+
+[![star.gif](star.gif)](star.gif)
+
+ - [AV1 mp4 version](star.mp4)
+
+### Original (SVG)
+
+[![star.svg](./star.svg)](star.svg)
+
+ - License: [CC-BY](https://creativecommons.org/licenses/by/4.0/deed.en)
+ - Author: Ryo Hirafuji ([@ledyba-z](https://github.com/ledyba-z))
+ - Special Thanks: [Shigatake's Pixel Art Lesson](http://shigatake.sakura.ne.jp/gallery/dot/dot_1.html)
+
+### AVIFS version
+
+#### Normal
+
+- [star-8bpc.avifs](star-8bpc.avifs)
+ - YUV420
+ - full-ranged color
+- [star-10bpc.avifs](star-10bpc.avifs)
+ - YUV422
+ - full-ranged color
+- [star-12bpc.avifs](star-12bpc.avifs)
+ - YUV444
+ - full-ranged color
+
+- [star-8bpc-with-alpha.avifs](star-8bpc-with-alpha.avifs)
+ - YUV420
+ - 8bit
+ - limited-ranged color
+ - limited-ranged alpha
+- [star-8bpc-with-alpha.avifs](star-10bpc-with-alpha.avifs)
+ - YUV422
+ - 10bit
+ - limited-ranged color
+ - limited-ranged alpha
+- [star-8bpc-with-alpha.avifs](star-12bpc-with-alpha.avifs)
+ - YUV444
+ - 12bit
+ - limited-ranged color
+ - limited-ranged alpha
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.jpg b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.jpg
new file mode 100644
index 0000000000..748f2786b5
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.jpg
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-height.png b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-height.png
new file mode 100644
index 0000000000..831ab7529a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-height.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.odd-height.png b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.odd-height.png
new file mode 100644
index 0000000000..c858205691
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.odd-height.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.png b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.png
new file mode 100644
index 0000000000..f5fe9fce9b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.odd-width.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.png b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.png
new file mode 100644
index 0000000000..a1e59a2a11
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.avif
new file mode 100644
index 0000000000..a1c0abd7aa
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.avif
new file mode 100644
index 0000000000..d5febaa151
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-height.avif
new file mode 100644
index 0000000000..1ab92318e3
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.avif
new file mode 100644
index 0000000000..5f3828cb52
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..cc48e0bed3
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-height.avif
new file mode 100644
index 0000000000..3ab37403e9
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.avif
new file mode 100644
index 0000000000..d1b2555542
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.odd-height.avif
new file mode 100644
index 0000000000..94cca20074
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.10bpc.yuv420.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.avif
new file mode 100644
index 0000000000..2bae4c7131
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.avif
new file mode 100644
index 0000000000..a9b7fe9d1a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-height.avif
new file mode 100644
index 0000000000..b69c3231e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.avif
new file mode 100644
index 0000000000..3a8c04b844
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..5bfc8e7ce8
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-height.avif
new file mode 100644
index 0000000000..fc2d1f5749
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.avif
new file mode 100644
index 0000000000..927d7f677b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.odd-height.avif
new file mode 100644
index 0000000000..5edb77e51d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile0.8bpc.yuv420.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.avif
new file mode 100644
index 0000000000..755463c6d4
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-height.avif
new file mode 100644
index 0000000000..888d2ce227
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.avif
new file mode 100644
index 0000000000..27c3aa3397
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.odd-height.avif
new file mode 100644
index 0000000000..a2826556e8
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.10bpc.yuv444.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.avif
new file mode 100644
index 0000000000..b6cec528e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-height.avif
new file mode 100644
index 0000000000..22e25a25bd
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.avif
new file mode 100644
index 0000000000..bb6c184be2
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.odd-height.avif
new file mode 100644
index 0000000000..353fed4712
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile1.8bpc.yuv444.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.avif
new file mode 100644
index 0000000000..04d460ca7f
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..85e565af18
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-height.avif
new file mode 100644
index 0000000000..639be9af0a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.avif
new file mode 100644
index 0000000000..6536a7c4e7
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..b4439bbbc1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-height.avif
new file mode 100644
index 0000000000..476162e8f9
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.avif
new file mode 100644
index 0000000000..1818973475
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.odd-height.avif
new file mode 100644
index 0000000000..92c9cc93fe
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.10bpc.yuv422.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.avif
new file mode 100644
index 0000000000..c1d4f7171e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.avif
new file mode 100644
index 0000000000..2c8975019b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-height.avif
new file mode 100644
index 0000000000..fbca49f58b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.avif
new file mode 100644
index 0000000000..7d9407e397
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..bc6497683a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-height.avif
new file mode 100644
index 0000000000..476346ba3e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.avif
new file mode 100644
index 0000000000..2ebd4e881b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.odd-height.avif
new file mode 100644
index 0000000000..72606405e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv420.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.avif
new file mode 100644
index 0000000000..de1d6d6c21
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..2c8975019b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-height.avif
new file mode 100644
index 0000000000..fbca49f58b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.avif
new file mode 100644
index 0000000000..7d9407e397
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..bc6497683a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-height.avif
new file mode 100644
index 0000000000..99536832cc
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.avif
new file mode 100644
index 0000000000..cda3cc7f63
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.odd-height.avif
new file mode 100644
index 0000000000..36a585969b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv422.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.avif
new file mode 100644
index 0000000000..134a3b8ae5
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.avif
new file mode 100644
index 0000000000..2c8975019b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-height.avif
new file mode 100644
index 0000000000..fbca49f58b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.avif
new file mode 100644
index 0000000000..7d9407e397
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..bc6497683a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-height.avif
new file mode 100644
index 0000000000..8289a38e4a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.avif
new file mode 100644
index 0000000000..31fd3f8d5e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.odd-height.avif
new file mode 100644
index 0000000000..bfc513dcfb
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.12bpc.yuv444.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.avif
new file mode 100644
index 0000000000..f5ea954d84
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..43d9292b05
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-height.avif
new file mode 100644
index 0000000000..c1e5e41ada
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.avif
new file mode 100644
index 0000000000..669a400204
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif
new file mode 100644
index 0000000000..e4953714da
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-height.avif
new file mode 100644
index 0000000000..26a0b2a43c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.avif
new file mode 100644
index 0000000000..27d6d6ef03
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.odd-height.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.odd-height.avif
new file mode 100644
index 0000000000..7668b3515e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/fox.profile2.8bpc.yuv422.odd-width.odd-height.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.16bpc.png b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.16bpc.png
new file mode 100644
index 0000000000..2ce57305bd
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.16bpc.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.jpg b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.jpg
new file mode 100644
index 0000000000..f760cb9a8e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.jpg
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.png b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.png
new file mode 100644
index 0000000000..3667c72467
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.avif
new file mode 100644
index 0000000000..70186fa2c6
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.monochrome.avif
new file mode 100644
index 0000000000..afda40dada
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.10bpc.yuv420.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.avif
new file mode 100644
index 0000000000..d37c2734be
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.monochrome.avif
new file mode 100644
index 0000000000..fb08dd4f92
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile0.8bpc.yuv420.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.avif
new file mode 100644
index 0000000000..da8fe75a1c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..7f90e43eba
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.10bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.avif
new file mode 100644
index 0000000000..7d703d474c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..16c0558666
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.12bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.avif
new file mode 100644
index 0000000000..cd58a6f8a3
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.monochrome.avif
new file mode 100644
index 0000000000..b6b033a617
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/hato.profile2.8bpc.yuv422.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/images.html b/third_party/rust/mp4parse/link-u-avif-sample-images/images.html
new file mode 100644
index 0000000000..e5a69ae6db
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/images.html
@@ -0,0 +1,745 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>All images</title>
+ </head>
+ <body>
+<h1>AVIF images</h1>
+ <h2>hato.profile2.8bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.8bpc.yuv422.avif" width="400">
+ <h2>hato.profile2.8bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.8bpc.yuv422.monochrome.avif" width="400">
+ <h2>hato.profile2.10bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.10bpc.yuv422.avif" width="400">
+ <h2>hato.profile2.10bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.10bpc.yuv422.monochrome.avif" width="400">
+ <h2>hato.profile2.12bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.12bpc.yuv422.avif" width="400">
+ <h2>hato.profile2.12bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile2.12bpc.yuv422.monochrome.avif" width="400">
+ <h2>hato.profile0.8bpc.yuv420.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile0.8bpc.yuv420.avif" width="400">
+ <h2>hato.profile0.8bpc.yuv420.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile0.8bpc.yuv420.monochrome.avif" width="400">
+ <h2>hato.profile0.10bpc.yuv420.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile0.10bpc.yuv420.avif" width="400">
+ <h2>hato.profile0.10bpc.yuv420.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./hato.16bpc.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./hato.profile0.10bpc.yuv420.monochrome.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.odd-width.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.odd-height.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.monochrome.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.8bpc.yuv420.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.odd-width.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.odd-height.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.monochrome.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile0.10bpc.yuv420.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.monochrome.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv420.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.odd-width.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.odd-height.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.monochrome.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.8bpc.yuv422.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.odd-width.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.odd-height.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.monochrome.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.10bpc.yuv422.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.monochrome.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv422.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile1.8bpc.yuv444.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.8bpc.yuv444.avif" width="400">
+ <h2>fox.profile1.8bpc.yuv444.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.8bpc.yuv444.odd-width.avif" width="400">
+ <h2>fox.profile1.8bpc.yuv444.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.8bpc.yuv444.odd-height.avif" width="400">
+ <h2>fox.profile1.8bpc.yuv444.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.8bpc.yuv444.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile1.10bpc.yuv444.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.10bpc.yuv444.avif" width="400">
+ <h2>fox.profile1.10bpc.yuv444.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.10bpc.yuv444.odd-width.avif" width="400">
+ <h2>fox.profile1.10bpc.yuv444.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.10bpc.yuv444.odd-height.avif" width="400">
+ <h2>fox.profile1.10bpc.yuv444.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile1.10bpc.yuv444.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.odd-width.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.monochrome.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.monochrome.odd-width.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.monochrome.odd-width.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.monochrome.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.monochrome.odd-height.avif" width="400">
+ <h2>fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./fox.odd-width.odd-height.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./fox.profile2.12bpc.yuv444.monochrome.odd-width.odd-height.avif" width="400">
+ <h2>plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-large.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif" width="400">
+ <h2>plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif<h2>
+ <h3>PNG version<h3>
+ <img src="./plum-blossom-small.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif" width="400">
+<h2>kimono.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.avif" width="400">
+<h2>kimono.rotate90.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.rotate90.avif" width="400">
+<h2>kimono.rotate270.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.rotate270.avif" width="400">
+<h2>kimono.mirror-horizontal.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.mirror-horizontal.avif" width="400">
+<h2>kimono.mirror-vertical.rotate270.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.mirror-vertical.rotate270.avif" width="400">
+<h2>kimono.crop.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.crop.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.crop.avif" width="400">
+<h2>kimono.mirror-vertical.rotate270.crop.avif</h2>
+ <h3>PNG version<h3>
+ <img src="./kimono.crop.png" width="400">
+ <h3>AVIF version<h3>
+ <img src="./kimono.mirror-vertical.rotate270.crop.avif" width="400">
+<h1>AVIFS images</h1>
+<h2>star.avifs<h2>
+ <h3>GIF version</h3>
+ <img src="./star.gif" width="400">
+ <h3>AVIFS version (without alpha)</h3>
+ <img src="./star.avifs" width="400">
+<h2>star-with-alpha.avifs<h2>
+ <h3>GIF version</h3>
+ <img src="./star.gif" width="400">
+ <h3>AVIFS version (with alpha)</h3>
+ <img src="./star-with-alpha.avifs" width="400">
+ </body>
+</html>
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.avif
new file mode 100644
index 0000000000..e91fe56e72
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.avif
new file mode 100644
index 0000000000..777813e690
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.png
new file mode 100644
index 0000000000..ea47f4c9a2
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.crop.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.jpg b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.jpg
new file mode 100644
index 0000000000..6c4894a43d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.jpg
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.avif
new file mode 100644
index 0000000000..3447d4ad89
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.png
new file mode 100644
index 0000000000..de61ec89f0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-horizontal.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.avif
new file mode 100644
index 0000000000..41d2bd2091
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.png
new file mode 100644
index 0000000000..2eeb69d89b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.avif
new file mode 100644
index 0000000000..164c66bc7d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.crop.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.crop.avif
new file mode 100644
index 0000000000..47ab00b1e4
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.crop.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.png
new file mode 100644
index 0000000000..bbd9dc766e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.mirror-vertical.rotate270.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.png
new file mode 100644
index 0000000000..2bddce177a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.avif
new file mode 100644
index 0000000000..aed93e55a0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.png
new file mode 100644
index 0000000000..e9916b527c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate270.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.avif
new file mode 100644
index 0000000000..ee7c5246e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.png b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.png
new file mode 100644
index 0000000000..02ede290b4
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/kimono.rotate90.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.png b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.png
new file mode 100644
index 0000000000..22f0c8627a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..9bc5e76309
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..77ffb204a1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..3befc33670
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..dc9f644b4d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..6ef118d519
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..e71f4e5452
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..73c6a32236
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..8e9d45d0bf
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..029512f75f
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..fc9ef8bf19
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.10bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..bcca0a5584
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..2ac003523a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile1.8bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..cb5256097b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..9e91137240
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..2906c39fea
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..1d07bfb056
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..51fce45c0d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..ec30fcc3e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..370c33dd37
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..515f247f61
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..9a99028b8e
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..ec30fcc3e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..43ede8cbc8
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..515f247f61
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..bfed8fb528
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..ec30fcc3e1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..28caa27a37
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..515f247f61
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..4952b91fa1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..509ff84b8a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..d0a177adf3
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..f14276c5fd
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-large.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.png b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.png
new file mode 100644
index 0000000000..901b3edd4a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..77a9c12d64
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..9c3a0d84cc
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..09e25a8f4f
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..ebfc2d1c84
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.10bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..0669fcebe1
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..b1aadc8a61
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..4418b2c814
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..b4bd661c4a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile0.8bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..30a3542c7a
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..0561b592cb
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.10bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..db4f7a5c50
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..ad07e3453c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile1.8bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..ca18319163
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..47e732a2ef
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..ecb78e9e22
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..c32f19489d
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.10bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif
new file mode 100644
index 0000000000..7959d15b92
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..1ef86bcae0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif
new file mode 100644
index 0000000000..9d8b7116f2
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..a240078446
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv420.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..faf043db63
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..1ef86bcae0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..7f840da29c
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..a240078446
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif
new file mode 100644
index 0000000000..db34cd3f74
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..1ef86bcae0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif
new file mode 100644
index 0000000000..f1879a5550
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..a240078446
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.12bpc.yuv444.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif
new file mode 100644
index 0000000000..ebb5e34c43
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif
new file mode 100644
index 0000000000..3e6021b716
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-full.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif
new file mode 100644
index 0000000000..e7eb2a33d3
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
new file mode 100644
index 0000000000..50522d68af
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom-small.profile2.8bpc.yuv422.alpha-limited.monochrome.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom.svg b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom.svg
new file mode 100644
index 0000000000..e6b9b07f2f
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/plum-blossom.svg
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="1000mm"
+ height="1000mm"
+ viewBox="0 0 1000 1000"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+ sodipodi:docname="plum-blossom.svg"
+ inkscape:export-filename="/home/psi/src/github.com/link-u/avif-sample-images/plum-blossom-small.png"
+ inkscape:export-xdpi="13.0048"
+ inkscape:export-ydpi="13.0048">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="1367.1429"
+ inkscape:cy="2035.7143"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="2560"
+ inkscape:window-height="1403"
+ inkscape:window-x="2560"
+ inkscape:window-y="0"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(0,703)">
+ <circle
+ id="path10"
+ cx="500"
+ cy="-453"
+ style="fill:#ffd5d5;stroke-width:0.24955437"
+ r="200" />
+ <circle
+ id="path10-9"
+ cx="262.2359"
+ cy="-280.25427"
+ style="fill:#ffd5d5;stroke-width:0.24955437"
+ r="200" />
+ <circle
+ id="path10-9-1"
+ cx="737.76416"
+ cy="-280.25427"
+ style="fill:#ffd5d5;stroke-width:0.24955437"
+ r="200" />
+ <circle
+ id="path10-9-2"
+ cx="353.05371"
+ cy="-0.74575806"
+ style="fill:#ffd5d5;stroke-width:0.24955437"
+ r="200" />
+ <circle
+ id="path10-9-2-7"
+ cx="646.94629"
+ cy="-0.74575806"
+ style="fill:#ffd5d5;stroke-width:0.24955437"
+ r="200" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.23664318"
+ id="rect215"
+ width="20"
+ height="160"
+ x="493.0238"
+ y="-430.27975" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.26458332"
+ id="rect217"
+ width="2.2678571"
+ height="10.583333"
+ x="495.46429"
+ y="-374.6012" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.22826084"
+ id="path221"
+ cx="503.0238"
+ cy="-437.10715"
+ r="30" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.23664318"
+ id="rect215-0"
+ width="20"
+ height="160"
+ x="336.11542"
+ y="186.29741"
+ transform="rotate(-72.000001)" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.22826084"
+ id="path221-9"
+ cx="346.11542"
+ cy="179.47002"
+ r="30.000002"
+ transform="rotate(-72.000001)" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.23664318"
+ id="rect215-0-3"
+ width="20"
+ height="160"
+ x="-49.702778"
+ y="-764.44379"
+ transform="rotate(72)" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.22826084"
+ id="path221-9-6"
+ cx="-39.702778"
+ cy="-771.27118"
+ r="30.000002"
+ transform="rotate(72)" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.23664318"
+ id="rect215-0-3-0"
+ width="20"
+ height="160"
+ x="-539.49518"
+ y="-358.71228"
+ transform="rotate(144)" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.22826084"
+ id="path221-9-6-6"
+ cx="-529.49518"
+ cy="-365.53967"
+ r="30.000002"
+ transform="rotate(144)" />
+ <rect
+ style="fill:#ffffff;stroke-width:0.23664318"
+ id="rect215-0-3-0-2"
+ width="20"
+ height="160"
+ x="-292.17621"
+ y="228.38646"
+ transform="rotate(-144)" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.22826084"
+ id="path221-9-6-6-6"
+ cx="-282.17621"
+ cy="221.55907"
+ r="30.000002"
+ transform="rotate(-144)" />
+ <circle
+ style="fill:#ffeeaa;stroke-width:0.31818181"
+ id="path4004"
+ cx="500"
+ cy="-203"
+ r="70" />
+ </g>
+</svg>
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-10bpc.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-10bpc.avif
new file mode 100644
index 0000000000..8c964b1448
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-10bpc.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-12bpc.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-12bpc.avif
new file mode 100644
index 0000000000..27fd2932e9
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-12bpc.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-8bpc.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-8bpc.avif
new file mode 100644
index 0000000000..913e6b6eb5
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-8bpc.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-lossy.avif b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-lossy.avif
new file mode 100644
index 0000000000..4f2d48cba0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile-lossy.avif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.jpg b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.jpg
new file mode 100644
index 0000000000..20fee46c00
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.jpg
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.png b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.png
new file mode 100644
index 0000000000..5320cc8dfb
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/red-at-12-oclock-with-color-profile.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/scripts/compare.sh b/third_party/rust/mp4parse/link-u-avif-sample-images/scripts/compare.sh
new file mode 100644
index 0000000000..513d19fd2b
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/scripts/compare.sh
@@ -0,0 +1,23 @@
+##!/usr/bin/env bash
+
+avif=$2
+decoded=$3
+
+orig=$(cat Makefile | grep "^${avif}" | sed "s/^${avif}: \(.*\)$/\1/")
+
+if (echo ${avif} | grep "monochrome"); then
+ # FIMXE(ledyba-z): compare monochrome images.
+ score="100.0"
+elif (echo ${avif} | grep "\(rotate\|mirror\|crop\)"); then
+ # FIMXE(ledyba-z): compare transformed images
+ score="100.0"
+else
+ score=$(compare -metric PSNR ${orig} ${decoded} NULL: 2>&1 || true)
+fi
+if test $(echo "${score} >= 35.0" | bc -l) -eq 1; then
+ echo "Passing: ${decoded}: ${score}"
+ exit 0
+else
+ echo "Failed: ${decoded}: ${score} (vs ${orig})"
+ exit -1
+fi
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc-with-alpha.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc-with-alpha.avifs
new file mode 100644
index 0000000000..05c5a45c49
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc-with-alpha.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc.avifs
new file mode 100644
index 0000000000..2ddcf5047f
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-10bpc.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc-with-alpha.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc-with-alpha.avifs
new file mode 100644
index 0000000000..c6fe1a53cd
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc-with-alpha.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc.avifs
new file mode 100644
index 0000000000..86dfc2ee80
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-12bpc.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc-with-alpha.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc-with-alpha.avifs
new file mode 100644
index 0000000000..bb9dfa5c33
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc-with-alpha.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc.avifs b/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc.avifs
new file mode 100644
index 0000000000..6c0b0e3dc0
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star-8bpc.avifs
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star.gif b/third_party/rust/mp4parse/link-u-avif-sample-images/star.gif
new file mode 100644
index 0000000000..52076cafdd
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star.gif
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star.input.txt b/third_party/rust/mp4parse/link-u-avif-sample-images/star.input.txt
new file mode 100644
index 0000000000..ce797225f6
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star.input.txt
@@ -0,0 +1,9 @@
+file 'star.png'
+duration 0.1
+file 'star90.png'
+duration 0.1
+file 'star180.png'
+duration 0.1
+file 'star270.png'
+duration 0.1
+file 'star.png'
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star.png b/third_party/rust/mp4parse/link-u-avif-sample-images/star.png
new file mode 100644
index 0000000000..468dcde005
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star.svg b/third_party/rust/mp4parse/link-u-avif-sample-images/star.svg
new file mode 100644
index 0000000000..8bca22a420
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star.svg
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="310.57089mm"
+ height="310.57089mm"
+ viewBox="0 0 310.57089 310.57089"
+ version="1.1"
+ id="svg8"
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
+ sodipodi:docname="star.svg"
+ inkscape:export-filename="/home/psi/g/lu/avif-sample-images/star.png"
+ inkscape:export-xdpi="13.0048"
+ inkscape:export-ydpi="13.0048">
+ <defs
+ id="defs2" />
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="-377.14283"
+ inkscape:cy="435.7143"
+ inkscape:document-units="mm"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ inkscape:window-width="2560"
+ inkscape:window-height="1369"
+ inkscape:window-x="2560"
+ inkscape:window-y="1474"
+ inkscape:window-maximized="1"
+ inkscape:snap-others="true" />
+ <metadata
+ id="metadata5">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="レイヤー 1"
+ inkscape:groupmode="layer"
+ id="layer1"
+ transform="translate(7.4768269e-6,13.570917)">
+ <path
+ sodipodi:type="star"
+ style="fill:#ffeeaa;stroke-width:0.26458332"
+ id="path10"
+ sodipodi:sides="5"
+ sodipodi:cx="155.28574"
+ sodipodi:cy="141.64303"
+ sodipodi:r1="154.21428"
+ sodipodi:r2="77.10714"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:arg2="-0.9424778"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.05"
+ inkscape:randomized="0"
+ d="m 155.28574,-12.571243 c 5.12042,0 41.17993,88.823585 45.32244,91.833292 4.1425,3.009707 99.76176,9.85635 101.34405,14.726158 1.5823,4.869808 -71.75095,66.612433 -73.33325,71.482243 -1.58229,4.86981 21.45414,97.92485 17.31163,100.93456 -4.1425,3.00971 -85.52445,-47.65483 -90.64487,-47.65483 -5.12042,0 -86.50238,50.66453 -90.644886,47.65483 C 60.498348,263.3953 83.534785,170.34026 81.952489,165.47045 80.370192,160.60064 7.0369457,98.858007 8.6192422,93.988199 10.201539,89.118391 105.82079,82.271756 109.9633,79.26205 c 4.1425,-3.009707 40.20202,-91.833293 45.32244,-91.833293 z"
+ inkscape:export-xdpi="13.0048"
+ inkscape:export-ydpi="13.0048"
+ inkscape:transform-center-y="-14.661668" />
+ </g>
+</svg>
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star180.png b/third_party/rust/mp4parse/link-u-avif-sample-images/star180.png
new file mode 100644
index 0000000000..2c5f522211
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star180.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star270.png b/third_party/rust/mp4parse/link-u-avif-sample-images/star270.png
new file mode 100644
index 0000000000..8812b9bdeb
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star270.png
Binary files differ
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/star90.png b/third_party/rust/mp4parse/link-u-avif-sample-images/star90.png
new file mode 100644
index 0000000000..93526260ba
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/star90.png
Binary files differ