shithub: libvpx

Download patch

ref: f616cfe4d7a77de114a5cad6f8ee4d22eff1f4f6
parent: 61ecc282b562120fc104b56115d41582903da07e
parent: 119c9812a5a2abef08c5b62a5f8b031d924533f8
author: John Koleszar <jkoleszar@google.com>
date: Mon Jun 17 06:32:08 EDT 2013

Merge "Add vp9 test vectors unit test"

--- a/test/test-data.sha1
+++ b/test/test-data.sha1
@@ -122,3 +122,223 @@
 086c56378df81b6cee264d7540a7b8f2b405c7a4  vp80-05-sharpness-1439.ivf.md5
 d32dc2c4165eb266ea4c23c14a45459b363def32  vp80-05-sharpness-1440.ivf.md5
 8c69dc3d8e563f56ffab5ad1e400d9e689dd23df  vp80-05-sharpness-1443.ivf.md5
+c5b6fc822d7b4ed97b5a0d69e3a71d9de6cab815  vp90-00-akiyo-100.webm
+1cd8ee73b53f4ecc2511effd233f9af6ecdfac7e  vp90-00-akiyo-100.webm.md5
+a854b0f2313efde7767a4465afbcbe35005ffb07  vp90-00-akiyo-200.webm
+b0f53ad309611246821174b642f6808cc1e670de  vp90-00-akiyo-200.webm.md5
+38a5c0e5465f884474b1a5a9184685f17f961ba1  vp90-00-akiyo-300.webm
+756a34417fc10dc2a49464eccaa6b7f987227b57  vp90-00-akiyo-300.webm.md5
+1047e6f19dd137ae7bbd5b93d407fc7186f8a98e  vp90-00-akiyo-50.webm
+0fa08a76901a6a5b2d4b58a6b20bfa5239409b9d  vp90-00-akiyo-50.webm.md5
+767511b25dde2c5926f5284782a9f1e04fe7afda  vp90-00-bowing-150.webm
+b259c3c6afb30fd1ae7d3a563c1fe9fe6a4644cd  vp90-00-bowing-150.webm.md5
+2ef831c75c021a03176536fb652196e9afc37888  vp90-00-bowing-25.webm
+37d3522cd76b7bab3b5e973e2b2c51edea49ef3f  vp90-00-bowing-25.webm.md5
+c1e4639f14914516ca704f38c875d01f4c06be14  vp90-00-bowing-400.webm
+ca35c574512185d5f20f3b81517d6ac3333a1377  vp90-00-bowing-400.webm.md5
+e20fc293db095e52f29b891bc09458e7568e8603  vp90-00-bus-100.webm
+a754ea588cc409546936c09fb1ad06b3014b94f9  vp90-00-bus-100.webm.md5
+da5eb45fa42f55ff70ec7b71999e6fd8489d12f9  vp90-00-bus-2000.webm
+2a7356328eb991175cbddebd51a30018e48632f2  vp90-00-bus-2000.webm.md5
+607169c774664176aca7c7d46dabf04b9c3634e4  vp90-00-bus-300.webm
+c84daa3a0290d73226b243dd630820ac97bf4fbd  vp90-00-bus-300.webm.md5
+655902b54b9a8a882c11bc8bce1447f3b2085035  vp90-00-bus-4400.webm
+f719ecd7b53c8e35fae735396629d1915ffc1ff9  vp90-00-bus-4400.webm.md5
+afcdca9763d233dd63fd67165a7b92ea679822af  vp90-00-bus-800.webm
+66e2a55560e570cae09520060f1ae315c7ea0a07  vp90-00-bus-800.webm.md5
+390b91c8566d94c3a869af77531585c38f9f78da  vp90-00-cheer-1600.webm
+3d47da26375a75afef0cf2123f5c808d0862e25d  vp90-00-cheer-1600.webm.md5
+23419784db17a50e129e3bd030c20256cf0d6eb0  vp90-00-cheer-2800.webm
+0df4676171f19e7807d719a9b8a6fadcefc8f1fc  vp90-00-cheer-2800.webm.md5
+45ed3c42874d5ec88852798691cf54bfb0cf652a  vp90-00-cheer-400.webm
+374fd67ac9ae0e8146051b77963459c54b9eaaa2  vp90-00-cheer-400.webm.md5
+1c9459d824116a297ff0e90bed9be783005f9ac1  vp90-00-cheer-600.webm
+9dc0d43f72c8eb49d51a9748fb9948495529a6b5  vp90-00-cheer-600.webm.md5
+a86c5af1929d2f929a5caf6ef847d0066086223b  vp90-00-city-1200.webm
+231c7f0f406e3a8d2328daee4c4466e1b4d47354  vp90-00-city-1200.webm.md5
+be9cf927e6ab517d7876925d21b3193b1373d03d  vp90-00-city-2000.webm
+487d60226a3a3039528a049e9c6e8243b07404e6  vp90-00-city-2000.webm.md5
+1f3cd649d5829d52c08da3323baa86b1dcf2d2de  vp90-00-city-300.webm
+8e3b38cfa2be757e46ea12cff11762cb50134615  vp90-00-city-300.webm.md5
+286f6ea64c33ce735b5b7806aac4ca5ee331af66  vp90-00-city-600.webm
+7c51ead147ef4029094a2b455239090c1999d8fe  vp90-00-city-600.webm.md5
+f7ecbd63bed06ed15afe0ba2a192f2cf7943714c  vp90-00-coastguard-1200.webm
+8c8fed2c64cc8fb330e9200e1e0f58a79b953b79  vp90-00-coastguard-1200.webm.md5
+2e63178e5b2c2cc84226df2b514c4dde46c32d70  vp90-00-coastguard-200.webm
+128f2b22fdcfd02bc50e63b1cd6d40c0cc4998d6  vp90-00-coastguard-200.webm.md5
+97b779617d3c1ca8f50beda7126be5df913d071d  vp90-00-coastguard-3600.webm
+0da0ab4794439e6b8ab9ced41239e1307686be69  vp90-00-coastguard-3600.webm.md5
+5e060d66573a40f7f0a46ae9b6acb51b0afb2e3c  vp90-00-coastguard-5200.webm
+4ba526d4bb895c4794dc20edeb38b102a9b1bd92  vp90-00-coastguard-5200.webm.md5
+17810fa737f29d5b032836e38243bbb666f06636  vp90-00-container-1000.webm
+7e0fd7e93c5a16394818f844aa5f2d5fa7a73ee2  vp90-00-container-1000.webm.md5
+38deb4f59cec9e62715dec2f3670ffe7b1cf493e  vp90-00-container-200.webm
+aa3229017f920750bd5d919e19ea6127ea05adc0  vp90-00-container-200.webm.md5
+8b1a67ef35d3f00981d23c41b56a0a2e09976312  vp90-00-container-50.webm
+0a6f1a793b936ff1287326882f1165065a2dcea0  vp90-00-container-50.webm.md5
+4c724db691b7202b60b56107ec7b0abc6cc52bdc  vp90-00-deadline-1000.webm
+5903bd89be457be681a6c6c8fd8c19f4570173db  vp90-00-deadline-1000.webm.md5
+ee5e19a8fe14d3e72b1314a012b49a3bc0586375  vp90-00-deadline-200.webm
+77095f98406fa27a2da8661f21664c00292dcefc  vp90-00-deadline-200.webm.md5
+8230b07aa0ee7adf3caabae4e3bef997929001eb  vp90-00-deadline-50.webm
+fc47a159b2d2b0bed93d4e2c35408243e70b6d24  vp90-00-deadline-50.webm.md5
+244d12cda51235dcc421fedbe12422b326f539e7  vp90-00-flower-100.webm
+dfeca236450b5ff19c1558ad33fba7ab7ff75f27  vp90-00-flower-100.webm.md5
+d5b7057564f670f7bf82017e2abc3aed5656b810  vp90-00-flower-2000.webm
+65118811f4d46ef1e911d520296731536d3a507e  vp90-00-flower-2000.webm.md5
+a9c226643365f0c8ae03e780d55aa6c6fa9cc0e7  vp90-00-flower-300.webm
+fa5193d1a6e6b9e8bb91f75e91a3a377f00fa42e  vp90-00-flower-300.webm.md5
+b206284b51dec6219c46e9b03def38a94d91bf89  vp90-00-flower-4400.webm
+c8a73acd8234b287e86465d03fbf4f886d1fefb2  vp90-00-flower-4400.webm.md5
+faff83d7b6aa89f5d9518ffc5d4b145eb02b6800  vp90-00-flower-800.webm
+328dd1969804afc094d010f54f350bd05390d6a9  vp90-00-flower-800.webm.md5
+42caa40d3b76b8ae5e7573b95e09bc4e57bea835  vp90-00-football-1600.webm
+167b8f58a85d83050d4c56391d6b2d9a9a205b9a  vp90-00-football-1600.webm.md5
+4c4f93f594a8ef89a9ba903bbcff914022a5ad9d  vp90-00-football-2800.webm
+7995f7f91b13d4ab5badcd3f9282bd1fceba38f3  vp90-00-football-2800.webm.md5
+c3ff724e79b4ae0202929f3ed1a1a5b67d10901f  vp90-00-football-400.webm
+19164a0e58ca5d407282a867866e8ec4a0a08fea  vp90-00-football-400.webm.md5
+95de1c4abceab3706f0225e3b9c5dc719901a6cf  vp90-00-football-600.webm
+4a4454ae4d65748a45eaa3decb783bbe0ba190dc  vp90-00-football-600.webm.md5
+80eebcdae76459c00d14b6c50f7529377e53a1c2  vp90-00-foreman-1200.webm
+8228cc5a7cc83970b3a65f9b49bc74733255b09c  vp90-00-foreman-1200.webm.md5
+601d0ff4f058a3da3af4409e4117795f7c231fda  vp90-00-foreman-2000.webm
+e0c0b0aa6f9597984a2d78e799a00e0052710b2c  vp90-00-foreman-2000.webm.md5
+30ebc327645d68bcc83eab72610bba22f877fb4c  vp90-00-foreman-300.webm
+080fc2adf29a84f02a3e4b5508fc2f8dc32f1440  vp90-00-foreman-300.webm.md5
+6b1a6be0f7bd7605b565750b3080be397d4c48a0  vp90-00-foreman-600.webm
+f7713d3eba8d34d511ba1c9585a5a3f34e133ba5  vp90-00-foreman-600.webm.md5
+b080d9786abc89b4be59bffc5baba7b42fbc286a  vp90-00-hallmonitor-1200.webm
+77be47800b58001eb7a854d4d4a9b9823bbbe158  vp90-00-hallmonitor-1200.webm.md5
+05cd8e8d58ab8311ad528c27b4c89cdf268e749b  vp90-00-hallmonitor-2000.webm
+de1aa35c7172e78e07d6b197280214bbd362cc4e  vp90-00-hallmonitor-2000.webm.md5
+908676b32b190e956518bb742d1415efceeb8c75  vp90-00-hallmonitor-300.webm
+f9d39866db341d18256339e9fd2c0ec296f47702  vp90-00-hallmonitor-300.webm.md5
+1307c7f7558de34a6230912e684ff9571a05db5f  vp90-00-hallmonitor-600.webm
+954b292dd56be5c1bf153df440b132e1b1fbcb68  vp90-00-hallmonitor-600.webm.md5
+05f556288c5c4211420f7c332daded816f9b31b7  vp90-00-harbour-1200.webm
+399481f93cc252f20ad5141dd402cf5363673578  vp90-00-harbour-1200.webm.md5
+fa62e449485c544c281030c5ccff32c60d4dd169  vp90-00-harbour-200.webm
+3d0e1885befb2493c477384917797164d4fe58e4  vp90-00-harbour-200.webm.md5
+fa3a5e563c3d2215703c1a68f71fbe2168a42468  vp90-00-harbour-3600.webm
+9af392f6b2cb5ec5c9446b7262206773df535319  vp90-00-harbour-3600.webm.md5
+476db4b15989a5a078f1d2fc5f9734d1d24f1da1  vp90-00-harbour-5200.webm
+352a05b179dc1f86cf6ce27494a4a8fb42379d72  vp90-00-harbour-5200.webm.md5
+0ea17a4892383a2fd0be9f88f213f5f48f2a61f4  vp90-00-highway-100.webm
+a2fe942955bafa83295d1381c9a25264764924c5  vp90-00-highway-100.webm.md5
+7ab80485670a5343a74c4a2454761ed3bed7ceef  vp90-00-highway-1600.webm
+fda9c82cb5d28a5ff5f7dae7c537e9187dfbd4cc  vp90-00-highway-1600.webm.md5
+162d42e033dad04fd7ae3bf9d39e9e204c022edc  vp90-00-highway-2800.webm
+b882c93a2dc89feb6090b0f72e67ac8a59fc0986  vp90-00-highway-2800.webm.md5
+79b9a0e6fa6cdd2367228e9ac8d6a369a8d647e6  vp90-00-highway-50.webm
+80ecf926372dbe8c1b4bcd68ea2101f78a93b02e  vp90-00-highway-50.webm.md5
+a67fd02cbb75c1a757b5ea56b9eee46069bfadbf  vp90-00-husky-100.webm
+12cd583e791c8e5b40b5dffe4a9dbcc1929dc645  vp90-00-husky-100.webm.md5
+1a8b4302eb6f88b14a9acd4a6cbe62d0b380f2e4  vp90-00-husky-2000.webm
+a9c2532e5d867d7627bb6767008b43b653cce904  vp90-00-husky-2000.webm.md5
+f56f66afd4d4512a49904275a1c942ba7379fec4  vp90-00-husky-300.webm
+196dc386f104b7b9ed2ec6c6a1f104ce0319c2eb  vp90-00-husky-300.webm.md5
+6ba3c16fd98d37a8de7023419682a3595778b9bc  vp90-00-husky-4400.webm
+2f4815ba97e352fcd0089d1a5883a0aff1e5394a  vp90-00-husky-4400.webm.md5
+db04a296c377693dd6e974bea36256f4b14cddef  vp90-00-husky-800.webm
+7658473ad17ee689a37fda558c5a23816131cfc3  vp90-00-husky-800.webm.md5
+50cf9e34b61e1cf32c9dde2ebcc5f5703c379a41  vp90-00-ice-150.webm
+806ceba91dc40c45eafc4d7ee61df9346c6fe5f9  vp90-00-ice-150.webm.md5
+4cfca1bea7aae6e4405abfca603cfbded13ded1a  vp90-00-ice-400.webm
+e4298abf05419973da89c0bfcdf0006b1606ebcd  vp90-00-ice-400.webm.md5
+12e3ccfdf96c3f4eebeed8106c5daef6c2b28d83  vp90-00-ice-800.webm
+6fb2aacb4d8131dcabaa61a9cd2497cd09854377  vp90-00-ice-800.webm.md5
+124977938c47ba739e918533bc5d6d73e41ce2ec  vp90-00-mobile-1600.webm
+603b2b523c8ed5922121d285567a845bb6693d35  vp90-00-mobile-1600.webm.md5
+93f204b90250791b884479be5da534a5bc6304ff  vp90-00-mobile-2800.webm
+21ec8735b774c66e192f7270c12075f598f700d5  vp90-00-mobile-2800.webm.md5
+fe9cdbfdeee2b7554efb532f646703cff55c2d2c  vp90-00-mobile-400.webm
+4def63c78ee09e90e6385d3122ada95343246102  vp90-00-mobile-400.webm.md5
+2a042aa8a06c45770dcb52c56a7f5cea6d51b8dd  vp90-00-mobile-600.webm
+03169f031dece0db3d89ce16cc3e0ee3eca21065  vp90-00-mobile-600.webm.md5
+7fc5b0b0c684d63e161c9c5932e1374327e15dd4  vp90-00-motherdaughter-100.webm
+290ac7722caf4b15136b307a239c9b903113b9c4  vp90-00-motherdaughter-100.webm.md5
+67ddfce82bff083a1ceb108a7dcfb801791102f1  vp90-00-motherdaughter-300.webm
+7696698d38e32f0afeb3a3e9a45b7fe3f237aaba  vp90-00-motherdaughter-300.webm.md5
+ff65a1bee2fe384728017c5148df61379043d5b6  vp90-00-motherdaughter-600.webm
+f0b167000bf40877d1ba7ba52a08b4310011c032  vp90-00-motherdaughter-600.webm.md5
+d73c54e676bd63424fc9ad8d0cef64e929081cf4  vp90-00-news-100.webm
+71821b71a97823e9ba58563efc841dc6beefe9df  vp90-00-news-100.webm.md5
+2937238d094863951eb8f218438b966d2b7b5430  vp90-00-news-300.webm
+2587d0859a330cf6d8e0a135d1f586bb2a5033fc  vp90-00-news-300.webm.md5
+65afdd4fc411951115b48435b8b65155594b5c99  vp90-00-news-600.webm
+5815bb341db976f44dab97bb9cfba8ea0ca55502  vp90-00-news-600.webm.md5
+de5dd99ac04d3a937fc0951d06fb8f533fdc393a  vp90-00-pamphlet-150.webm
+0381d705fa490f35c772e3048b423b382088d546  vp90-00-pamphlet-150.webm.md5
+46f283284cb64b79243b2ea6aad709a526c26393  vp90-00-pamphlet-25.webm
+f100fbebcad96f27ed8f340414b939bc738d49d0  vp90-00-pamphlet-25.webm.md5
+8df04ece12455c5c40f14cb089348260798c5f2b  vp90-00-pamphlet-400.webm
+66a2c87cd4194368d3477e9a334880b76c87e991  vp90-00-pamphlet-400.webm.md5
+a00e97e4a71f5e24f194c59cde7d41bc2c3af325  vp90-00-paris-1000.webm
+53ef896e16d1b83aa5166945d149c7133401b3f0  vp90-00-paris-1000.webm.md5
+6b03388e0236f6171e20c73834858e3c87b441b2  vp90-00-paris-200.webm
+55a324b0153c5d54cd0c0492fed8755c441fa18c  vp90-00-paris-200.webm.md5
+429ec362a9600c8822652cf7e122e22bca033d69  vp90-00-paris-50.webm
+4406226b7bddb11ede8ee0c442d52e5d3bbbde78  vp90-00-paris-50.webm.md5
+a7996d4e757ea484aa72e14f623d6c9e72537888  vp90-00-signirene-1000.webm
+f65a1ac6e1ce77102e63fb363dbca361b8108c02  vp90-00-signirene-1000.webm.md5
+8c2f686179bc3e87a18b48bcb5058f3cd61e1b4c  vp90-00-signirene-200.webm
+b8ab16cba9392e49169c374eb1e0c1b763ccaefb  vp90-00-signirene-200.webm.md5
+5f8f99c386dce64931bbd4fc42a59a78dc6fdba1  vp90-00-signirene-50.webm
+fdb8c4bc302884d413a256634d3e2fbd92867c90  vp90-00-signirene-50.webm.md5
+d5074f0a5bcefe9fd651afbbebf0e0f3fedb965b  vp90-00-silent-1000.webm
+9c075894fbfb84791fcc7dbd3fcab15b0a9bd64e  vp90-00-silent-1000.webm.md5
+32101f334f675715a8f411638dfda80afacc37a6  vp90-00-silent-200.webm
+fb0dac37f31ca711443832046a6aaf868e69b357  vp90-00-silent-200.webm.md5
+0aaef50d7f94873e99ec7e39f59a6b74e92ad946  vp90-00-silent-50.webm
+be9fc41965b5b63f7c7bbd6c91191e940903e012  vp90-00-silent-50.webm.md5
+5e22ad14c562733d4d4a3ce163b580ed4a64e6fe  vp90-00-soccer-100.webm
+1ca9a0016910cfca26def9944568749a168131d8  vp90-00-soccer-100.webm.md5
+2d9b2a0fa5ac210f8d7c646578698e045733ad4a  vp90-00-soccer-2000.webm
+f979078650057606ca770b3f03be4c509efb40a9  vp90-00-soccer-2000.webm.md5
+7b789360ffc1eb5a3735f8a1f8d248a24ca4267c  vp90-00-soccer-300.webm
+195d33b23ca8304519bd6e38e9657e53a04779d8  vp90-00-soccer-300.webm.md5
+3907318ef35573e4efc5c150d3aff271c7157501  vp90-00-soccer-4400.webm
+4b43ceecae9a9a7d39a47347f9e20af3613827d1  vp90-00-soccer-4400.webm.md5
+c89920aa89194cb6a36f77dff8722573f0df7241  vp90-00-soccer-800.webm
+1da71751009afa483a03e274a538df24c9f5e513  vp90-00-soccer-800.webm.md5
+efca14e8e0515a8f8ed3ded11fdbff24b09a7f9d  vp90-00-stefan-1600.webm
+6f103270ce03cc85b28dd1c86d0447922d810671  vp90-00-stefan-1600.webm.md5
+b99ab6a983d48c15aa3a9160d06286fca0074193  vp90-00-stefan-2800.webm
+986a72dd9988c6bf4246cd5bd966ce991ba55319  vp90-00-stefan-2800.webm.md5
+eb962244ca51a101ad8f585df6be8f5f96691f18  vp90-00-stefan-400.webm
+2747cfd8f74aedc370767f08129b35ace70e1fe7  vp90-00-stefan-400.webm.md5
+b507b8cedd0147c5316db8f84f35ace768c25069  vp90-00-stefan-600.webm
+daeb369046c2dc27ecfde978b87fd8b49d83789f  vp90-00-stefan-600.webm.md5
+c5c2dd891c2b5fe4a70845858ccb859df3455ee7  vp90-00-students-100.webm
+d1be06dc636ece0c34ab8c17399888aaf19e0c19  vp90-00-students-100.webm.md5
+c9e4da3a8b455aa690d89338f32f9d76773cdd18  vp90-00-students-300.webm
+a9aa72e1ee27063f8e9f13b4647cec01c8efb2d6  vp90-00-students-300.webm.md5
+e9e5072cd944a8994e50fce367975e3ce526bd67  vp90-00-students-600.webm
+86525ce188a98a51f86fad27341729bb61d1ca8b  vp90-00-students-600.webm.md5
+58deb053aeafefdfdf13741accf9fcbe4584ea94  vp90-00-tempete-1200.webm
+ec395a2ec76b4c1e64e243366a8840da22ee3a65  vp90-00-tempete-1200.webm.md5
+5d35232eaa8ee149a917ff94536968fb37dad50e  vp90-00-tempete-200.webm
+7f8c7529f40d6b6d6de8e89dbf9697623d27c234  vp90-00-tempete-200.webm.md5
+c44eb147bc3f8682b96096fccef8beb4380c40db  vp90-00-tempete-3600.webm
+01fd23e412530fa2d5319a22886161957a747ee0  vp90-00-tempete-3600.webm.md5
+56ab322b34a750e16dcc8ccfb735a5b9270cedc4  vp90-00-tempete-5200.webm
+1cf803409ae53b991bff10079af4ab07aaa2853d  vp90-00-tempete-5200.webm.md5
+ffe48d52019c228e919f4b123028664b8d0c2f4b  vp90-00-tennis-100.webm
+406fda3367899995d4e37170063495832e2be372  vp90-00-tennis-100.webm.md5
+6c030f8142b1932fbe8eb5c2b39b3452a5eea3aa  vp90-00-tennis-2000.webm
+dcf20921e2a8ab0dcd09f7f6bdcdd35f979205ae  vp90-00-tennis-2000.webm.md5
+3fe0df7b74f301b39e1b21e6926c69a8418b9b70  vp90-00-tennis-300.webm
+80c8301d3a37b33ca50318ba000066a6ae9929dc  vp90-00-tennis-300.webm.md5
+82a2497083b8dce6b1c73bcdf16323ea69d1cca9  vp90-00-tennis-4400.webm
+83ce97bc09a7e1b2f2c3437195a8931d7608a62b  vp90-00-tennis-4400.webm.md5
+2c8bd3a29bbd1085169bfcba9fdf65a37f4a16bb  vp90-00-tennis-800.webm
+9920a65e06d2e7025f13f3d8bf35670503875aed  vp90-00-tennis-800.webm.md5
+26469062c5724c2cc4914436ef032bb55373f843  vp90-00-waterfall-150.webm
+9b86373ce15302a9b22cef8f808ce0e37e6d2b65  vp90-00-waterfall-150.webm.md5
+410ba6af2ddca5110fa7a4c383dc8b28f38cf565  vp90-00-waterfall-200.webm
+251892d3fdcbc9d7a20c22ba202ed4935222e5b8  vp90-00-waterfall-200.webm.md5
+40b643aff88aed3764c5b58c446a8fbbc5fb36d7  vp90-00-waterfall-400.webm
+51f31a6b6408f8af4d107e0f2a3c1a274d4da6bb  vp90-00-waterfall-400.webm.md5
+bd421141e01f53dc15ced790f9a96ab70a613260  vp90-00-waterfall-800.webm
+1366efe772fccaa2b8a6ac3ce45255b312a2ef6c  vp90-00-waterfall-800.webm.md5
--- a/test/test.mk
+++ b/test/test.mk
@@ -30,8 +30,17 @@
 LIBVPX_TEST_SRCS-yes                   += decode_test_driver.h
 LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)    += ivf_video_source.h
 
