Diff
Modified: trunk/LayoutTests/ChangeLog (274727 => 274728)
--- trunk/LayoutTests/ChangeLog 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/LayoutTests/ChangeLog 2021-03-19 18:02:49 UTC (rev 274728)
@@ -1,3 +1,34 @@
+2021-03-19 ChangSeok Oh <[email protected]>
+
+ Animated AVIF support
+ https://bugs.webkit.org/show_bug.cgi?id=222804
+ <rdar://problem/75362181>
+
+ Reviewed by Philippe Normand.
+
+ This change implements animation of the avif sequence. The decoding approach
+ is similar to ones for other image formats, i.e., decoding frames in BGRA pixels
+ then bit-copying them into ScalableImageDecoderFrame. The decoded frames are cached
+ for future use. The repetition is missing in this change. It will be addressed
+ in separate patches.
+
+ The added avif animation test compares the last frame of each avifs and a static
+ avif image. The embeded avifs images are originated from corresponding webp images
+ for animated-webp.html, and encoded with timescale 100 (i.e., the duration of each frame
+ is 0.01s). The total duration and the track duration are same so the added avifs samples
+ are supposed to be played one time.
+
+ * TestExpectations:
+ * fast/images/animated-avif-expected.html: Added.
+ * fast/images/animated-avif.html: Added.
+ * fast/images/resources/avifs00-ref.avif: Added.
+ * fast/images/resources/avifs00.avifs: Added.
+ * fast/images/resources/avifs01-ref.avif: Added.
+ * fast/images/resources/avifs01.avifs: Added.
+ * fast/images/resources/avifs02-ref.avif: Added.
+ * fast/images/resources/avifs02.avifs: Added.
+ * platform/gtk/TestExpectations:
+
2021-03-19 Martin Robinson <[email protected]>
scroll-snap-stop: always not respected during momentum scrolling
Modified: trunk/LayoutTests/TestExpectations (274727 => 274728)
--- trunk/LayoutTests/TestExpectations 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/LayoutTests/TestExpectations 2021-03-19 18:02:49 UTC (rev 274728)
@@ -121,6 +121,7 @@
# These tests don't have to be platform-specific, but they are only implemented on GTK now.
fast/images/avif-image-decoding.html [ Skip ]
fast/images/avif-as-image.html [ Skip ]
+fast/images/animated-avif.html [ Skip ]
# Only applicable on platforms with dark mode support
css-dark-mode [ Skip ]
Added: trunk/LayoutTests/fast/images/animated-avif-expected.html (0 => 274728)
--- trunk/LayoutTests/fast/images/animated-avif-expected.html (rev 0)
+++ trunk/LayoutTests/fast/images/animated-avif-expected.html 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>AVIF animation reftest: when animation ends, compare its last frame against the reference static avif image.</title>
+<style>
+img { margin: 1px; }
+</style>
+</head>
+<body style="margin: 1px">
+<img src="" src="" src=""
+</body>
+</html>
Added: trunk/LayoutTests/fast/images/animated-avif.html (0 => 274728)
--- trunk/LayoutTests/fast/images/animated-avif.html (rev 0)
+++ trunk/LayoutTests/fast/images/animated-avif.html 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>AVIF animation reftest: when animation ends, compare its last frame against the reference static avif image.</title>
+<script>
+ if (window.testRunner)
+ testRunner.dumpAsText(true);
+
+ window._onload_ = function() {
+ if (window.testRunner)
+ testRunner.waitUntilDone();
+
+ window.setTimeout(function() {
+ if (window.testRunner)
+ testRunner.notifyDone();
+ }, 300);
+ }
+</script>
+<style>
+img { margin: 1px; }
+</style>
+</head>
+<body style="margin: 1px">
+<img src="" src="" src=""
+</body>
+</html>
Added: trunk/LayoutTests/fast/images/resources/avifs00-ref.avif (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs00-ref.avif (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs00-ref.avif 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,10 @@
+������ ftypavif��������avifmif1miafMA1B������\xF2meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������iloc��������D��������������������J������(iinf����������������infe������������av01Color��������jiprp������Kipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx������\x80������ipma����������������\x83����Rmdat��
+ ~\xF9\xA2+2\xBA����\xDDh\xF4+\x9B&3|\xDDpy\x97%\xAAJ\x9D\xED\xD8\xC0\xAB<ұ-\xAA/\xFF\xFEq\xF2\x9FATB)\xF2\x9F)\xF1\xD4?\xBE\xF2\x9FBs/\xF5\xBEjȅ\xB6'\xEC\xFE\xFB\xBAq\xE9\xC9?\x95:r\x9E\xD16st\xB2\xEFJR\xD1 \xA7h'*{\xA9\xF8hA\xA0\xD2\xA9\xF1\xE8\xBF\xB5\x8FVr\xC6r\xC1"\x88QlԬS$\x89\xE6\x89\xE6\x9Cd\xCE\xDDS-\xC6xm7q\xCC,\xE4\xB4\xF2q\xAE6xK\xFD\xB4\x965\xFFYYc\xF6:\xA5q=\xBC\x8Fs\x99\xFF]r\xC0W2܇\xE5\xE4\xFF܍ɳ\xC5\xD3\xC5ҵ]<]+P\xA5]+P\xA5
+P\xA5
+P\xA5\xD2!\xB2^\xE5\xFB\x80\x80b%I%\xFD7\xF0\xE7\xE1\xA6ǶǶ\x9D\xB7(\xD4+h\xBC\xEDG\xDB\xB2L\xE9[B\xB7ޠ\xBB\x9E\xEE|\xCE\xD8{\x9Fx\x84\xCEN?XF\x8C\xA6\x8C\xA4H\x87\x99\xEDh\xC5\xE4s\xB3\xB4\x9F_\xD0j=l\xC0.xΜlƶ\xEB\xC6\xCC\xE7\xEBƶ\xEBƶ\xEAn\xC6\x87\xB2\xF1\x8FvA2\x8E\x96\xE4\xA2;\xB5\xF6\xB1N\xC9\xE1p\x9D\xFA\xCA+\x86\xA7^\xB7\x9BhGqOx$\xA8\x8B\xA6ߜ\xC3<\xFEG\xD8}*L#\xCF\xD8}\xC7\xD8}\xC7\xD8}\xDC}\x87两\xBCp\xBC'\xF3\xDD\x95
+R\xB7@\xA5R\xA9\x93}ed\xE6\xE4ol\xE8V\xB5չ\xB2\xEF2}8m8m]\xBE\xD7q\xC2\xF1\xC2\xF3\x94Їg\xA9\xEA/'\xABI\xEF\xE9&\xE0\x9F*\xAC\xAA\x9F(\xE0\x9C\xBA\x8E\x96\xEB\x90\xF1#lk\xFDs\xC5\xC4\xE3!\xAFM5+.b)\x86D\xF5J\xCFP\xD2\xE6D\xCFJ\xCFJ`R?\xAE\x88\xB1a7L9xo\x9D\xF3\xA6\xB4ɞy &\xCFD15\xC6\x{1E70BFF}\xB8@8@9\x98\xD3\xFD\x82}\xA3*\xC2j#\xDA*\xC2\xD6*\xC2\xD6*\xC2l-b\xAC2\x9C\xA2\xB0\xBA6\xF6\x8DӴM\xC97Sr\x8F)\xD1|'U\x8D \x88 \xFB \x8Fۀ*g\xEA\g-բ\xBF\x85Jr@\x88\xC0\x88\xC2F}\xCEd
+AAI\xA02Cq\x898\x8Ex\xA7\x8Ax\xF8\x93\x898\x93\x88\xE7\x8Ax\x87\x898\x8Ey\xA4\xF6$g\xAA]\xAAz\x9D\xFAg\xA9ߧv\xAF\xE1\xD45\xB27>\x84\xE3s\xE8M.\x84г\xE5\x87{\xF7\xCE>\x8F\x94JlF\xA1\xD3ݯ\xCA7=ܡ\xCA{%\xC3u\xB6\xF1e\xA2x\xE7^\xEAQ\xDB|\xE7r?b\x81TD\xA0\xE3\xC9M7\xCDZOi\xCB+\xF9dFi\xAB>\x84\x88\x87\xE5\xE0\xF8\x81~]\xE3\xE0\xF8~]\xE3\xDE=\xE3\xDE=\xE3\xE2\xC2"p\xEC\xD8P7P8^p\x89\xE8w\x84\x8C\x8CFp@\x8Ch
\ No newline at end of file
Added: trunk/LayoutTests/fast/images/resources/avifs00.avifs (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs00.avifs (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs00.avifs 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,27 @@
+������(ftypavis��������avifavismsf1mif1miafMA1B������\xF2meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������iloc��������D����������������\xD3������!������(iinf����������������infe������������av01Color��������jiprp������Kipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx��������������ipma����������������\x83����\xB1moov������xmvhd��������������\xDCt7\xA1��������\xDCt7\xA1������d��������������
+����������������������������������������������������������������������������������������������@����������������������������������������������������������1trak������htkhd������������\xDCt7\xA1��������\xDCt7\xA1����������������������������
+��������������������������������������������������������������������������������������������������@��?������?��������\xC1mdia������,mdhd��������������\xDCt7\xA1��������\xDCt7\xA1������d��������������
+U\xC4����������(hdlr����������������pict������������������������libavif������eminf������vmhd����������������������������$dinf������dref��������������������url ����������%stbl������stco������������������\xD3������stsc��������������������������
+������������<stsz����������������������
+������!����3��������;����_����Q����������\xF1������\xF5����������stss��������������������������stts��������������������
+������������\x85stsd��������������������uav01������������������������������������������������?��?��H������H��������������
+AOM Coding��������������������������������������������\xFF\xFF������av1C\x81+��������colrnclx������������
+Qmdat��
++������\xAF\xDFs"2����\xB4Q\xB4\xF0\xA1\xF1\x97\xE0$��2\xAE0\x81������\x8D������\xDD+w#\xD4@\xE5\xAE_e\x98\xF1>\x87\xFFq>z}\xA7m\xA81hT\xAA\xBEpw$\xFF\xFF\xF6\xDC\xF5\xA1Yfa;\x88\xA5\x99V\x9D\xAE\x8Bj\xAF\xAF\xAB{\x84\x83\x81XOy0\x80
+\xAD\xBA\xA2\x9B[\xED\xEB\x89&\xCC\xD3j\xECL\xBDE\xE2\xC9'1.\x93\x86烻\x92\xC1ZI_ף\x9F\x80\xB2ɫ\xD4\xCF&\x9F\xED4²"\xA7\xF5\x9D\x8EK7\xEB\xB5F_W\x91\x8F\xD1)\xE5\xC9\xE5\xCA\xE7\xC6\xC8/\xF1R+S\x8A\x8D\x86:\x99\xAC\xDBz\x95\x97\x8C\x84)\xD5v\xD8:}\xDE\xE7D\xC6Gü\x83\x892\xEDO\xED\xD6\xC8\xE15]\xD5]\xD5\xFD/\xF7y\x98\
+\xF1V6%\xB8q\xE2\xF6\x86IR\xFD\xDD\xDA
+\xFE"\xFD9\xB4\\xC1\x977\xAF\xC3\xF0\x91\xC2C\xF0\xFC$\x87\xE7@/F\xCBso|.\xB9\xF7\x8D8^\x88@Hi\xA5\xED\xB7\xADĥ\xFF\xE8T\xC8\xE1:Cz\x9Ab|.\xBE\xED\xE2\xF0\x80��2\x8D0����\x8D������ݐ<\xC2y\x9FJ\xC6,\xE3>s\xFB\xC6\xD86\xB6\xB8=\xE8\xBE.\xE9\xA60\x8770\x8D\xAE:\xF4'\xEE\xBEkОt\xF5\xD7%"L:\xEAn\xDFpY\xBF.R5\xFD5\xFD\xDF\xDFt\xFD\xED\xED_L]n\x90\x88\x88wɏ\x8B\x80\xF7o6\x80\xF7\x82)M\xE2\x99jv\x8F\xB2v\x81\xDA\xDF\xE1��-\xFE\xFD\x8B\xDAh\xA0`\xFF\xD7\xF8\xB7\xFA\x8C?V:o\xB8\xC3QpXC\xD1D\xE2q\xABw\xD8\xB7}\x87\xF8ϵ:\xC8c\xB5\x8B<\xA7\xF0\x8E}\xDE3/\x8E6\xA8},\xA5h})!I\x8C\x9E\x8C\xB1 \xED\xD11\xD11\xE5Y\xE5\xB8��7\xBB\xC0\xECHRh\xFEM>'\xFC^\x97銤\xAA\x8E\xA8\xAA\x8E\xA8\xAA\xA0\xAA\x8E\xA8\xAA\xA4ꊠj*e>0Q\x82\xE3\x82\xE3\x91\xC8)\xEB!\xFB;\xDC\xEFs\xBD\xCE\xF7;\xE2d\x80��2\xB60����\x8D������\xB2%\xF6j7\xAA7\xAAP\x9C\xB1\xC8cU=W\xC8h\xE0 \xB1%\xDB{i\xAD\x94\xEE\x89\xAC ɬ \xB2fB+^~>\xD9x\xCE_D\xAD5\x9
7\xBC\xA1Q\xB8
\xF4G\xAB\xD7\x81w!&*/\x98\x82\x85\xCE)\xDA\xC1U(\xD5\xF0P\xB6S\xD8\xE9u\xFFp\xD8\xD5%%{\xA4rQ��D\xE5\xF6h\xE5]S><b\xC6C\xE5\xF7u\xD53\xE5>S\xE5>S\xE5\xE4\xA84\x8C\xB2]2]5\xC7+V\xC0\xE8\xC2\xE7\xDA?fL\x97\x888\xD5\xBFg\x9Dzwr\xFFVc\xF4'\xA0j,j+\x96#\xBC\x81\xC0\xBA 1*\xD2\xF3\xDB\xF8z\xE6\x98P\xBBi\xBCTљ\x94\x81\xBAD\xE9\xFF\x91\x95\xFAJ"wu\xB2<\xC9\.\xBA˃\x96\xAA\x90\xF1\xFF\xD0\x8A|iާ
+\xFE\xF8\xCC@ԌU\xD4Uԉa\x84f\x968F\xD4F\xD4F\xD0;\xB4H\xD5 \xFCo<\xF3\xB5\xADO\x8FC%\xBD\xF9\x89\x83\xA1\xD5v\xFC4ޞ\xE1\xD2:\xA1A\x81\xC3π��2\xDA0��\x8D������\xD8"\x9E\x8A\\x89A\xFB\xC2g\xDD*=68\xC7L+\xB6\x8Bii\xACw\xB9m\xDF\xCA\xF3\xDE4\xF3s\xBA\xBF! c\xC4{\xC7 <2 XXo\xBB\xEE6N~\x86\xBA'wÕ\xF5Z\xC8V\xA1\x8Ac \xCC\xF9\xE7\x98p\xF7x\xF67cz\x92\x8E\xB7\x97pEE\x9A\x97h\xAFD\xEDh\xAFHq\xF6t\xDE\xEA\xDD&@)k\xB0\xAC\xE9\xAD-'muJ\xE4O\xF5^ns\xB3w$\x97\xA5<\xB0tr`\xBE\x9A\xCD\xE8.\xF6kL\xCA0'\xD2ѬA\xE9\xEDs9��Q\xE9\xEDs\xBC\xE1\xA0vO\xE8\xED\xCF\xEE\xCAN eU\xB07q\xCEe\xF9M\x8A\xDD@\xF3\xE0,0G+l#\xEB\xAC\xCD\xC7F\xCB)\xE18\xB0\xE0p\xC0\xC9\xF9
+x@\xF87=\x99\x99\xFD\xE1\xBE\xD3\xDC?v]\xE7\xA8Z>\xA0U.\x99\xA3\x92\x8E\xDC|cUz+\x93\xE1\xE3\xFA'\xDEm\x81\xDB2,��\x91q\xB6]\xB9,
+\xA7\x9B\x92(\xF4\xE8c\xDA\xEBD'\xECZd\xB8\xBE\x8E=\xAC\xBDvEoTD\xEB\xF5\x85[f9\xAEz\xEA盞ny\xB9\xE7\xF4\xE6>��2\xCC0#��\x8D������ݟ\xD26\x88jw\x90M`f��fA\xF5\xAF\x97#\xDD
+\x95\xE3\xD2r\x9DχbjV\xCAu>=\xB2V\xC9[%l\x95\xB2hS\xF6T\xE4\xC1wAwB[2%\x91\xB2\xB7\xC3W\xC3X&5\xC4\x8A\xEEy\xBF\xB8\xC6[\x92\xD29 \xA8zC\xEF#\x88z\xA0\xA8z\xA0\xA8z\xAA
+\x87\xA4\xB3\xE1\xD4zi\xFAi\xF7\xCCN[\x9F&\x93\xF7$\x90@I$\xB3b\xB6~UO\xECm\xA3)\x81\xFD\x91Lq\xDAK%\x96\xFE\xBA\x86$s\xFBM\xB2\x88\x8C6H\xABq\xB7 0\xB7(\x89\xB7 0\xB7 /\x93\x9F\x906-\xEEdmh_\x8C\x83{L\xF9\x87Kj\xBD\x83=\xA1\xC2h1\xA0ƃ\xB2\xFC\xF1\xBA\xF92~\x81\xE5\x9F\xFE@\x84\xC2\xC2L, \xC4\xC2\xF1.@y\xE4L/\xF0\x83\xA89\xF7Y\xD7q\x84\xFA$\x94\x9C\xE6M6\x82@\x86̛\xE3\xEAU\x9E>\xA5Z2p\xE7a\xD2\xF3\x84\xEB\xFB\x82!\x90\x90A\xE9\x90qsGkW&m\xE7R`\xAF\x87\xAF\x8C.��2\x870 ,��\xA6\x8D������\xC0\xA2+h\xE9\xED >1hวZ\xDDku\xADַZ\xE0E\xB36%\x90\xE6\xE8\xD8WX[\x813H\xAFc*\x83N\x99=\x9F\xD1=PGББ\xCE} |Ǝ\x91\xCCh\xC7\xCCh\xE9\xC9.\xAC\xF2\xE6\xE6w\xD6!u\x88]D\xE9<$\xF6Ǵ\x99\xACF@}ԲR?zJ\xF0\xCDcv\xCA3\xDE\xED\x83l\xF7iBW\xC4V5T\xE9W\x95\xEC%Mh\xD5Q\x8F@0\xF2 \xABfs\xEBҚo_\xA1\xD2lM\xA4}oY{5\xBD\xB1\xC7\xD8\xE1\xAB\xD8ݐ\xEByp\xB8\xF5\xF3=\xA9\x8C\x823\xCB\xE3o\x8D\xBE6\xF8\xD8#"\x8B\xC62\xCCc \x8C\xC62
\xF8
\xDA\xE0\xFE\xA1\xD3\xE4\x81\x8B\xC5X\xCAqu\xC8\xC8[\x89[\xB7w\xF3\xD3b\xAB[:B3\xB3\xD8hf\xFE\x84~~\x92Ei\xF6M~+נ��2\xEC0@5!8\x8D������\xDE\xD6\xE7\xDAQ\xCA_\xDDXp\xB7m_w\xFD\xDF\xF7\xDD\xFFx,\xF4k 6ϼ47op\xCE_\xEE\xA8\xEA\xA7\xFD\xCC\xEA=5\xA54\xE8N$\xEAO\xAAO\x9E\xFF)\xF7S+B\xEAu1\xD5v\xF0\xE3\xC8\xE6\xD8`M\x818)\xCC\xFC\xA9UM:}\xC8V?\xEE\xD6$\xC46\x85ȶ\xFBú?\xC0\xE8\x9B\xFB\xAEy\xD9\xFB\xAE\xFD\xCDU\xB4\xA8\xD98\xD98\xBFF\xD4\xD8X\x9A@Ӿ\x83\xEDy\xF3g*\xB4\xD7D(\xB5W\x96F`\x85\xF0\x83RRD\xC1\xF8��m[<s;4\xF0\xDDA?<b\xD0,\x8E\xA8-\xC0\xB4\xEF^s\x83\xF4\xEE\x8D*\x91缙{ɴ\xAA\xE2\x84t\xC7��
+\x91\xFA\x91\xFBA\x9C\x80��2\xF00 >Aʍ������\xB7\x97\xD1!\xAE\xC07\xAD\xC8Żr\xED\xFC\xE0S_\xCE9\xFC\xE7\xF3\xA8*\xA5\xA7k\xF5\xA8\x98\xCEU\xFC\x97\xCAn\x949]
+\xE4e\xE6]\xA7\x93]J\x9F:$\xA1:$\xA19:$\xA19 J\x9C*\xC35\xA8\x9A\x8C\x93\xD55\xB4$v_\xB7S\xABa\xB5\xDD!\xB3M\xB7\xE6b\xCAn\xC8\xF6\xB2[v\xE9\x8F\x81\xB5o\xE0$y֗:m\xEE:2\x86\xE0\x93\xC1FĄFT\xECQ\xB1"K\xEE\x8C4\xF91L\x80 H~\x93\xAC\xBD\xC0l᳆\xCD\xDC��1\x86\xCE4<\x801\x86\xCD [\xACA\xCEھھ\xE3)#|\xA2\x9A\x9E~}v\xE9#\xBFD\x89\xE7\xCB\xC1ph\xE2\xFCd\xB2\xAA\xC3.H\xFFah\x80V@��2\x810$b\\x8D������\xDF\xC2T\xA0_\xAFr\xC3#\xFCa��Tv\xA8G\xE4ZN:\xBC\xC2\xE3��\x9BZ\xEBZ\xEB\xFD\xCE&\xEE\xCE\xD9\xF1\xD1E\x88\xB9L\x88o\xE4Z\xEEq\xA8@\xBE\xF4#\xA2\xB7\xA2\xB7\xC1\xCDOK\xF6\xA14嫞2\xC6\xDB\xEA\xE1\xEF\x8Cj\xC9\xF6\xC3\xD0\xF2\xF63#k\xD4yny\xF0p\xD0)\xE1~\Q\xF6ӣ\xF15p\x885\xFD\xD93\xF6\xC3\xDB"\x95&\xA2\xB2\x99}\xCAP\xCAj\xEF&˲\xF3\xFAcDp\xD0\xF2\xD2g\xFCG)0&ҮI\xB2\xD2L \xB4\xAB\xFB\xA7F\xBC?i\x8B#\x94&)\xD4M\x93-:\xF19\xEEڞP��2&\xDE\xFFMR>\x88\xFA\xE5\x92>\x80y=\xE1\x90Ox=\xE0\xF7\x83\xDExP\
xBD\xDB;
\xFAފފ\x99\x863+ko\xABo\xAC\x92\xE5\xEEu.\xCAA\x88
\ No newline at end of file
Added: trunk/LayoutTests/fast/images/resources/avifs01-ref.avif (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs01-ref.avif (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs01-ref.avif 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,7 @@
+������ ftypavif��������avifmif1miafMA1B������\xF2meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������iloc��������D��������������������������(iinf����������������infe������������av01Color��������jiprp������Kipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx������\x80������ipma����������������\x83����%mdat��
+ ~\xF9\xA2+2\x8D����\xDD4\x81\xEF\xBE\xCF_&l \xDAV\xB1ai~\xB1_ˈ>\x8B\xE7\x80\xC8X\xA1\xF7\xA17\xBE/6\xCB-\xE9Ҽ_"\x97\xD60M3\x80\xC1S8\xC1\xBA\xF4P\xE1\xD4j^\xF9\xEE \xB8,\xC8\xF3#n \xB8,\xC8\xFC\x84e\xF8u8\x99\x80md#\x9A\xF2k\xCE\xEF{\xBD\x9A\xF2k\xCE\xA8\xA2\xD4\xB7\xE2\x87\xFB\xE7\xC6i\x91\xA7ꪚ\xAA\x9A\xE3ew��R҉B\xDE8\x8C\xA9\x92\xA5\xD4D\x9C\x82N+f\xBDf\xBD\xB3t&NZ00\xF1\xAFEɼ\xCC\xC1\xE7}\xAE\xFF\xAB\xF4\x89\x9B\xE2D"D\xCCbB$A\xFCìbA\xFCì:ì:ìD\xE8\xCFD\xEF\xF7\xF7\xB5O,ޓ\xAE\xC1\xE4GFfe\xB1>\x8B.8%\xFATD\xDE\xCE\xF9"?o3M\xBF\xA5\xFE\x99.~Z?\xA6\x98\xA1.u\xBBf0\xBF9.66\xC9\xF7[\x92[R\xE0\x88\xF8T\xF8VC\x97\xE7UA\xFA\xBFKo\x98\xA3'i"\x8A\xFC?\x88\x99\xA4\x89\x9A"\x92?\xDE!\xA7U{\)\x879\xFC)\x8E\xDDӺp^\xBD-{\xEC]\xF1\xB7\xC7c\xF7Q\x81\xEAD\xDAx\xDBnp{'\xF1\xE4S\x9Bk\xDE\xCCM\xF6\x997\xD8U\xDC\xC3Q\xDEJfKD1R\xC5G\xD1T\xD5\xF8\x86I\x94e\xB2I\x95\x8A\xB6$L\xAE7>\x97\xF
9
fēMQ\xCDʑ\xEEr\xB9\xCB\xA09\xFE\x9Dχ\x9C\x88\xEE\xF8\x81S\xDC\xE5U\x95S\xE5\x97Q\xD2\xDDr%St\xABt\xAA\xBA\xA3\xBE\xF4h\xA0\xF8\xAB\xF0\xE4\xB6\xF9\x8A2v\x92(\xAF\xC3\xF8\x89\x9AH\x99\xA2)Q}{O蝍\xDFh\x9D\xABKl\xE1&\x9AZ\xAE$\xBD\x8A\xBB\xAA\xEF@\xC5;E]\xA0S\xCF\xEC\xC0l\xC0n)̑\xA6ОɁ\xF8/#\xA7\xB7\xA9\xD8\x95\x8B\xA8\x86V.\xABa,\x8CO4OS\xF8\x87\xE1\xC4~%j\xCAG\xBC\xE2\xE7g\x8Bog\xE0 \x97\x8D\x85ޢ\xAC \xA0$\xCC/^\x86\xFC\xF04\xA9!q\x95\xF2W\xC9\xC0⹅å\xB5W\xC2\xF3\xB15\xD5`\xFC\x89G~mx\xA1\x8EY呠p=U7^\xA2!j!\xF2`&\x82\xC2nN\xAA\xF8\x9A\xF8\x99\xB0\x8Bȟ\x94t5Q\xD9D\x81)\xE0o\xA3\xEAn+3\x89\x9FL\xB8\xE6\x91K\xF8isu\xB7\x99N\xEA\x80s\xF0'2Ԍ\x99\xF0\xBB+\xB1\xA1c\xE1\xAEƅ}\xEA>\x85}\xE9\xF7\xA7ޟz}\xEA\xA3|\x91\xBD\xBD
+\x82D\xEFiZiZk\xE2\x99Fj?\xFCR\xBCR\xBD\xA8+\x8E\xD6\xFF\xE0E`Eb̏\xDBU
\ No newline at end of file
Added: trunk/LayoutTests/fast/images/resources/avifs01.avifs (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs01.avifs (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs01.avifs 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,25 @@
+������(ftypavis��������avifavismsf1mif1miafMA1B������\xF2meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������iloc��������D����������������\xD3������!������(iinf����������������infe������������av01Color��������jiprp������Kipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx��������������ipma����������������\x83����\xB1moov������xmvhd��������������\xDCt7\xA7��������\xDCt7\xA7������d��������������
+����������������������������������������������������������������������������������������������@����������������������������������������������������������1trak������htkhd������������\xDCt7\xA7��������\xDCt7\xA7����������������������������
+��������������������������������������������������������������������������������������������������@��?������?��������\xC1mdia������,mdhd��������������\xDCt7\xA7��������\xDCt7\xA7������d��������������
+U\xC4����������(hdlr����������������pict������������������������libavif������eminf������vmhd����������������������������$dinf������dref��������������������url ����������%stbl������stco������������������\xD3������stsc��������������������������
+������������<stsz����������������������
+������!��������1����.��������8��������
+������\xFC����J������stss��������������������������stts��������������������
+������������\x85stsd��������������������uav01������������������������������������������������?��?��H������H��������������
+AOM Coding��������������������������������������������\xFF\xFF������av1C\x81+��������colrnclx������������
+Omdat��
++������\xAF\xDFs"2����\xB4Q\xB4\xF0\xA1\xF1\x97\xE0$��2\x920\x81������\x8D������\xDD+w#\xD4@\xE5\xAE_e\x98\xF1>\x87\xFFq>z}\xA7m\xA81hT\xAA\xBEpw$\xFF\xDD]\xA7\x81\xCE5\x81\x94Q\xFBcH\x96\x98~\xE53\xFF\xA6\xD3\xFAM��\x98If-E+\x81\xCD]e\xBF\xF1k\x9E\x92\xFFAvԝ3\xE7:\x9BB\xC4\xC4\xC36d\xA7\xE3\xCC[\x92\xE4\x88\xC9\xF6J+\xAC?w!@\x8C\x82̳\xDAɜ\x99\xBEy\xB0\x9Al!q\xD8\xF6\xC6\xF6\xC6\xFE\xBE\xE3\xFF"[\xFAyS\xFE\xF3*\xAA\x95ޢ\xD3SS\x9F\x94\xCA\xF9;\xD8ɂh\x97\x85\xF7\x8D\xE4z\xFEY]\xB8\xFD\xA6\x86\x86w`\xBF'ըh\xBF\xA1/\xBE\x8Dۊ\xD8dx\xB6\xC04\xD3\xCF7ak\xDE\xF3=\xAF\x9Br\x9Bb}\xA4\xC0p"uv䔷\x94\xB0\xAD\xA6\xB1��]S\xFC+e2\xBD\x94\xA4\xA4\xA6\xFD\xA3\xC6u\x88��2\xAC0����\x8D������ݐ=Z\xB1\xE6^\xD4\xC8DmDmc\xA8\xF6\xAE\xE5mv\xB4E\x847\xE9i~E~\x90k6hX\x8EkI\xB4kI\xB5\x9BL^\x95=\xA5\xAC\xC0\xD5m\xA1\x86\xEDƞ\xFF4}'uA\xBBj\xD0@g\x83\xC2Z\xC5)o\xE2!\xB6=\xB7W\x9D3Z\x93\x94\x87A\xD2.\xC9\x8E\x9Ea$\
xB3`\x96\x8C\xA
9l \xFE\xDE\xFBV\\x9E\xA2\x83\xB76\xE0\xF6\x8Bh\xD8\xF5\xF37,\xE0G\xE0M\xC8\xE5\x80q\x9DyJ\xFD\xCF\xF3i\xC0\xA8B$\x97\xF8\xD7\xF4\xC4Wc\xC3\xC3\xED��"\xF9$\xAB\xAFG\xC8X\x8C(\xE6ͬ`\x8E$<\xF6ɾ\xC6M\xF3\xDB0&\xF9\xED[\xE2:\xB2^\xCB^ U(\xC7o\xE5\xEC1\x97\xB8}%\xE7c\xA9:7#z<\xAE\xF9\x87Dqm\xAE\xAF5\xB5\xC05\xF4ݕ\xAB\xDEB��\xC1v\xD4\xDC\\x8E\xD7P\xC1\xA8=\xDDBϘ37\xFE\xF2!\x90^\xD3��2\xA90����\x8D������\xDDҮM{l\xEF\xEC(\xE3(\xE3+\xCEٸS\x92k@\x91\x9A\xCF\xF2\x94\xC9B\xD0\xEDS\xAD]\x86\xA5\x94Ƞ\+\x87\xB6\xEC\xCBuW\xD29\xC8\xD2I\x81R-\uǀ\xA7\xC5\xCCڍ\xC1\xB1\xEC\x9A\xD8I$\x92I$\x92I$\x92P\x97\x9C\x83|\xD0ե5\x8AJF䚅\xAC\xCFl\xABv\xD5=\x85,p\x86UE!F&7\x95_\xA1\x99\xF4ֈ2!\xFAH\xC89\xB6A\xA8\x89\xEA\xE0\x8DⰌ\xA0\xBF\xAC+\xFC+\xFC\xB4'\xEA9nl+lL\xCAP\xE5.P\x9C\x9FZA?\xEE5\xB9\xC4W$\x98\xB4\xFEd\xAF\x80fo\xB8\xAA\xA5B\xD9P\xC6\xDAp\x8D\xE0\x8D\xE0\x9B\x98>\xE2\x91x\x91x\x91xqr\xA8\xBAK\xC5!;\x8B@(J\x94*G\xDA~\
xD7Em\
xBC\x9F\xAF\xB10@\xACo\x9F᱾yl\xB3\x80\xA8\xC3\xBA\x9F\xCF\xA4m}\x8B\xE6L\xD03T\x9B\xD93\xBE}5}˳\x80��2\x910��\x8D������\xD7L8\x95
+\x9F{)yy!\xA7\xB9\xEA\xBBAM\x82M\xA6\xD9DF$U\xB8\xD9D\xDAd\x98[\x8D\xB8I\x85\xB8YO\\xC0/\xBD\xB8\xB5\xB9\x90\x8E\xCBl\x8E\xBFC\x92\xC8uճ\x9A\x9A\x80f\xDB\xF1\xBF\xA7i0}\x90 0\x8D\xD4ϛ\x82@\xA6\x83\xE6\xD2:~\xB2\xDB@\xC5\xDC%.OFo\x8A\xF7\xF1l$\xD1L}\xB2H\xB2,\x8DϷ1\xBEp' 0\x93\xA4\xB9\xE6O\xAD\xE9\x82\\xE9\x82rMG`t\xDBxb.}\xB6q\x85!\x80\xC72\xE6}\xECx\xB9J9\x9C\x80\x9B\xD7\x80$\xA2\xA19\xAFє\x89+\x9C\x9C\xB8\xF7\xBB\xEA\xFB\xDF!\xBEվ\xF1\x8Az<C\x95\x83\xAEDf\xF8f\xD1yH\xA1p\xB3\xDDķ'lXQ}\xB4\xB8\x8F\xF1i0bL\xA6\x9B*2\xACc7\xA1W\x81Z\xECR\xDA+\x8C٧/ r<\x8F#ˎ6$��2\xB30#��\x8D������\xDD\xBF\x8E\xF2\xAFM\x95\xF9\xA9\xDDu\xD7]\x96NM\xC5dmF\xDE3\xFE\x88\xFB\xDC^H\xA8W\x85^t\xE7g\xB1\xE4\x88\xE7Nt\xE7Nt\xE7Sp\xCDˡ\xF2)\xE0\xF7\x84\x82z\xE1\x9F\x9F\x9F\xADx\xD7k\x8BE\xD7\xE8q\xBB\xE2\xD1s\xC4\xCBHtCu\xC7<Xyua\xE5բ\x{DFE4}\xBF\xA4\xBDp\xC49@fC2a&a&a,\xD79H+\x8CH1\xA1\xCA|\xB7\xE8\xA84\x93/.~\xA6I\xD8D\xBA\x94\xBF\x8
D\x
9Cg[00ղ\xE6V{Hp\xC3Y\xED!~\xC0t0\x99a\xA8\x809qG\xBB\x88zmCM\xA6\xE9\x8E\xE4\xDCY\xB3
+Ό\xE8Ό\xF3\x8F\x8C+\xE7m5F\xC6w\x96A\xDB}\xB1.\xDEY\xC1r\x84\xDD\xF6b9\xB4E\xD0\\xA2J\xFF5\xC7ϛ\xAA\xC2\xE5\xF4nS\xCDO\\xF4K@EwoM\xB3\xB2\xEEgl\x82g0\xBFj\xABv\xAA\xBA\xC5V\xF9!\xC4A3\xD3?\xF3W��2\x8D0 ,��\xA6\x8D������\xBF귔ӏv\x8C\x93`y-\x97n5v\xE4\xE5\x81\xF0\xC4p\xC4o,\xBB6j$\x80\xA0\xDF些5H\x94\xA9|\xD7Pp\xB3\x8E$\xCD\xCD\xCFBQ\xA4\x89\x99\x80C\xB6H\xD4\xDAG\xF6f\x8D\xF5\x86ՠ\xAB^:\xC3k\xC0\xB8\xB4\xCC -}\xD2¡P\xF1\xEBR@mU`\xB1l,\x98\xBBcl{{w\xA7\xDBw\xC0\xEB*G\x85\xEFW\xBD\xEB\xB9\xB0\xA2!S\x919r!S\x94\xED\xEE낼@\xEB\x82ƢG\xC1m؇\xAE]4)EI\xEAI\xA7\xAE[\xC3*\xFDr귞\xCBHR\xB4\xFCUJ\x95\xA9Z\x95\xA9Z\x940\xF4\xA9@\xF4\xA9@\xF4\xA9Z\x95R|\x8B$\x8BXDsm,ٴ\x99\xB4\x9Am.\xB5%\xA1\x9E@\xD8Y\xE4)ڲ\xAC3\xAB\xB0\xCCN\x81xQ\xC4\xFEX]\xEEU\xCC��2\x850@5!8\x8D������\xDEPt\x83sH\x97E7C\xC5\xFA\xA1z\xA1zq\xDDϚ5\xCF9\xCC\xE5ĺ\xBB:\x86\xB1\xDD :}Dn.E\xBA:si\xAB4\x82\x8F\xF8\xE5\xF0\xF9-fQ\xA0\xCF\xD9U]\xCEqU΄\xEA`\xF1[y\x95
\xA5?\x
F0\xAD\xE8~\xF1\xEEC\x95Va\xBD\x93\xD3g>*S\xE40*\xA7\xD4\xEDN\xD5O`\xE7B/j/jXQ\xC3h\xBE\xF3\xEF<E\xB4S\xFA\x87\xCB8ļ\xF3\xD9\xC6\xCE\xC5\xFF3\x8B;:\x84\xA8A\x{1667667}\x99X\x8C"3$\x90181818Sێ\xE2\xE4~\x9D~\xA1y\xBDZ[\xE2\xCF\xE9\xCE�� /\x83JCv\xE5nm,\\xC6\xFB\xEF\xBE\xFB\xEF\xBE\xFB\xEF\xBF#\xE5\xFD#kPQ@\x94K\xE1}\x9EVUfR፪\xDB,\xDFH\xA3\xA620\x91\xE5��2\xF70 >Aʍ������\xBB\x92Z\xD6H\xE4\xCC2#\xDF\xFE\xA8ؽe\xD8'\x92\xFE\xFFOc\xB9jCNx\xA3~\xEBQ\xDE\xFC\x9C\x8F\x9A\xA4=x\xB9\xE5^j\xF5\xF5b\xF94t\xA0Ʌ`>\x8D\xDFx;\x86\xEDM\xDFxX\x9DQR\xBD8Cg\xC9\xE9
+Ո\xDE7|'\x8F\x88\xE2Q\xBE\xD0Y#\xA3s\xA2z\xF9\xF6\xEC)\xF3)W\xE0\x99\p\xA06V<\xB7\xC6\xD1\x81c~\x91\x82\xEC8F1\xC6
+Sr\x92t_+~}T\xC6\xA0\x9A\xE4>k\xF0gFtgFm\xBE\x9B\xF0gFtf\xDB\xF0gFm\xBFq\xA5}\xC2l\xF6H\xF6H\xF8\xFE\xE3\x9Cs\xFAp\xF3q#\x90\x91\xD3\R\x85\xDEw6(\x8F^\xEF\xBAN|\x90,\xB7n\xAB\x9Ad\xC7"\xE0Q��2\xC50$b\\x8D������߭\xB9\x89\xCET\xA1\xC0\xEBA0\xE1\xD6MC\x980#Οr\xCB+\xC9����\xDB\xDAC"\xD4凋\x94\x91s[\x96ǫF-\x94)D\xE1\x81ν\xF3\xE5\x904%"\xF1\xC0]\x98\xB4\xB0_\xB2\x9EP\xB4y\xA9}\xFD\xBF^\xBB\\x92\x9Ab(\xBA\xC6\xED\xC5)7ފ\xFA\x96\x99\xAF\xB5\x8A\xA4~\xBA\xFA\xFF\xB2\xEF\xA5[\xA3$\xBAA\xA7Ղ\x8F:\x87\xEEP\xC9^\xE4>\xB9C��Y\xEF,\x96C��Z3b\xC9\xCDP(\x87\xB0\xFC \xC6\xF8c`\xA0\xB7r%��\x94Tw\x8D\xBF=\xE8\xD9A\xEC\xF3N\xF4\xF1^\xEB\xF5\x87T\xB8-\xD1\xEF\xB53ʶ\xE7E\xBA\xC0\xB5\xC3\xE9\xE6\xD6Ƥ!)\xAB\xFA\xB2\xF1ы\xAEV\x87\x88뎨\xEFN>:\xA3\xBC94㣼90\xE4ÓL93\xFAUWg\xD6G\xD6G\xBA\xE6>\x91\xF4\xBF\xF4\xBF\xF6\xB62"/"r(\xDB\xBF4\xEBN\xF9t\xA1\x98\xC8ci\xC3\xEE��\xEA"\xB1O\xADxoZ��\xC6KE\xC1\xB6\xF6\x96
Yc~\xFC+\
xAD
\ No newline at end of file
Added: trunk/LayoutTests/fast/images/resources/avifs02-ref.avif (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs02-ref.avif (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs02-ref.avif 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,27 @@
+������ ftypavif��������avifmif1miafMA1B����\xA1meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������,iloc��������D����������������\x8C����Y������������\xC9����\xC3������Biinf����������������infe������������av01Color��������infe������������av01Alpha��������iref��������������auxl������������\xD7iprp������\xB1ipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx������\x80������ispe��������������?������?������pixi��������������av1C\x81+��������8auxC��������urn:mpeg:mpegB:cicp:systems:auxiliary:alpha��������ipma����������������\x83��\x87����$mdat��
+~\xF9\xA5@2\xB6��\xDD+*\x9E\xD482\x92\xAB\xFF\xFF\xFFǂ=i\xE5$\xAD\xBCn\x95)\x8E\x9E\x88\xE8t)\x8E\xB8\xE9\xE8\xA8\xE9莉\xB0\xFF\xE6\x97\xC8\xC6B20.\xC3v@\xBA\xFF\\xA1p\xA2:\xBA\x88\x93\xFCHd\xA0\x9Ec\xC7\xE0\x9Brm\xC9\xC6h\xA3\xA8\xE1ċT\x8C&\xD1!\x98\x9Cb\xAB\xBB
+3ϳ\x82\xC1\xF6\xE0*w\xCED<+Xc5X̞\xB8\xE2\xB7\xFCVZ\xC7M\xE3X\x8B��\xA4\xC0\xB2/\xC0\xBF,\xEDt\xF2ԷT\xD0\xD1\xDA\xC1懛l}\xB1\xECV\xDDئ\x9F\xB7\x8B\xFCuR(.\x82\xE8*q\xE5Q\xE7*\x82\xE8.\x82\xA7&r&#\xB6\x9Fx\xE2\xFA\xF1QoM\x99\xAC\xEA\x94I\xC69\xBE֔\x8Ā\x8F8wĸg\x9E(\\xDA\xEB,^\xF3k\xA6\xEB\x87\xC2`\xC5\xF1L\xBC{n\xB8| \xCBx\x85\xFB\xF73\xB54KU\xB2B\x95\xDE\xDA\xFA\xF5\x8DV\xC9L\x90\xB1-V\xC9mXիPwp8\xF0\xFA\xF6��\xD0>\xBE\x96\xEB\xD8?\xE4X\xC9\xC3C\xFC\xA7V\xBA*\xA8R\xAC\xDB4vOBmIq\x99\xD1\xE5\xA3\xC6\xF6\xBA\xDA\xEC\xF1\xBD\xAE\xD5\xF1Kkn\\xDE8\xB1n\xA1\xB7\xA6\xCAzjy\x9CƱ})\x99\xC7\xAA\x96\xFC\xBE9\x8E\xD15ơ\x87\xCF\xC0W+\xB6&\xEB\x9C\x99\xE4\xC2\xD1"i\x9F\xF1\xE4\xFE\x8E5\xD7\xDC\xFE\x91\xE4\xFD\xCF\xDC\xFE\xFD\x92\x83\xC1\x85\xDD\xF1[\x81r\xFB\xEE{\xFB~\xBC\xAD\xCBo\xCAܫ~\xE1oʟ\xE1\xB3g\xBDX\xB4\xA6K\xA8>X4\x85#3\xAEN3>\xB53\xEBO\xBC\xBE+\xF6]o\xDF\xD8ɰ\xD2̳7\x8C^1x\xC7\xE4}59̍H\x91\xC8Q\x
B
E|\x85*ͳ6\xB5\xB9\xD6\xE8\xAE\xFF\xB0i\x80\xB8\xE1Z\xF5\xC1\x96]X\xBDpe\x96��[\x96\xD2\xC3 \xBDW\xDC^\xC7xn\x87Z\x8C\xA6G\x88v\x96/\xC3\xFC?x\xF7\xF8\xD3|?\xC3\xFC0R\x85(R\x85(T\xAF\x92Z\xCBK\x9C|D\xB7\xF6-\x980\xF1\xF0\x83\xECV\xA5n\x831\x83\xEC\x97\xDA<\xB6\xBC_m-.\xC6$r\xAA \xA8\x82\xA1\xE7E\x9D\xE6\xBEn\xBD3q\xC7\xFD\xAE\xF8ۺ\xA0\xB8\xC2X\xA2\xD3P\xE6+\x8F\xE08\xAB\xFD\xE9B\x80t\x87|'Hw\xC2
+\x8AJ\x88m\x97\x8F#-\xEAџ\xE4\x86j\xE8+\xA0\xB0\x9AS_a\xC8\xC4\xD8\xC4ڡ\xDDOve?@\xC0\xDF\xF6\xBF\xD4 䣖\xBF\xDF\xF6\xBDk\xFE\xDF\xF6\xBF\xE0\xCA\xFA\xC4\xD82\xE0J\x82JT\xEC\xE1+.\x92\xE9 \x82jr\xE9.\x92\xEC\xE1.i&\xA7\xB6\xDF\xFCj\x84j\x87\xBE\xA8\xF8\xB5\xF3\xA7\xC1\xB5+\xB8\xBC:\xD0\xEBX\xEF+\xC33\xF2\xF5{\xDF[\xDDoCy{\xD9\x92\xB4 \xCBc\xF5Ȕrv\xC1\xB2Aɗ[Hm#\x84\xAC\x92\xDBIU+\x84\x98\xB9\x9F\xD8\xA9\x83\xBC\xB1\x86\xF6TXn\xB8=\xAB\xB4\xDE\x84'\x8AO\xF9\%⮁\xD5\xD5RS)d\xA5\x88\x95zUw\xBA\xD5\xEB\xE5RA\xE1y\x84f\xF7\x82\x8F_\xBA\x9E#\xF8\xDF\\xD7S\xC6ޠ\x9B\xF5Kw{ -h\xC7v\xA0��
+ ~\xF9\xA2+2\xC9����\xDD+#\x82\xBF\\xD1i\xE5_\xFF\xFF\xFEPN"dQ\\xDB4\xB9\xE4\xBA@\xB5\xC1\xA2\xDAw\x97v\w|-\xBD\xE5>\xFF\xFF\xCD0\xC2&\xF2\xEB\x94+\xBC\xEC\xFF\xAD\xE7"\xEA:\xE4\xEA:\xDB5\xA7\xAD\xE7!\xB9\xCA\xC5w{\xF8\xD0\xCF\xDCp`\xF9o\x90cA\x95E\x98\x96cA\x98~_\xD9x"\x897\x94\xA4ZH\xDF\xF7\x80\x92x \xCFT\x8DO\xFA\xFB\x8E\xF1\xAE\xF3pC%K\x950\xC9S+q\xD1Og\xE5\xC2*\xF2>\xB4\x8B\xCDJ)\xA8\xA6kׯb\xBB\xC7\xF4\xA5Z&]b6L\x86\xA1mf\xA2=B\xDF\xB1\x91P\xEF\x88/\xA2\x9A!\xFBqP\xAB\xBE\x8D\xB3\x9E\xB3\xB1\xE4V.}\xFDl\xDE\xDD!h\x81h\x81n\xD6Se5\xEEV\xE9\xECo\xD6Se\x93k\x8D6>b\xC9Ƕ\xA4\xF7\xDBu\xD5\xF80\xF0\xBE\xF5t.^{$f\xDB\xE3*\xA8\xDB+0\xB6*T\xEA\xDB(\xC6V
+\xBB\xF0]ඪ% \xAC\x8Drf\xE5Y\x94\xAD\xB0\xED:[\x8Fo\xC8\xCDϙ\xF7"\xB2pD\xC8-\x91&0\xA6\xAB 4*\xF8\x86\xEF\xAF{\x9B\x81ᗟ\x82R}\x9D\xD4\xE1\xBFꙻ\xED\xD8+\xB2\xB1
+ۜ\x9D\xA5Lr\x87EѰ\x9Fɀ\xD6 \xAA\xCE\xF22v\xEF\xE6\xF0\xBBX\x86Bx\xE6\xF7\xC1Ai\x9C\xE5VY1\xD3\xC0KӤ\xBAsh\xB6~%\xBAX\xE8G\x91/\xC8\xEB(\x96\xE5\xC8\xC2\x90\xFC\xF2ﰖ߈H\x96@|Y\xF0\xF2_\xAB_y\xD4\xC8\xD2\xD1\xF6\xDC\\xF8\x9C\xC3ʨ=\xC6\xF1\xFA\xFE\xFF\x80\xA4kὖc\xAF\x9A_\xAA8
+\x97+V)`"IX\xD2}h\xD5?\x80(=\xC3\xCBϷ{\xCFq\xF3k\xC0}\xBB\xDE\xBC \xD3*\x94\xCA\xFAG8|*\xBC\xD1\xD7'��\xE1Y\x99\x9A0\xA6QٞQ\x8E\xFE\xCA?\xFET\xD7J:\xC3+\xD8w\xFDܱ+d\xD2/#L\xAC2Ĭ\x8A\xC3p\xE4\xBC[\x97\x95\xD8\xF3\x92h\xF9Rv \xD8'a\xF3\x92\xDD]3\xAD\xD9UFU\xF8\xB5\xE6`\x86`\x94eQ.`\x86`\x86`\x9B\xBA\x9D\xD4\x90\xB4\x9A\xE00S\x{199FD5}%$\xDA\xCF\xD4\xF2Ԧ\x99\xBF\x95KJ6\xF8h\xFC\xF08@\xA1\xFC\xF08@\xBC\xC4\xC3[\xC7\xEBZ\xB4ؔ\x86O\xC1\x9Ep\xD7\xEE$\x98\xFF78\xE3H\xA0#7\xD7\xDD\xAE\xF2\xBC\x83\xF7+\xC8?\xA0\xFD\xCA\xF4\x82O\x85\xFE\xB5\xBCM\x90z��\xAA\xF9C3\xC8U|+\xC7Y\xF7\xE4\xE4\xE2\xB5u\xA9\xE69\xB0\xE6%��\xDB��<\x95\xDA(\x95["\x88\xBC\xCEx\x{1CF6FD}\xDEOA\xE7\xDB\xC0AE\xA6\xF9f@l\xA0խ/\xE0ъ
+\xA1~4\x97\xA7v\xDF\xC9\xE6\xDFvw\xF81\xFA\xEDj\xE8ٌ\x9EHT^Cٍ\x98\xC9\xE3\xDE=\xE41эEL\xD9{\xE6\xABQH\xD4h_eq\xD7\xC1\x81\xD6e\yvU\xC1\x97\x9AfU\xC1\x8C\xEDD\x86\xDCJ\xC5!#\x99n\xB1;\xD6|{'9e\x80\xA9E\x97\x8F&c\xC1\xC7؏D3\xF0\xA31[\xF4\xCC\xC5\xE4 dV\xF8Ej\xD2\xF3/R\xFD4\xD3=/\xD2\xF8\x8F`\x8C\x96x\xFDNU\x8F\xB8\xA2\xBAAk\x81\xC9YR\xB5#\x89؝\x8A'R\x8B\xA3(\xB6\xED\xC6*\xA3Z\xCDk5\xAC֮z\xE4\xF4p۱\x8D\xAD\xFB.c\x90h\xDB\xF0n }\x82+\x92\xD6\xF3\xB0\x96'\xE3eS{c\xB0g\xB60g\xB60th\xD5RV\x86<+\xE2(\x84.\x94&
+\xDC6\x93\x9A\x9C\x93rwsyv\xF6g\xDD\xCE\x8B\x8F!\xD4\xDBŻ\xB7\xB3{\xDBŻ\xB7\xB4\xD1נy\xFEL!=\xAF\xC8Ok\xC1\xC7\xD6\xD3)\x94 \xCCP\xDD@\xC82\x83 \xC82\x83!\xBC)\xC0\xF3\xBD[O\xADS\xF3\xF9\xBFv\xE0\xD9q\x90\x84\xF0ȝ\xFAzī\xC5I\xB85\xD3\xC8+ߝ\xF8\xE3\xC2\xF0\xA4{\xFF7D\xBC\xD08'\xEC&\xB1=\xAF/\xA0]\xB1\x8A\xAF{\xC0]!\xF2!\xF2ܴ^\xA5[\xB0\xBD!\xB2Fh\xCA\xF4u\xFC\x87\xA9n 5(od]\xD5+-(l<=\xD5\x96\xA9\xE72nU\x8Af\x8F\xEA,\x91
+\xA3EX\xB9\x90w)\xA5̃\xA5Q\xA2\xAB\xB1˯\xC8Z{\x9B1\x98\xA2\xA6(\xD8ϐ\xAAB\xA9
+\xCD-4\xB4\xD2\xC9
+\xE67\xADt\x82\xAB\xDCvt\xD5]MZ\xDBw\xF6\\x898\xA4P\xF1ȳ2\x80\xE6"\xA5\x99\xDB\xCB\xECi\x8C\x9A-af*\x97\xF2B\xF3\x88s\xFB.
+\xED\x93\xD0p\0+\xE1\xBC\xDB7\x8E\x9FCr\xEA\xF9\xADj\xF0\xEC@'IKkZֵ\xAE
+\xB9\xEDD\xB6\xB0\x90ұ?\x89 -/\x83F@sqh^\x99Jj%\xA8\x96\xA2N_ys\x95o\xAC\xB0\x97\xCBE\xF0A+AYC+XC+Dw\x9F˪\xBCv\xF1\xDCK*\x94\xC4d\xB7\x97\xF7\xAC\xC9!:\xCF\xC4Z]: !:S\xA0\x914\xE9\x89\xB1%Ȫ\xF5\xB5\xF7u\xD5y((\xDEԥҜ<\xF5\xB9J])\xD2h\xDE\xD7z_\x836<\xFB}-7\xB3r\x95l\xE5\x9Bl\x94o\xB4[E\xD2\\xD9sk?\xB2&i\xCB\xB0AјP\xAF\xB96\xC5O\xD0PPT\xB0\xBC\xB6\xF7\xB3N\wSPB\xBD\xEAc>%\x887(\xC5\xC4\xF7\x88\x9B\xF0\x80O\xF4y4\xD1\xC1y8\xEAR\xFA\xF5\x93\xAAlBC\xA5\xDA\xD9l}R0\xFB\xE1ٲe\xCBò\xD9m\xB4F\xCFC-ݧ=\xE2f\x8E;f\xC2\xCAx\xAD\x8Fe#{uW\xBA7\x94v3֞* \x874\x9A\xC6\xFF\xA0\xEA\xDA\xD6{\xABmj`\xCC\x8C\xAEt\xE5.ǫ\xF52|C\xD2\xFB\xFB\xA5U\xA1:1%\xE0\xB9\xFEQu\xDC��\xF3Y`������ \xA6[pR\xE3j2\xF1(\xC1\x86\xF5\xEB\x9E2
+琐P\xF0\xD0D{\xF6S\xC7_.'\xC1zI\x8F\xC0\x96U/\xC91\xF4|\x93D\xEB\xB0'\x93շ\x98N,\xA3 \xE9\xB9\xED\x888C\x848\xB2\x8F\xFA6\xC44]:\xE4%J& >\xBFt\xBF\xA2F\xCFC-ѳ\xD0\xCDEϝP\x84wj\xD2Ke+\x84\xDB=,\xE6:\xC3 硤\xB6\xE0u��7\x96\xE6\x9E .W\x8F\xFA\xB4%\xB0
\ No newline at end of file
Added: trunk/LayoutTests/fast/images/resources/avifs02.avifs (0 => 274728)
--- trunk/LayoutTests/fast/images/resources/avifs02.avifs (rev 0)
+++ trunk/LayoutTests/fast/images/resources/avifs02.avifs 2021-03-19 18:02:49 UTC (rev 274728)
@@ -0,0 +1,38 @@
+������(ftypavis��������avifavismsf1mif1miafMA1B������\xF2meta��������������(hdlr����������������pict������������������������libavif��������pitm����������������iloc��������D����������������\xDF����\xD4������(iinf����������������infe������������av01Color��������jiprp������Kipco������ispe��������������?������?������pixi��������������av1C\x81+��������colrnclx��������������ipma����������������\x83����\xBDmoov������xmvhd��������������\xDCt:��������\xDCt:������d��������������+����������������������������������������������������������������������������������������������@����������������������������������������������������������=trak������htkhd������������\xDCt:��������\xDCt:����������������������������+��������������������������������������������������������������������������������������������������@��?������?��������\xCDmdia������,mdhd��������������\xDCt:��������\xDCt:������d��������������+U\xC4����������(hdlr����������������p
ict������������������������libavif������qminf������vmhd����������������������������$dinf������dref��������������������url ����������1stbl������stco������������������\xDF������stsc��������������������������+������������Hstsz����������������������+����\xD4������\x8F������\xA9������\x87������\x87������\xC7������\x8E������\xB9������\xD4������\x94������\xB5������\xE5������\x94������stss��������������������������stts��������������������+������������\x85stsd��������������������uav01��������������������������������
����������������?��?��H������H��������������
+AOM Coding��������������������������������������������\xFF\xFF������av1C\x81+��������colrnclx������������\xC6mdat��
++������\xAF\xDFs"2\xC0����\xDD+#\x82\xBFM\xD0\xC9\xE5_\xFF\xFF\xFER\x94\xCB\xFB\xB8\x9A\x885\x88\xBBԨ\xA5\xEB^\x9A\x88\xA8\x8A\x8A^\x9A\x8A^\xB5\xEB3\xEF\xFF\xFC\xD7O:W7\xC3Y\xEAi]pjȬW\xACWpj\xC5pj\xC9*"zV\xFC]C\xAE\xBA\x85r\xB6\xEB&|\x99\xF0[\xA1n\x90dʖ:hNrm\xB4\xE0g\xC1\x9F \x94\xD4o~\xDBnz\xC2\xE7[\x9E\xB0\x85\xB9\xEB\xF2\xE6~M\xE0\x8E\xC6Ԛ\xEEy\xEE\xDAH#\xDCN>]\xEFQ{\xDD~\xFD\xFA\xED\xDF߮\xDE<,Lu\xB9F<;\xF8oa\xBD\x86\xF6\xE0\xF0\xC0\xCC\xF4%\xDF{Y)\x90)9\x91Y\x91"\x90)\x93\x91Y)\xDB\xC0\x93A\x91o%a\xF4[E\xE1tqPC\x86H\x8F\xDDL~a\Z`+\xD0] \xDFn\xF6K8\x9B\xEF䱞\xBBK\x9E\xB5\xEB]\x85i\xEBK\xF4\xB9봹\xEC\xCF\x9F3]KK}\x94\xF3\xEF��\xE4ณ\xDD/>\xF0��\xEF\xCF>\xEF\xCF:\xF4)\xD0+|\xC53i(\xFC\xF4G\xCA?|\xA3\xF0\x99+\xE7\xC1\xD2+r\xF0\x91\xC3s\xA9Χ:\xB2+u~\x9C7\xAA8;
+Hp\xEE3\xB8ᄆ\xEE8a&\xB3v\x8F2?r\xA9ٝC\xFF\x801��8\xE0@ \xB0\xCBNR5\x85\xFB\xAC\x90\x99R\xB9d#.\x9Fz6r\x80M\xE8m\x9E]\xED\xE9\xF5ڥ\xDE\xCC \xC2!\xEE\xDEp\xAE\xEE!\xEE.\xE2\xEE:\x86\x96|\xDD]\xCF?\xE4_\x89\xF8\xEB\xA5\xE4q\xA1\xB0K~;\xB07\xE2~;\xE9\xF1W_P!\x92)\x8D\xCDn\xD1\x96Jx\xD9d\xA7\x8D\x96Jx\xD9d\xAD\xBC\xC5z\xFD\x94\xF8\x82u\x93K\xEE\xE5˗.\\xB9r\x88\xC3+\xF2\xAD\xFEy\xD7\xE1\xE8\xC06l\x9A\xC8\x9E\x8E\xFA;\xE8nY\xBA4\xEF\x9B.\xE4\x8C:(\xB3\x9EJ>\x91%\x84a\xE2\x9F;\xDD~\xFD\xFA\xED۷~\xFD\xFBYy\xC3e\x9C6\x9C-\xD0&\x97\xF3Y\xC9\xD2\xD0-\xD1\xFD/\xD2\xFD/\xD2\xFD@\xD6\xE1\xBE-\xD5\xE0w\x88S?I\xF4\xE6\xE3\xCF<\xDEn<\xF3\xCF<\xDEl\xE6\xCEn<\xE2u\xB6ߴ\x874\xCF\xEBe\x9Fr\xE3\x90\xD9>\xE0{\x81\xEE p\x81\xC2\xEE>\xBD\xAD\xF9\xB2Q9\xBCUF\x88_\xBF'o\xBA\xB0\xF8'\xE5\xC4[]7\xE55\xD3~S]7\xE5_\x95b^\x8D\xB3|\xC6l\xBF\x9F!6}\xC2\xFE}}\xF5\xF7\xD7\xC5\xDA<s\xB4\xEFa\xEFb5Zݱ\xA0\xBD\xEC~I��\x87\x98E\xCCG?��\x8
9��
\xF0\x90I��\x89
+1\x87Ӝ\xE0\xFC,N\xD0\xDF\xE3d6pi\x8F\xC6\xE0\xFF\x90icd6r\xE3Ⴒ\xEA\x80p\x80mDQ\xA2\xD7\xD9ٹ6}\xDF_}}\xF5\xF0\xBF\x82\xFE\xA3\xA1\xE0+\xEC7\xC1\xE0+\xEC\x9E\xC0IV\x8C\xC4F\xBC\xF7\xBC\xF7dsl\xA9i(t\xA1\xBE\xE5\xFB\x99(t\xA1\xBE\xE6\x91\xA1-\xBD\xA9:m\xBD\xA9^cv\x95\xE67Z\x92,\x81\xF3\xF8\x8C\xFA\xD3\xFB\x99\xA02j\x937\xEAۋnM\xFA\xB6\xE4ߴ\x83\x9B}\xB9\xEE\xF3\x8C\x9D\xDEH\xEF'\xA7k^\xE3\xEEH\xFBt\xB1\xF3z\xC9\xDB\xE7\xE7\xA2\xF9\xBD0n\x9A6W\xCDr4\xFF,р��2\x8A0\x81������\x8D������\xD0
+#\xC8\x95u]\x8E\xD9m\xF9;ϫ7\xB8\xC2K,\xA0,IL\xD3[ϕ4
+Pu\xBB"\xEAZGcc\xC6?1\xB5\xAD~\xDA_@\x90%\xE6\xBCß\xCEau\x9Fye \xE0ׇ\xF3\x97wL\xF5+ŚxOP \xF7\xF3N?F\xE4\xE8s=gŸ\x9E)o\xB8Jq\xB54\x82\xFC\xFF\x8CU\xBB^\xBE\x84a<\x81��2\xA40����\x8D������\xCE0\xA3\xA0Rʸ&\xB6_hDҮ\xE1\xB62%\x82.+\x8C~\xBF\xFD-\x96V\xF3\xF1\xE1\xF5)\xA6+\x91)\xABt\xCA[2FE\xAFQ>\xC4y)>d4@J\xFF[N\x90"\x9E\xCE$8CG5\x8E\xD6W\x94p\xE5\xE2\xAEx\xAF\x82\xE1\xD4h\x86\xFCn\x89\x85#\xE2;- 5+\xF9\x80m\xFD3\xDFW\\xA9\xE5F\xC0\xE4\xC8cZB\xF1ӓ\xCFO\x96 \xD7%4\xBE\xACo\x97\x8Ag\xEB\xA2h&\xD5��2\x820����\x8D������ɤ\xEBY\xB0\xD3g\xFC͎\x8Ds\xA5:\xF9P\x95(:\xBCdƊT\xE1\xD7\xE8\xFE\x8E&\xEF\xF0\xE7X\xBB\xA0\xF8>\x83\xE0\xCFv'\xEA\xE4\xC6o\xF3\xF6\x8E|\xC8R\x88\xEA
+b\x83\xC7\xE8m\xFC=\x90W\xFC\xD3\xC1\xCB
+\xB0\xB7>e\x89pC\xE8/lKW\xFE[-4\xA7\xD2)\x9A_pVeQ\xC9 \xB0ٝ?\xF1E=o狼\xDBͽYp��2\x820��\x8D������\xC88@\x86\xBCZ\xE4̀\xFC\xFDH\xCC\xCĆ\xD92-9\xEEى\x85R\xBE\xA5\xC9Y(\xBA\x9F;\xC1R+_\xD6^\xCE"!Vu\xD5 \x97\xD3\xC0\xAEa\x9DLp|\xC8\xFFAP\x9E\x8FUVI\xDBL,\xB9\xE1\xE34\xF0˸\xD8e#D;\xBCQ\xFA\xFDc=\x8B\xB1\xFC#m\xE5\xC5\xE5\xE8\xFDf\xEC\xFDl\xBCB\x8C2\xF1\x8B\xC4E\x80��2\xC20#��\x8D������Ŋ\xCFmb|9K\xB5\xA7 \xC1\xCA:\xC1ŧ\x9F\xC1=\xBC\xDA6pF\xF7\xD9\xCDǞy\xE5\xFCbĆ\xEA\xEBH\xFE\xC4ddb\xDE\xC0\xADb\x92\xAE \xEF\xCD\xCEPv+\xD2\xDDWqwq}!\xF0\x89e\xBA\xF7qL\xF3AMr\xFAO\xA8\xAA\xAA\xAA\xAA\xAA\xAC]\xB8\xC2%\xDD6\xE1\xDC\xFF\xFF\xFBwwwwwx\xA4'\xE8\xA7\xBF+\xB0\xB1iQ\x95o6\xF3o7\\x94\x99P\xA1\xAD5a\xAA+\xD1Ҭ\x90^r\xA7$\x94\xBC\xC6$0\xDCˏ\x93o\xB5\xB9\x95K\x8Fo\xB5\xB9\xB9\xB9\xD8��2\x890 ,��\xA6\x8D������\xC2U\xC6/8vR\xF1Ae2\xA1p;\xE0p.p.p.p.p.\x8Fp.qȹI3\xDA<\xFE\x9D]\x82\xD1\xFBZC\xBC\x85\xFD\x85\xFD\x85\xFD\x
84) \xE5~\x9
8[#u%\x85\xB1\xE1\xE1\xE1\xE1\xE1\xE1\xE20;\xE2\xCE$\x88l\xE2Q\x8E\xB4Z\xBCZ\xE3=r\x89Q\x9D\xEB\x88\xE0\xBET\xC1߱\xB6\xE1\xCD-------------6U\xD6��2\xB40@5!8\x8D������\xD8\xE7f\xDA\xFE+\xF8x!7\xCE&\x99㗫\xEF\xBC[\xF90\xE5\xEA\xF6\x8Eۛ\xDA8\xBD\xA3\xB6\xE6\xF1\xCF\xF8\x8BZn\xC2\xD6.\xBCn\x9Cf\xF9\xD0uGQ\xCAreD$m\xC7z\xFA\xFC\xEB`\xE9\xC1\xA4\x9E\x8C\xAB\x8Ax\xDE;
+⸮(+\xE3 h+\x8A~6&\xE5<Y\xB0\xB3\xC5\xC1\xFEĸ握\xA9\xEAB\xDF\xCCnZ~u\xB4rbij2%\xFC\xAE\x99\xF3\xE8\xFC\x8F\xC6\xC8\xC1\xAF\xBE8\xBC\xC3GK\xA4\xB0JJr\xC1)'\x82䤞 I\xE0\xB9:X\xE8��2\xCF0 >Aʍ������\xE0\xF8z\x97\x80\xC9��\xF6Y\xA7\x99\xB6\xE9\xC88c\x88\x9C\x83\x88\x9C\x9A\x8BY\xEFQp\x9C\xC3\xE1\xC43Ԡy\x87\xA5J\xA5J!\xAD\xBD]\xB4+\xF8\x8DӠ\xEB:\xCEsx\xE08N\x93\x9C\xE29M㋭\xBE@/\xCE#OۋQU\x9E\xF1Y\xED\xA1`X\xEF\x9E\xF4H\xD1+\xE2\x91ez2\x97q\x97s4\x92\xE5,\xE3K\xC42\xACC#\xBA0+\xA3Բ\xACC.\xCA\xE3\xD5`Ӣ#8Ѵ\xD9Eca\xA7̝\xC5\xFB6\xA8>f\x8B\xE9nMJ\xFEK\xC4\xD6\xC9ː\xD9
+\x9C\xB9
+\x9C\xC31\x8A\xF6Y\x93\xF9\xFD\xB9\xD3[=\xB35\xB3?\xF1\x80��2\x8F0$b\\x8D������\xD6\x86B\xC5/s/g\xDE\xF7\x93U\xFA\xBA\xAB\xFE\xB0X\x96\xA0\x89j
+\xEA\xB0X\x96\xA0\xB0"Z\x82!\xD3\\xFC5B\x98.N
+\xB7\xAD܈dV\xDCڷ\xAC\xB3A\x90g\xD2\xC7\xE1\x90H\xEAW\x90\x90\x90\xDCl\x90;\xE9\xF3ԅ\xD1,\x86\xAA\xC2l\xA5\x82\xC5\xC3e\x94>\xB0\xBA\xC3eǗFi\xE7\xF1\xBCß\xCC9\xFCß\xCC9\xFCô\xE7\xF3 \xA1\xC0��2\xB00(\x82\xEE\x8D������\xB8\xB9g\xCB\xE9=\x98\xEA\xA8E\xCEϬ\xB7\xCBp\xEC-í\xFC\x97\xB7\xEF\xEB%\xC4D+b\xBA\xBF\xB3G\x81\xAF\xF0Lҿ\xD3\xEF\xBD\xF6\xBE\xCD?\xD3\xEF{\xDE\xF7\xBD\xEF\x8FϢT<D3D0\xB8\x8Dn\x90a\xA6\xA8\xFC!5\xC2@\xA7Uq/\x80\xD5g\x97\xB8c \x9C\x860\x99\xC6^\xD9Ѱyal]>\xF5\xF9\xC3u\xEEϴ\xA0J\x9A\xB0Fr\x9C\xA7d\xE1\x88[\x88tq\xF9\xC7\xD7.\x9C\xF9r\xEBoX\x94\x9C' \xC2o\xA6 \xBE\x97\x86\xFA^\x85\xE1xaȔ��2\xE00,\xA3r\x8D������\xB6\xAEg\xCAh\xA4G,s\x88L\x93\xC78\x844s\x88@\x84\xC9<s\x88Q\xECH\x98n\xEF\xF9\xAF\xCE\xE7\xC1\xBF\xB5d\xFD\xE2\xBBE\x96S\xB3\x9F9b{v\xEC˾\x9C\xB2&؛n>\x97}\xA0蛋UH\xC1 6\xBD\xF9w\x92> \xA5\xE18\xE0z >\x84\xE1\x82?\xA0V\xB1\xB8,\xE4(BBM 3\xB42aK 1!9\xA1f\xA8/\xAA\x96\xB0t \x97\xAC\x
DE\xD5{
UE\xE2\x94{T\x84R\x8D\xDC\xEF\xFA_i\x96߷\xFBw\x8FM\xEC\xDE\xCD\xF47+\xF48n\x8E\xE7\x8D\xF0dЧ?\x95\xFE\xC1/\x9D\xACy\xD8\xDAmZ\xD1덖\xD3\xFD\xC9l\x96\xC9m?\xF1\xBF\xF1h\xE3\xFF \xB5 ��2\x8F00#Ô\x8D������\xB2\xE2\xD7_\xED>҇q\x87.\xD3\xED>\xD3\xED(q\x87r\xED>҇7\xF6\xF3t\xE5\xF3{\x84\xE2\x84dK\xAFc\xAB\xE5\xD2\xFB#\x88\xDFv?K\x87,S\xEA\xEA\x97\xBA\xA8.\xB6/O\xB5\x89\x9B,a\x93Z\x9F\xF4\xFBO\xB5\xA0Y\xFFP9_}\xAA\xCDr\xB4\xF2\xC1O4\xF2 \x87\xD6\xFB\xB6ˬ \x8C\xFB\xADKWH\xE7Li\x8Ci\xF6\x98\xC1\xB6\x98\xC1\xB6\x9Fj:
\ No newline at end of file
Modified: trunk/LayoutTests/platform/gtk/TestExpectations (274727 => 274728)
--- trunk/LayoutTests/platform/gtk/TestExpectations 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/LayoutTests/platform/gtk/TestExpectations 2021-03-19 18:02:49 UTC (rev 274728)
@@ -115,6 +115,7 @@
# Temporarily skip avif related tests until the gtk port enables avif as default.
fast/images/avif-image-decoding.html [ Skip ]
fast/images/avif-as-image.html [ Skip ]
+fast/images/animated-avif.html [ Skip ]
#////////////////////////////////////////////////////////////////////////////////////////
# End of PASSING tests. See below where to put expected failures.
Modified: trunk/Source/WebCore/ChangeLog (274727 => 274728)
--- trunk/Source/WebCore/ChangeLog 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/Source/WebCore/ChangeLog 2021-03-19 18:02:49 UTC (rev 274728)
@@ -1,3 +1,39 @@
+2021-03-19 ChangSeok Oh <[email protected]>
+
+ Animated AVIF support
+ https://bugs.webkit.org/show_bug.cgi?id=222804
+ <rdar://problem/75362181>
+
+ Reviewed by Philippe Normand.
+
+ This change implements animation of the avif sequence. The decoding approach
+ is similar to ones for other image formats, i.e., decoding frames in BGRA pixels
+ then bit-copying them into ScalableImageDecoderFrame. The decoded frames are cached
+ for future use. The repetition is missing in this change. It will be addressed
+ in separate patches.
+
+ The added avif animation test compares the last frame of each avifs and a static
+ avif image. The embeded avifs images are originated from corresponding webp images
+ for animated-webp.html, and encoded with timescale 100 (i.e., the duration of each frame
+ is 0.01s). The total duration and the track duration are same so the added avifs samples
+ are supposed to be played one time.
+
+ Test: fast/images/animated-avif.html
+
+ * platform/image-decoders/avif/AVIFImageDecoder.cpp:
+ (WebCore::AVIFImageDecoder::repetitionCount const):
+ (WebCore::AVIFImageDecoder::findFirstRequiredFrameToDecode):
+ (WebCore::AVIFImageDecoder::frameBufferAtIndex):
+ (WebCore::AVIFImageDecoder::isComplete):
+ (WebCore::AVIFImageDecoder::tryDecodeSize):
+ (WebCore::AVIFImageDecoder::decode):
+ * platform/image-decoders/avif/AVIFImageDecoder.h:
+ * platform/image-decoders/avif/AVIFImageReader.cpp:
+ (WebCore::AVIFImageReader::decodeFrame):
+ (WebCore::AVIFImageReader::imageCount const):
+ (WebCore::AVIFImageReader::~AVIFImageReader): Deleted.
+ * platform/image-decoders/avif/AVIFImageReader.h:
+
2021-03-19 Martin Robinson <[email protected]>
scroll-snap-stop: always not respected during momentum scrolling
Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp (274727 => 274728)
--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.cpp 2021-03-19 18:02:49 UTC (rev 274728)
@@ -37,18 +37,48 @@
AVIFImageDecoder::~AVIFImageDecoder() = default;
+RepetitionCount AVIFImageDecoder::repetitionCount() const
+{
+ // FIXME: Repetition of avifs is tricky. We deal with it in webkit.org/b/223127
+ // To make the animation tests reliable, we animate avifs one time for now.
+ return RepetitionCountOnce;
+}
+
+size_t AVIFImageDecoder::findFirstRequiredFrameToDecode(size_t frameIndex)
+{
+ // The first frame doesn't depend on any other.
+ if (!frameIndex)
+ return 0;
+
+ size_t firstIncompleteFrame = frameIndex;
+ while (firstIncompleteFrame > 0) {
+ if (m_frameBufferCache[firstIncompleteFrame - 1].isComplete())
+ break;
+ --firstIncompleteFrame;
+ }
+
+ return firstIncompleteFrame;
+}
+
ScalableImageDecoderFrame* AVIFImageDecoder::frameBufferAtIndex(size_t index)
{
- if (index)
+ const size_t imageCount = frameCount();
+ if (index >= imageCount)
return nullptr;
- if (m_frameBufferCache.isEmpty())
- m_frameBufferCache.grow(1);
+ if ((m_frameBufferCache.size() > index) && m_frameBufferCache[index].isComplete())
+ return &m_frameBufferCache[index];
- auto& frame = m_frameBufferCache[0];
- if (!frame.isComplete())
- decode(frame, isAllDataReceived());
- return &frame;
+ if (imageCount && m_frameBufferCache.size() != imageCount)
+ m_frameBufferCache.resize(imageCount);
+
+ for (size_t i = findFirstRequiredFrameToDecode(index); i <= index; ++i) {
+ if (m_frameBufferCache[i].isComplete())
+ continue;
+ decode(i, isAllDataReceived());
+ }
+
+ return &m_frameBufferCache[index];
}
bool AVIFImageDecoder::setFailed()
@@ -57,22 +87,36 @@
return ScalableImageDecoder::setFailed();
}
+bool AVIFImageDecoder::isComplete()
+{
+ if (m_frameBufferCache.isEmpty())
+ return false;
+
+ for (auto& frameBuffer : m_frameBufferCache) {
+ if (!frameBuffer.isComplete())
+ return false;
+ }
+ return true;
+}
+
void AVIFImageDecoder::tryDecodeSize(bool allDataReceived)
{
if (!m_reader)
m_reader = makeUnique<AVIFImageReader>(this);
m_reader->parseHeader(*m_data, allDataReceived);
+
+ m_frameCount = m_reader->imageCount();
}
-void AVIFImageDecoder::decode(ScalableImageDecoderFrame& frame, bool allDataReceived)
+void AVIFImageDecoder::decode(size_t frameIndex, bool allDataReceived)
{
if (failed())
return;
ASSERT(m_reader);
- m_reader->decodeFrame(0, frame, *m_data);
+ m_reader->decodeFrame(frameIndex, m_frameBufferCache[frameIndex], *m_data);
- if (allDataReceived && !m_frameBufferCache.isEmpty() && frame.isComplete())
+ if (allDataReceived && !m_frameBufferCache.isEmpty() && isComplete())
m_reader = nullptr;
}
Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.h (274727 => 274728)
--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.h 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageDecoder.h 2021-03-19 18:02:49 UTC (rev 274728)
@@ -43,6 +43,8 @@
// ScalableImageDecoder
String filenameExtension() const final { return "avif"_s; }
+ size_t frameCount() const final { return m_frameCount; };
+ RepetitionCount repetitionCount() const final;
ScalableImageDecoderFrame* frameBufferAtIndex(size_t index) final;
bool setFailed() final;
@@ -50,9 +52,13 @@
AVIFImageDecoder(AlphaOption, GammaAndColorProfileOption);
void tryDecodeSize(bool allDataReceived) final;
- void decode(ScalableImageDecoderFrame&, bool allDataReceived);
+ void decode(size_t frameIndex, bool allDataReceived);
+ bool isComplete();
+ size_t findFirstRequiredFrameToDecode(size_t frameIndex);
std::unique_ptr<AVIFImageReader> m_reader { nullptr };
+
+ size_t m_frameCount { 0 };
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp (274727 => 274728)
--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.cpp 2021-03-19 18:02:49 UTC (rev 274728)
@@ -36,9 +36,7 @@
{
}
-AVIFImageReader::~AVIFImageReader()
-{
-}
+AVIFImageReader::~AVIFImageReader() = default;
void AVIFImageReader::parseHeader(const SharedBuffer::DataSegment& data, bool allDataReceived)
{
@@ -108,7 +106,13 @@
}
buffer.setHasAlpha(avifRGBFormatHasAlpha(decodedRGBImage.format));
+ buffer.setDuration(Seconds(m_avifDecoder->imageTiming.duration));
buffer.setDecodingStatus(DecodingStatus::Complete);
}
+size_t AVIFImageReader::imageCount() const
+{
+ return m_avifDecoder->imageCount;
}
+
+}
Modified: trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.h (274727 => 274728)
--- trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.h 2021-03-19 17:48:47 UTC (rev 274727)
+++ trunk/Source/WebCore/platform/image-decoders/avif/AVIFImageReader.h 2021-03-19 18:02:49 UTC (rev 274728)
@@ -41,6 +41,7 @@
void parseHeader(const SharedBuffer::DataSegment&, bool allDataReceived);
void decodeFrame(size_t index, ScalableImageDecoderFrame&, const SharedBuffer::DataSegment&);
+ size_t imageCount() const;
private:
RefPtr<WebCore::AVIFImageDecoder> m_decoder;