+## WebM Parsing
+NESTEGG_SRCS                           += ../nestegg/halloc/halloc.h
+NESTEGG_SRCS                           += ../nestegg/halloc/src/align.h
+NESTEGG_SRCS                           += ../nestegg/halloc/src/halloc.c
+NESTEGG_SRCS                           += ../nestegg/halloc/src/hlist.h
+NESTEGG_SRCS                           += ../nestegg/include/nestegg/nestegg.h
+NESTEGG_SRCS                           += ../nestegg/src/nestegg.c
+LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)    += $(NESTEGG_SRCS)
+LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)    += webm_video_source.h
 
-LIBVPX_TEST_SRCS-$(CONFIG_VP8_DECODER) += test_vector_test.cc
+LIBVPX_TEST_SRCS-$(CONFIG_DECODERS)    += test_vector_test.cc
 
 ##
 ## WHITE BOX TESTS
@@ -217,3 +226,223 @@
 LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += vp80-05-sharpness-1439.ivf.md5
 LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += vp80-05-sharpness-1440.ivf.md5
 LIBVPX_TEST_DATA-$(CONFIG_VP8_DECODER) += vp80-05-sharpness-1443.ivf.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-akiyo-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-150.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-150.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-25.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-25.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bowing-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-4400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-4400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-bus-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-1600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-1600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-2800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-2800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-cheer-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-city-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-3600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-3600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-5200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-coastguard-5200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-1000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-1000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-container-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-1000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-1000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-deadline-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-4400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-4400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-flower-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-1600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-1600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-2800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-2800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-football-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-foreman-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-hallmonitor-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-3600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-3600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-5200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-harbour-5200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-1600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-1600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-2800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-2800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-highway-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-4400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-4400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-husky-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-150.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-150.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-ice-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-1600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-1600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-2800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-2800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-mobile-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-motherdaughter-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-news-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-150.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-150.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-25.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-25.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-pamphlet-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-1000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-1000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-paris-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-1000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-1000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-signirene-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-1000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-1000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-50.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-silent-50.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-4400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-4400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-soccer-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-1600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-1600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-2800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-2800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-stefan-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-students-600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-1200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-1200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-3600.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-3600.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-5200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tempete-5200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-100.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-100.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-2000.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-2000.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-300.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-300.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-4400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-4400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-tennis-800.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-150.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-150.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-200.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-200.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-400.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-400.webm.md5
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-800.webm
+LIBVPX_TEST_DATA-$(CONFIG_VP9_DECODER) += vp90-00-waterfall-800.webm.md5
--- a/test/test_vector_test.cc
+++ b/test/test_vector_test.cc
@@ -15,6 +15,7 @@
 #include "test/codec_factory.h"
 #include "test/decode_test_driver.h"
 #include "test/ivf_video_source.h"
+#include "test/webm_video_source.h"
 #include "test/util.h"
 #include "test/md5_helper.h"
 extern "C" {
@@ -22,8 +23,8 @@
 }
 
 namespace {
-// There are 61 test vectors in total.
-const char *kTestVectors[] = {
+#if CONFIG_VP8_DECODER
+const char *kVP8TestVectors[] = {
   "vp80-00-comprehensive-001.ivf",
   "vp80-00-comprehensive-002.ivf", "vp80-00-comprehensive-003.ivf",
   "vp80-00-comprehensive-004.ivf", "vp80-00-comprehensive-005.ivf",
@@ -56,6 +57,66 @@
   "vp80-05-sharpness-1438.ivf", "vp80-05-sharpness-1439.ivf",
   "vp80-05-sharpness-1440.ivf", "vp80-05-sharpness-1443.ivf"
 };
+#endif
+#if CONFIG_VP9_DECODER
+const char *kVP9TestVectors[] = {
+  "vp90-00-akiyo-200.webm", "vp90-00-akiyo-300.webm",
+  "vp90-00-akiyo-50.webm", "vp90-00-bowing-150.webm",
+  "vp90-00-bowing-25.webm", "vp90-00-bowing-400.webm",
+  "vp90-00-bus-100.webm", "vp90-00-bus-2000.webm",
+  "vp90-00-bus-300.webm", "vp90-00-bus-4400.webm",
+  "vp90-00-bus-800.webm", "vp90-00-cheer-1600.webm",
+  "vp90-00-cheer-2800.webm", "vp90-00-cheer-400.webm",
+  "vp90-00-cheer-600.webm", "vp90-00-city-1200.webm",
+  "vp90-00-city-2000.webm", "vp90-00-city-300.webm",
+  "vp90-00-city-600.webm", "vp90-00-coastguard-1200.webm",
+  "vp90-00-coastguard-200.webm", "vp90-00-coastguard-3600.webm",
+  "vp90-00-coastguard-5200.webm", "vp90-00-container-1000.webm",
+  "vp90-00-container-200.webm", "vp90-00-container-50.webm",
+  "vp90-00-deadline-1000.webm", "vp90-00-deadline-200.webm",
+  "vp90-00-deadline-50.webm", "vp90-00-flower-100.webm",
+  "vp90-00-flower-2000.webm", "vp90-00-flower-300.webm",
+  "vp90-00-flower-4400.webm", "vp90-00-flower-800.webm",
+  "vp90-00-football-1600.webm", "vp90-00-football-2800.webm",
+  "vp90-00-football-400.webm", "vp90-00-football-600.webm",
+  "vp90-00-foreman-1200.webm", "vp90-00-foreman-2000.webm",
+  "vp90-00-foreman-300.webm", "vp90-00-foreman-600.webm",
+  "vp90-00-hallmonitor-1200.webm", "vp90-00-hallmonitor-2000.webm",
+  "vp90-00-hallmonitor-300.webm", "vp90-00-hallmonitor-600.webm",
+  "vp90-00-harbour-1200.webm", "vp90-00-harbour-200.webm",
+  "vp90-00-harbour-3600.webm", "vp90-00-harbour-5200.webm",
+  "vp90-00-highway-100.webm", "vp90-00-highway-1600.webm",
+  "vp90-00-highway-2800.webm", "vp90-00-highway-50.webm",
+  "vp90-00-husky-100.webm", "vp90-00-husky-2000.webm",
+  "vp90-00-husky-300.webm", "vp90-00-husky-4400.webm",
+  "vp90-00-husky-800.webm", "vp90-00-ice-150.webm",
+  "vp90-00-ice-400.webm", "vp90-00-ice-800.webm",
+  "vp90-00-mobile-1600.webm", "vp90-00-mobile-2800.webm",
+  "vp90-00-mobile-400.webm", "vp90-00-mobile-600.webm",
+  "vp90-00-motherdaughter-100.webm", "vp90-00-motherdaughter-300.webm",
+  "vp90-00-motherdaughter-600.webm", "vp90-00-news-100.webm",
+  "vp90-00-news-300.webm", "vp90-00-news-600.webm",
+  "vp90-00-pamphlet-150.webm", "vp90-00-pamphlet-25.webm",
+  "vp90-00-pamphlet-400.webm", "vp90-00-paris-1000.webm",
+  "vp90-00-paris-200.webm", "vp90-00-paris-50.webm",
+  "vp90-00-signirene-1000.webm", "vp90-00-signirene-200.webm",
+  "vp90-00-signirene-50.webm", "vp90-00-silent-1000.webm",
+  "vp90-00-silent-200.webm", "vp90-00-silent-50.webm",
+  "vp90-00-soccer-100.webm", "vp90-00-soccer-2000.webm",
+  "vp90-00-soccer-300.webm", "vp90-00-soccer-4400.webm",
+  "vp90-00-soccer-800.webm", "vp90-00-stefan-1600.webm",
+  "vp90-00-stefan-2800.webm", "vp90-00-stefan-400.webm",
+  "vp90-00-stefan-600.webm", "vp90-00-students-100.webm",
+  "vp90-00-students-300.webm", "vp90-00-students-600.webm",
+  "vp90-00-tempete-1200.webm", "vp90-00-tempete-200.webm",
+  "vp90-00-tempete-3600.webm", "vp90-00-tempete-5200.webm",
+  "vp90-00-tennis-100.webm", "vp90-00-tennis-2000.webm",
+  "vp90-00-tennis-300.webm", "vp90-00-tennis-4400.webm",
+  "vp90-00-tennis-800.webm", "vp90-00-waterfall-150.webm",
+  "vp90-00-waterfall-200.webm", "vp90-00-waterfall-400.webm",
+  "vp90-00-waterfall-800.webm",
+};
+#endif
 
 class TestVectorTest : public ::libvpx_test::DecoderTest,
     public ::libvpx_test::CodecTestWithParam<const char*> {
@@ -102,20 +163,28 @@
 // the test failed.
 TEST_P(TestVectorTest, MD5Match) {
   const std::string filename = GET_PARAM(1);
+  libvpx_test::CompressedVideoSource *video = NULL;
+
   // Open compressed video file.
-  libvpx_test::IVFVideoSource video(filename);
+  if (filename.substr(filename.length() - 3, 3) == "ivf") {
+    video = new libvpx_test::IVFVideoSource(filename);
+  } else if (filename.substr(filename.length() - 4, 4) == "webm") {
+    video = new libvpx_test::WebMVideoSource(filename);
+  }
+  video->Init();
 
-  video.Init();
-
   // Construct md5 file name.
   const std::string md5_filename = filename + ".md5";
   OpenMD5File(md5_filename);
 
   // Decode frame, and check the md5 matching.
-  ASSERT_NO_FATAL_FAILURE(RunLoop(&video));
+  ASSERT_NO_FATAL_FAILURE(RunLoop(video));
+  delete video;
 }
 
 VP8_INSTANTIATE_TEST_CASE(TestVectorTest,
-                          ::testing::ValuesIn(kTestVectors));
+                          ::testing::ValuesIn(kVP8TestVectors));
+VP9_INSTANTIATE_TEST_CASE(TestVectorTest,
+                          ::testing::ValuesIn(kVP9TestVectors));
 
 }  // namespace
--- /dev/null
+++ b/test/webm_video_source.h
@@ -1,0 +1,184 @@
+/*
+ *  Copyright (c) 2012 The WebM project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+#ifndef TEST_WEBM_VIDEO_SOURCE_H_
+#define TEST_WEBM_VIDEO_SOURCE_H_
+#include <cstdarg>
+#include <cstdio>
+#include <cstdlib>
+#include <new>
+#include <string>
+#include "nestegg/include/nestegg/nestegg.h"
+#include "test/video_source.h"
+
+namespace libvpx_test {
+
+static int
+nestegg_read_cb(void *buffer, size_t length, void *userdata) {
+  FILE *f = reinterpret_cast<FILE *>(userdata);
+
+  if (fread(buffer, 1, length, f) < length) {
+    if (ferror(f))
+      return -1;
+    if (feof(f))
+      return 0;
+  }
+  return 1;
+}
+
+
+static int
+nestegg_seek_cb(int64_t offset, int whence, void *userdata) {
+  FILE *f = reinterpret_cast<FILE *>(userdata);
+  switch (whence) {
+    case NESTEGG_SEEK_SET:
+      whence = SEEK_SET;
+      break;
+    case NESTEGG_SEEK_CUR:
+      whence = SEEK_CUR;
+      break;
+    case NESTEGG_SEEK_END:
+      whence = SEEK_END;
+      break;
+  };
+  return fseek(f, (long)offset, whence) ? -1 : 0;
+}
+
+
+static int64_t
+nestegg_tell_cb(void *userdata) {
+  FILE *f = reinterpret_cast<FILE *>(userdata);
+  return ftell(f);
+}
+
+
+static void
+nestegg_log_cb(nestegg *context, unsigned int severity, char const *format,
+               ...) {
+  va_list ap;
+
+  va_start(ap, format);
+  vfprintf(stderr, format, ap);
+  fprintf(stderr, "\n");
+  va_end(ap);
+}
+
+// This class extends VideoSource to allow parsing of WebM files,
+// so that we can do actual file decodes.
+class WebMVideoSource : public CompressedVideoSource {
+ public:
+  explicit WebMVideoSource(const std::string &file_name)
+      : file_name_(file_name),
+        input_file_(NULL),
+        nestegg_ctx_(NULL),
+        pkt_(NULL),
+        video_track_(0),
+        chunk_(0),
+        chunks_(0),
+        buf_(NULL),
+        buf_sz_(0),
+        frame_(0),
+        end_of_file_(false) {
+  }
+
+  virtual ~WebMVideoSource() {
+    if (input_file_)
+      fclose(input_file_);
+    if (nestegg_ctx_)
+      nestegg_destroy(nestegg_ctx_);
+  }
+
+  virtual void Init() {
+  }
+
+  virtual void Begin() {
+    input_file_ = OpenTestDataFile(file_name_);
+    ASSERT_TRUE(input_file_) << "Input file open failed. Filename: "
+        << file_name_;
+
+    nestegg_io io = {nestegg_read_cb, nestegg_seek_cb, nestegg_tell_cb,
+                     input_file_};
+    ASSERT_FALSE(nestegg_init(&nestegg_ctx_, io, NULL))
+        << "nestegg_init failed";
+
+    unsigned int n;
+    ASSERT_FALSE(nestegg_track_count(nestegg_ctx_, &n))
+        << "failed to get track count";
+
+    for (unsigned int i = 0; i < n; i++) {
+      int track_type = nestegg_track_type(nestegg_ctx_, i);
+      ASSERT_GE(track_type, 0) << "failed to get track type";
+
+      if (track_type == NESTEGG_TRACK_VIDEO) {
+        video_track_ = i;
+        break;
+      }
+    }
+
+    FillFrame();
+  }
+
+  virtual void Next() {
+    ++frame_;
+    FillFrame();
+  }
+
+  void FillFrame() {
+    if (chunk_ >= chunks_) {
+      unsigned int track;
+
+      do {
+        /* End of this packet, get another. */
+        if (pkt_)
+          nestegg_free_packet(pkt_);
+
+        int again = nestegg_read_packet(nestegg_ctx_, &pkt_);
+        ASSERT_GE(again, 0) << "nestegg_read_packet failed";
+        if (!again) {
+          end_of_file_ = true;
+          return;
+        }
+
+        ASSERT_FALSE(nestegg_packet_track(pkt_, &track))
+            << "nestegg_packet_track failed";
+      } while (track != video_track_);
+
+      ASSERT_FALSE(nestegg_packet_count(pkt_, &chunks_))
+          << "nestegg_packet_count failed";
+      chunk_ = 0;
+    }
+
+    ASSERT_FALSE(nestegg_packet_data(pkt_, chunk_, &buf_, &buf_sz_))
+        << "nestegg_packet_data failed";
+    chunk_++;
+  }
+
+  virtual const uint8_t *cxdata() const {
+    return end_of_file_ ? NULL : buf_;
+  }
+  virtual const unsigned int frame_size() const { return buf_sz_; }
+  virtual const unsigned int frame_number() const { return frame_; }
+
+ protected:
+  std::string file_name_;
+  FILE *input_file_;
+  nestegg *nestegg_ctx_;
+  nestegg_packet *pkt_;
+  unsigned int video_track_;
+  unsigned int chunk_;
+  unsigned int chunks_;
+  uint8_t *buf_;
+  size_t buf_sz_;
+  unsigned int frame_;
+  bool end_of_file_;
+};
+
+}  // namespace libvpx_test
+
+#endif  // TEST_WEBM_VIDEO_SOURCE_H_
--- a/vpxenc.c
+++ b/vpxenc.c
@@ -1759,6 +1759,7 @@
     else
       argj++;
   }
+global->limit = 50;
 
   /* Validate global config */