/* * Copyright (c) 2018 Intel Corporation. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /* * it is a real program to show how VAAPI decode work, * It does VLD decode for a simple AVC clip. * The bitstream and VA parameters are hardcoded into avcstreamoutdemo.cpp, * * ./avcstreamoutdemo : only do decode * ./avcstreamoutdemo : do decode and dump mv info * */ #include #include #include #include #include #include #include #include #include #include #include "va_display.h" #include "avcstreamoutdemo.h" #define CHECK_VASTATUS(va_status,func) \ if (va_status != VA_STATUS_SUCCESS) { \ fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \ exit(1); \ } /* Data dump of a 176x144 AVC video clip,it has one I frame and one P frame */ static unsigned int avc_clip[] = { 0xce20b865, 0xe2201c0f, 0x9a80c737, 0xd10130c0, 0x73f8f26f, 0xfe2e0af8, 0x04bd8666, 0x333fbfb3, 0x901da37e, 0x870d050c, 0x5f46568d, 0x2fe68e2c, 0xbf626f46, 0x7c4802a3, 0x67b0548c, 0x22681c1e, 0x463bc0f9, 0x815f2161, 0xd6c26c9b, 0xb2c4947a, 0xf3f7a999, 0x96d4baca, 0x25cd0004, 0x8fbf7436, 0xfecb7777, 0xecf7effb, 0x0d601808, 0xc86f92ad, 0x6f696b03, 0x2c7dfec0, 0xd2e474bf, 0x0712e10f, 0xfd73d1bb, 0xe8ac0192, 0x5402e397, 0xefb811a8, 0x2fdc9380, 0xed7889f5, 0xffef7fa7, 0x5845ebdd, 0x6d4a203b, 0xd20170f2, 0xebfb6c61, 0x34a81afd, 0x67d9621f, 0xf2479fb8, 0x9fb91701, 0x336d9ca9, 0xc0f33b12, 0x30f5b60d, 0x7d46b674, 0xdc37fa2a, 0x77f74f31, 0xf9777272, 0xba7f8417, 0xc65e0a90, 0xdee83735, 0x037fb352, 0x5e8ac257, 0xf09bae14, 0x23045f14, 0x98f017ef, 0xe89c3716, 0xab6ed611, 0xe1bd7afe, 0xcb981698, 0x4d2a8484, 0xbbffa532, 0x01fcf2ef, 0xc7c61893, 0x24fcd3af, 0xc44d6102, 0xe331fac2, 0x90c48fe4, 0x2afe651f, 0x687883b8, 0xc1081535, 0x6dd11ffd, 0x34d17afe, 0x4bfb259d, 0x9d668b08, 0x1ee539b1, 0x702e67e7, 0x3ec8165f, 0xffc7ffdf, 0xdca08c1b, 0x814dcc2a, 0x558175a4, 0xce4d0478, 0x4b7edf3c, 0xdc6754ae, 0xb6ee10f9, 0xe7ccebff, 0x1180fde7, 0x029bcc24, 0x969de939, 0xc82154b4, 0x8956a0b3, 0x23b417c8, 0x33ad0fc4, 0xf600c2fa, 0xebc01f2c, 0x75329274, 0x746784bf, 0x82b7f83f, 0x7bbc6334, 0x9ee79fbf, 0x04803e75, 0xf768ca7d, 0x2f31e193, 0x863f9705, 0x403723bc, 0x8f7de430, 0xd952d29f, 0xcb5664b7, 0x2f0b837d, 0xd1dbf1b1, 0x8aa719e1, 0xaf0f3b6e, 0x33ef4fab, 0x427dbece, 0x6a411576, 0xb52ab370, 0x117076b1, 0xc6cd9fb2, 0xdf0d735a, 0xd62dc750, 0x867f7d77, 0xc0ddd65c, 0x88add368, 0x2f69188b, 0xc3042484, 0xf51de774, 0xe7f4bccc, 0x09c03d33, 0x3a4892e1, 0x56e7ed85, 0x10812358, 0xc8c93b1e, 0x4081bd67, 0x53041322, 0xa768c215, 0xdf387cbb, 0xfcf85fe3, 0x33c8e4ed, 0xcc6affa6, 0x0e901eef, 0xf23b9d0d, 0xfdfc7ce6, 0x72c45266, 0xd81f810e, 0xda1ad42d, 0xc34e8cac, 0xf7d16413, 0x993d01d0, 0x0dc2404a, 0x0ad3ae3a, 0xff632898, 0x4c99ac02, 0x3cc161e8, 0x744a1c0a, 0x26af3299, 0x40aeda72, 0xb90b7b6c, 0x0ee97185, 0x30d4f777, 0xf73fd6dd, 0xe1160a36, 0x6a97bb07, 0x9e8601ec, 0x6f2db153, 0x8e8f0fb2, 0xfa296973, 0xfd2fd1f6, 0xab289081, 0x0460f415, 0x1019999e, 0xe709e77e, 0x09985e94, 0x0eeeb71f, 0x1716b05f, 0xaf9102e9, 0x10dea4e4, 0xe897ea85, 0x3964c91b, 0xeef1ff19, 0xff1777ef, 0x6d004ae4, 0x1d2460b6, 0x097c827f, 0x74486026, 0xb4da67d8, 0xf10993fe, 0x76becf26, 0xad78198a, 0xeb661d02, 0xe61d8d6f, 0x4dc6706f, 0xdd0e4844, 0xfae17f21, 0xd2b13a4a, 0x77ff7ed2, 0x1bfff2c9, 0x40fbd645, 0xf3d667f9, 0x92bc91ee, 0x0cdfac03, 0xaa7ffa3b, 0x20568aad, 0x76dcaa3e, 0x5fe050f3, 0x414722f7, 0x7eff8356, 0xc81a7e3b, 0x04e007d3, 0x2e5df61f, 0xe06e17ac, 0xe8596902, 0xf16f4262, 0x031c78b9, 0x019e293c, 0xfffffbeb, 0xc74d76f4, 0xf94cafe0, 0xfefcbf2f, 0xacf17f7a, 0xffef675f, 0xd69e3925, 0x81f8d945, 0x7fe0ffed, 0x475b91a5, 0xe06d6ae2, 0x9e78df7b, 0xdfba91f9, 0xb1afc0cf, 0x35a2a66a, 0xd73fffff, 0xdd3a2dec, 0x36ae9de1, 0x7fa517ec, 0x810e9a72, 0x19c4d939, 0x38db0ddc, 0x780af7c0, 0x867dee5a, 0xba02b876, 0xbb3beb56, 0x5cc67f9a, 0xd24fd0dd, 0x2744f71c, 0xc300cac5, 0xf8dbbaef, 0xab12c7c0, 0xdbedecca, 0x9c5fee7f, 0x57c5e472, 0xcf76bdbc, 0x0ac3988d, 0x7f78bb65, 0xbdc8edfe, 0x3fbd0b18, 0xff4fc78f, 0x99bb40fd, 0xe13b3e1f, 0x78694f71, 0x708f2607, 0x871cbf1f, 0xbdaf871b, 0xfe9aab6f, 0x18dc1966, 0x34c5e7fb, 0xf5e0e074, 0x33b039d5, 0x233335d8, 0xc3d0b980, 0xb80b65e0, 0x3822dc23, 0x003ade43, 0x01d8ac36, 0xdf5b05c8, 0x8398b04d, 0x64f897ca, 0x7326c561, 0x78693f52, 0x6a3c9944, 0x2ab7b794, 0x46d9da00, 0x657f14fc, 0x4081f3a7, 0xe24f6f25, 0x70178f38, 0x93bfd777, 0xfadb0c20, 0x2680fb3e, 0x4d6732c6, 0x4da23e83, 0xd1918b7f, 0xc0a9c69a, 0xa179e658, 0xbf06b5d5, 0x447cdb01, 0x8f444fd9, 0xefdf22e8, 0xbd8bd81d, 0xf58b2bdf, 0xfcc281cf, 0x0afa47c1, 0xfd49d1da, 0x31a31d70, 0xa81c7e67, 0xe7c8a72f, 0xab47e77f, 0x8474712b, 0x1d227828, 0x1fc5fb57, 0x2e3d71ff, 0x1462a01b, 0xfccb751f, 0x3fffbe5d, 0x9311d216, 0x3f8cb07c, 0xf0b2d2ce, 0xb0a47e0e, 0xf0678201, 0x7d0864a5, 0x35667c52, 0xdeef637b, 0x5efc1ac0, 0x80ffff85, 0x0274ca62, 0xfffbe743, 0x11e0bbff, 0xd570faf5, 0xa94be585, 0x3a48fb01, 0xc0395410, 0x3d719e39, 0x15db1d12, 0x0003fc7f, 0xa6b16687, 0xa3ca61aa, 0x2535153a, 0x51c37db5, 0xc232f1e9, 0x5e3659c6, 0x2f64ca2a, 0x163d0780, 0xfd2a286d, 0xc540fdf7, 0x25463f4b, 0x1265a928, 0x2ab51d96, 0xb5728bf2, 0xd8eee02c, 0xd491feab, 0x68f8ee63, 0x2c8f1500, 0x6a34f537, 0x6c36c895, 0x5c26c2f1, 0xfe87e52e, 0xe787f91b, 0xb29f838a, 0xfc6fabb8, 0x126cfdf5, 0x0175743c, 0x06707ac0, 0x853476fc, 0xef97c00e, 0xf040a1a8, 0x0000c78b, 0x9fed36c4, 0xc8873faf, 0xc142e469, 0xcca3c8e7, 0xebaf33f3, 0x2393b97a, 0x8a1f0200, 0x5e338d95, 0x186cbc1f, 0xf87d5e1a, 0xa8e13f6b, 0xd7ba4939, 0x9256cd3f, 0xf7e82b1b, 0x31c0e7c2, 0xab29c0bb, 0x7dfd2dd7, 0x55bc0597, 0xbb76a3a4, 0xe9aebd0f, 0x67de1caa, 0x81fad799, 0x78ec09df, 0x0080b663, 0x775e930d, 0x609fa261, 0x6085fc7e, 0x4e85f507, 0xfe63dc41, 0xaf0cb8b3, 0xbbfe6196, 0xa05f50b9, 0x8773e430, 0xd9cae9c5, 0xf89410d0, 0x60c7bd0f, 0x00ef20e0, 0x42c0c60f, 0x5c0b6386, 0x0bf94687, 0x47d9caf3, 0x08e4a0b0, 0xe2bd962d, 0xbe396c0d, 0x192d9d1e, 0x762b0f6d, 0x54fac4bf, 0xd0217f05, 0x707815e1, 0x8d019a22, 0x1bb568fc, 0xff8fff6b, 0x0b4131ab, 0xc634f068, 0xfb10ab38, 0x7e594aed, 0x076809c1, 0x60463d03, 0x9ecbdd35, 0x831f29a3, 0x19c9ab6f, 0xccfef7ba, 0x70f39baa, 0x820468cf, 0xfdb7cba4, 0x102ede81, 0x5b08f7b8, 0x07e52b6d, 0x01117874, 0x224f60d3, 0x131afe40, 0xcff0170a, 0x990b8a4f, 0x84301f81, 0x73f0f96e, 0xc0e47ac0, 0x327aa40b, 0x58e0c4f9, 0x40f06018, 0x4118a1dd, 0x6e20b440, 0x245599e2, 0x9f5a302b, 0xff1dffbf, 0xbe2bc7bb, 0xd4e45524, 0x828a07c5, 0xad4acee9, 0x99464a3c, 0xdbd7c8f2, 0xa278f036, 0xbe5d8e0f, 0x216281d7, 0xa7e34032, 0xfe7ff547, 0x2ecfea3f, 0x0cfa8e9c, 0x351707b5, 0xeb6e8bd8, 0xfa65f513, 0xfa450a54, 0x9cbac6f0, 0xd42d43f0, 0xcb789f9f, 0xafa0065a, 0x88f28df2, 0xc987941f, 0xb04fad8f, 0x56b14071, 0xe045a7aa, 0x3b21fcd7, 0x965ba86b, 0x69b0d76c, 0xd470cba5, 0x8cf09d70, 0x57b940f1, 0xcbd47c99, 0x199e0eca, 0x8c33706b, 0x0567c5b7, 0xae6f25c4, 0xf9e47feb, 0xd63307dd, 0xb83a9f40, 0x1399d904, 0xa44dab8f, 0xddfd1d0e, 0x1156dcbf, 0xfbc5ce3d, 0xc0b7cdf4, 0xff9c274c, 0x3fff5bad, 0x1b47900d, 0x6b6580b9, 0x0b360507, 0x8a163f9a, 0x64f4de35, 0xf33c5f31, 0x6dfbb9fc, 0xe06a1a87, 0x45a38eff, 0xf0e81958, 0x43ab8b18, 0x0ff3eee1, 0xee0e449a, 0x3c4fdf0a, 0xd11ea5fe, 0x9a7ee9ac, 0xfa3a357d, 0x277a5a1a, 0x77c33953, 0x39670426, 0xebf40750, 0x6aebf480, 0x7ebec755, 0x21b0ba22, 0xbedd8cee, 0xa331dfc7, 0x20c85bf5, 0x800f6178, 0xdfbf8300, 0x24e0452e, 0x1ff84d1d, 0xfc8e85fd, 0x82403363, 0x257b44d1, 0x808be3b9, 0x4e2053bc, 0xaf03ef8a, 0xf3cf13a0, 0x462a2382, 0x15fbff83, 0xbbff562b, 0xba9ee3ee, 0x63da06e0, 0x35751d32, 0xa0d865b9, 0xfca61624, 0x93644586, 0x91391564, 0xd740e40b, 0xb63413fc, 0x58fecab5, 0x614b4355, 0x425f5fd8, 0xff21d271, 0x3ee7cf1c, 0x0565b01d, 0xb8f708ee, 0x00ea1f8f, 0x811ac6bb, 0xe8dd030e, 0x82477eb2, 0xe3057f87, 0x73198c0c, 0x8b8c25b8, 0xaebe5b07, 0x62c37b70, 0x310038e6, 0xf387abfe, 0x2f56d0f0, 0x62973951, 0xf5d7e120, 0x9ef0ad03, 0x0300ae73, 0x1200d8a1, 0xb9de1fa5, 0xec6e1b49, 0xaf6a474d, 0x8f6e73a9, 0x2f3c1ea4, 0xf17b338d, 0x7c84fdbe, 0x304b3dd4, 0xb18c353d, 0xf480c296, 0x021dd212, 0xcba1311e, 0xe6704130, 0x2a746867, 0xceb1837b, 0xf7a6083a, 0x31b7ea0b, 0x16e85c87, 0x2a3b6f8b, 0xd32ceafc, 0x6c65b50c, 0x0fbbbc9f, 0xb8989bf9, 0x5d8ff430, 0x8d2fe056, 0x1db5dc41, 0xe889e100, 0x0b213b54, 0xa5df3135, 0x0a1ea40e, 0xc2d2e58c, 0xfd0f97a3, 0x0ff398a5, 0x2ad4a9c3, 0x21a09658, 0x589b651e, 0x00bb23bc, 0xedaa0001, 0x66d4d424, 0xfe3c2d7d, 0xe9984611, 0x1695af96, 0xd42e03c9, 0x9d53f081, 0x3fe78443, 0x66ebb469, 0x118f10b1, 0x90d5ffc7, 0x6ca5c66e, 0x4863b900, 0xbe78d881, 0x6cc0ead5, 0x04ce834b, 0xf54a17ca, 0xa7f3cceb, 0x3e57ef99, 0xfadb00bb, 0x90c9a3f4, 0x7fa12804, 0x26ba3ee8, 0xd927fd8d, 0x01c0fffb, 0x22291ead, 0xf3df78fd, 0x4b9b4740, 0xc03f69a8, 0x6e99757a, 0x19d687a1, 0xb4e3f46b, 0x173f7e59, 0xc69f67fe, 0x6f200840, 0xe7b983d0, 0x2ff4d5ee, 0xff834946, 0xbabb60c7, 0x77feded7, 0x8084a0d3, 0xe1c3fd97, 0x0c80ba0c, 0xca03a602, 0x05e403e0, 0x79047705, 0x787bf9f0, 0xb75155d5, 0x0123773e, 0x83fed0bf, 0x6d38c0ab, 0x2f42e2c4, 0x1bd8ecec, 0x860198aa, 0x009f070d, 0x8172f029, 0xedbb259d, 0x2e34fda6, 0xc99aaa5e, 0xd5ddb1f2, 0xb552aa7a, 0xef9a83d4, 0x4f68c803, 0x55abf304, 0x3a5cacdc, 0x623a76dc, 0xe81a81be, 0xfd16f994, 0x38225b1c, 0x2a23f299, 0x17ff0056, 0x18440add, 0xd63ab951, 0xc84961b5, 0x2c9e145a, 0xe63c49f0, 0xff5f470b, 0xb79ddaf5, 0x43489f15, 0x2dcb65cb, 0x3fc16188, 0xbf60c2ed, 0x403db2b4, 0x55e162c1, 0x03d1f128, 0x53438d80, 0x9377cbf9, 0x6b25eced, 0xa9e782e3, 0xfaf31770, 0x17f34571, 0x71757eb9, 0xb0684b05, 0x4c05217c, 0xc0610f4f, 0x3d241f61, 0x2a1d22b4, 0x6e2dcd9a, 0x5cdaa1c2, 0x944fd6c7, 0x8dffaf33, 0xaba5f39d, 0xbbec1176, 0x5b2d30fd, 0xc548d759, 0x8de1706e, 0x2f944eff, 0x2d7a9d21, 0x5ccfb55e, 0x98bae6eb, 0xce30644f, 0xbba7ecea, 0x1795612b, 0x79f8a0bb, 0x47590d1e, 0xdddb1fbd, 0x2285fa64, 0xa887d19c, 0xa366d6db, 0xa7f5115d, 0xf3eb77f1, 0x87e975fd, 0x1b37e3be, 0xf1b28fd7, 0x0cca3c84, 0x3b585b77, 0xffed0f84, 0xcffafb4d, 0x55eef939, 0x1913d09c, 0x3cbb015d, 0x3c711405, 0xb7d1eb83, 0x351b2977, 0x3c29ffc6, 0xcfe17f08, 0x9933e8c9, 0xe1e977af, 0x7cd0abde, 0x217c089d, 0x3d984aff, 0x8e0d84b1, 0x14b65cbf, 0x5fc78204, 0xf887301b, 0x29fc5a95, 0xca461180, 0xc95e57cc, 0xf3a8ae43, 0x7fa419ee, 0xd23f4dfb, 0x9613aa9a, 0x2a4832bb, 0x45c673cf, 0xf98c0964, 0xf12b2536, 0xae5f23b6, 0xade10f3a, 0xbf83df4d, 0xeb624887, 0x3ca49513, 0xa42c323e, 0xcc947d79, 0xa6995591, 0x3acba047, 0x5e18a52a, 0x7ffff7af, 0xf51af0f8, 0xcd4cf1ad, 0x57aa1e87, 0xe5a4e2b6, 0x6293f3a8, 0x8e55277b, 0x00867b3a, 0x7091fff8, 0xe6a1b028, 0x6242f52e, 0x743134aa, 0xa2dea374, 0xfe6a50b2, 0x4fcc01d1, 0x5b1747c2, 0x123a6b54, 0x0a0ef5ff, 0x657521b2, 0x1573ba20, 0xf95f20e2, 0xdffe0d52, 0xa13efd9d, 0x850c7355, 0x97a7a984, 0xaab1ef1c, 0x7cffc97b, 0xf07d161a, 0xfea255e9, 0x7063ae85, 0x638b1bd6, 0xe42de373, 0xe768dfed, 0xcc3f36fc, 0x2f49c9a1, 0x0c3f835a, 0xf0c2d154, 0x09fe486b, 0xa671fc31, 0x2cc6e185, 0x58ebcf87, 0xddfd014f, 0xd34f5b9c, 0x38b03e4d, 0xe30f4aa9, 0x3d8d2b95, 0xc653e7a9, 0x8d1bb0be, 0x39b48e3b, 0x75db048a, 0xfd271719, 0xc6aee30b, 0x764f3b5f, 0x49af5dc6, 0x5b0ad27e, 0xdf5c4f48, 0xa37a5960, 0x6b0265fb, 0xeb1f3e82, 0x0080a29e, 0xc9ddb580, 0x03e0f58e, 0x015b824b, 0xd7ef3c1a, 0xcac0ba6a, 0x5fd637c0, 0x5e788dcc, 0xb1f357f7, 0x7c8c00c0, 0x00358029, 0x01b00001, 0x04c04362, 0x0034300c, 0x720f8009, 0x0018a0c3, 0xa7ed30b7, 0xcf4656e1, 0xc0001d4a, 0x4087b907, 0x7fee0130, 0x30850e18, 0x581f04f7, 0xf7ff4fe2, 0xa7eafffc, 0x1a1abe05, 0x05c28450, 0xb55b9d5d, 0x5f68e3be, 0x0efd89fb, 0x1d1ede9f, 0xc279a19a, 0xad84a7a3, 0x286e25db, 0xa4355b05, 0x87d8929d, 0xe55a7c2c, 0xdc6df083, 0x88660cfd, 0x7fc07f80, 0xe8d62196, 0x826e2e98, 0x3f2bfb39, 0xb8a9f3ef, 0x2260845d, 0x3423e62e, 0x66e4fe31, 0x7f906912, 0x8bd7457d, 0xb7cdf7d3, 0xfcdaf6a6, 0x9ee86b3d, 0x1f5ffff7, 0x780b18cc, 0x65a00148, 0x3bbf9458, 0x0aefa58a, 0xae667dab, 0x67c55f4f, 0x8179beae, 0xe6540dd2, 0x1ccf7242, 0xea6ecb03, 0xc28c9c31, 0xbb9c572e, 0xc01f2e2f, 0x9a25437b, 0x558cb675, 0xc63b4ed3, 0xe06e27df, 0x4e2e9860, 0x17acea7d, 0x06b3ba66, 0xebd649d3, 0xe4e1e154, 0xd8136b0d, 0x03271324, 0x9312523a, 0x156fb44c, 0xc373a266, 0x160e75fd, 0x78901c88, 0x4886060d, 0x5eb9cc39, 0xa9638e64, 0xcff5459c, 0x19e27288, 0xe1ff3086, 0x7e3c8237, 0x05360904, 0xf85bfdc5, 0xfc8e5a87, 0x00308555, 0x7769e6db, 0x20ecf60f, 0x1b86a7ab, 0xed75ab8d, 0xeb7f9dfa, 0x08e2a968, 0x4bb34bc7, 0xf8d9196d, 0x31d38fed, 0x46eae5cc, 0x66e1307f, 0xfd06d5c1, 0x850cb4bd, 0x241b2ca1, 0x8f165563, 0xf54153f6, 0x70859632, 0x253fd04a, 0x1d92ff52, 0x7cfff1ff, 0xdbc68964, 0x0f529b8f, 0xeb87f565, 0x8d0e4fc1, 0x8a6794c8, 0xa009a7bf, 0x1d7fcab8, 0x75366b1c, 0x262d12a6, 0xd6bb8ea6, 0xc0d04d04, 0xcae9372f, 0x4bfd620f, 0x784fcd03, 0x5fc381e7, 0x5407a7cb, 0xf53ef71a, 0x3ea5444f, 0x63ebab0a, 0x9a0a235c, 0x87d06a9d, 0x80083f84, 0x7f78b799, 0x6dbcd25d, 0x2931eca4, 0xb8207992, 0x9b977ef8, 0xceb13371, 0x5eea7b95, 0x98a645d1, 0x3c95803a, 0x4214b96b, 0x3579f578, 0x359face1, 0xafa271ff, 0x3711867d, 0xdaa6fe67, 0x47c9327a, 0x4dd2f2c7, 0x064ecee6, 0xf3ef46c9, 0xfb68220e, 0x2fac397e, 0x1ee4833b, 0x0fb095d4, 0x99783a34, 0xbaea518d, 0x7e3ca108, 0xac7f78ed, 0xb01d3047, 0xf604f3f0, 0x4a94c55a, 0xfd79eeee, 0xc67ca16e, 0xe6f5135f, 0x16e9b79f, 0x1adcdf96, 0xfaac3832, 0x0002d8e6, 0xebe827dc, 0x1c9a05fd, 0x7b9a31b0, 0x21b0ab43, 0x655a804d, 0x4009c0de, 0x00a78220, 0x2b0b1e82, 0xdca9f261, 0x2bd0600d, 0xff108c07, 0x255f71fa, 0xb4c6ebaa, 0xb6369990, 0xbe3f6734, 0xe18825e2, 0x68d703fa, 0xf375a581, 0x59958df1, 0x0bf5d392, 0xad198111, 0x721ec4a1, 0x3eebdeab, 0x05c70fd8, 0x065c4714, 0x02a0700f, 0x1e921f28, 0xf8ff9482, 0x00cdff8e, 0x081faaaa, 0x4b975aed, 0x2b6614b8, 0xdd153273, 0x317c31fd, 0x53db04ef, 0x619dfd21, 0x726bbca3, 0x644edce2, 0x80427a3a, 0x82678020, 0x30ed6e49, 0xf19f7347, 0x777d8c71, 0x8dc3798e, 0x3ddaa2ce, 0x5a8e0701, 0xf3fd63ce, 0xc5ebcc81, 0xc58fecd1, 0x2e0e8159, 0xe51825ed, 0xeb90026f, 0xb60a23c4, 0x2c4bf31d, 0xa01a8ecf, 0x5190fdcc, 0x252a333a, 0xc0f788b6, 0x89389863, 0x923d4460, 0xfce7d02e, 0xe2fb27c1, 0xe26b6c4e, 0x80e70ea1, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 }; static unsigned int avc_clip1[] = { 0xbbd2e141, 0xe764a8bc, 0x0c0880d5, 0x38bb0a6e, 0x0a6b07f7, 0x77ac6065, 0x040c94ff, 0xce15704a, 0xc989f061, 0xfaf82117, 0xcbad5945, 0x6d9daaa6, 0xdd878959, 0x1a5f2e3b, 0x1e5ec361, 0x8b007c0f, 0xbf471eed, 0x90b139ae, 0xc600f07a, 0x85ee5242, 0xed995482, 0xff6f5b9d, 0x010bc02d, 0x40256504, 0xd810fd3f, 0x30bef589, 0xadf21133, 0x0f66f6fa, 0x51c215c2, 0x872e3481, 0x000bf079, 0xa6e50c33, 0xb81cdddc, 0x95404536, 0xd7e8c5f7, 0x84186434, 0xa9cf3bac, 0xdc387cd1, 0x53823ab3, 0xa005736c, 0x290c7fac, 0x5864641d, 0xebcc3506, 0xedbb5d60, 0xc75c5efc, 0xa5b71787, 0xee7b5ebd, 0xf734ef39, 0xa67e78da, 0x82fa42de, 0x3810868d, 0x2c7a38c8, 0xc65f96ff, 0x72673187, 0x07d7a30a, 0x16ff9818, 0x507ce850, 0x1b24d0be, 0xc3e3509e, 0x09f625ec, 0xfee00bc5, 0xfee0208d, 0x256524c4, 0x830b1383, 0x7c3f40c7, 0x5ca61d8d, 0x7134c076, 0x957b0e0c, 0xc6c758cf, 0x610b8f5f, 0x47814301, 0xf8c6c05b, 0x5a6c2fa6, 0x4f78c2ca, 0xeec6d9c0, 0x23b7843b, 0x72f1eff5, 0x80760900, 0x3f1df421, 0xf12fc10f, 0x3a38121e, 0xeeb89aed, 0x1f1913eb, 0xcbb31871, 0xd4d5fd78, 0xce3f5aa3, 0x5334bea8, 0x7094c330, 0xff019653, 0x61e02683, 0x3f855c97, 0x1e7e1e7e, 0xc7189434, 0xf0f221da, 0xd408b533, 0x84edd41e, 0x3b840ec4, 0x216f3ff7, 0xc43ea988, 0x732310c5, 0x774d0ed2, 0xc7da7677, 0xbb99751c, 0xdef758ea, 0xa08030c5, 0x194fb88c, 0x5d2cdf01, 0x31883f9e, 0xd88040da, 0xca5193f2, 0xe14b4d4a, 0x121a8a03, 0xa6fe32ce, 0xc76f64e6, 0xf72b760b, 0x32b1ca76, 0xde807e6c, 0x0bc27b7f, 0xd14d0204, 0xe4d7f39d, 0xb2d40890, 0x2c7b0080, 0x01640a31, 0x7828377f, 0xd0b57923, 0x7a8e81ee, 0x1ea59e1d, 0xd32905e5, 0x51103cf9, 0x0822a87d, 0x9fc886b9, 0x27aaa526, 0xc4c25a0c, 0x39eff6d1, 0x42be2114, 0xb1e0be80, 0x71551a96, 0x65ec526e, 0x5254683a, 0x2f53a761, 0x817c79c5, 0x22605079, 0x7b32b62b, 0xf94d4576, 0xf83c836d, 0xf35ca5ae, 0x48385aa1, 0x03ec899f, 0xbf3cb34a, 0x28292c12, 0x2b322a70, 0x3a8920e1, 0x0d04313b, 0x92b96796, 0x2264d217, 0xa175f3dd, 0x477af378, 0xf3d7cc31, 0x742867ff, 0xe04c2a32, 0xbfbdf54c, 0x78c04b0c, 0x8887a4f1, 0x77b63003, 0x7d45a0df, 0x41ec95db, 0xa6508183, 0x58343aaa, 0xca8380c1, 0x8bda0563, 0x853a1b72, 0x0525d346, 0x9790cbe7, 0x30881bb6, 0xaa6fc729, 0xd36cfbd4, 0x8d76b7fa, 0x29a871d5, 0xdae527bd, 0x3030e020, 0x8bcf8ab7, 0x61cb2f97, 0x13846041, 0x4ecde00c, 0xdef0ff00, 0xb71fa71b, 0xec2f31be, 0xe9520c24, 0x80459473, 0x30300658, 0xa3805ad8, 0xb47eafd2, 0x04375a5f, 0x06092cf1, 0x6894ac58, 0xfdfec525, 0x0d0889b2, 0x1b804608, 0x1f1f142c, 0xf87ba8c9, 0x26800347, 0xf26f3d19, 0xe558e220, 0x145dfa14, 0xba317016, 0x3bb06f65, 0x07cf7309, 0xa429c442, 0xcce3604d, 0x727f694c, 0x28371b89, 0xd86d80a6, 0x2c77943e, 0x60cc8df9, 0x84e9e09c, 0xf31b7067, 0xd0158393, 0x29bc8cd8, 0xd88bc6a1, 0xa33f98a8, 0xf2340773, 0xab695f5f, 0x28c4f872, 0xcd486133, 0x167f7cdf, 0x531faf43, 0xa0847374, 0xd5004438, 0xbf6e3c3c, 0x2e720484, 0xb75eee52, 0x10fef2a7, 0x63e38812, 0xba96765b, 0x8a244e41, 0xa6120d37, 0x15154a10, 0x117869f5, 0x199f5d1c, 0xd6a89007, 0x08182d25, 0x48151314, 0xbef97a60, 0xa9f8c8e8, 0xf5b1d037, 0x913062cd, 0x8b1d5f46, 0x81eee004, 0x12f85444, 0xafb969ab, 0xde74a38f, 0x1287118d, 0x8c654586, 0xd0c0a92c, 0x42c7e3b6, 0x6c59f1de, 0xc7c22556, 0x1aca992f, 0x0583a104, 0x424053a5, 0x53232a5d, 0x2e9907f8, 0x9031a20b, 0x146267d7, 0x8af06791, 0x4abffacd, 0x688f40e6, 0x80e8d8f4, 0x976b02b3, 0x33de017b, 0x479c8943, 0xd8a744cb, 0x412c7311, 0x2b1dee02, 0x649429ba, 0x191d3111, 0x041743de, 0x0c67c2a4, 0x4140e20f, 0x350b9685, 0xc7c2eea9, 0x16847488, 0xb3027037, 0x38c81979, 0x166164a7, 0x7198e5a1, 0x0414241b, 0xb92b29bf, 0xe50dbeb4, 0xb711c032, 0xbf398b73, 0x0abed4a6, 0x9a048545, 0x94cdafe3, 0x54659149, 0x20ec4cdf, 0x6d0a8b14, 0x271b812f, 0xdbee2ab6, 0x811a8a74, 0xc5449582, 0x855cdd1e, 0x12b06e17, 0x345a572b, 0xbad98795, 0xcdc7038c, 0x1b8d0e61, 0x000000a5, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; /* hardcoded here without a bitstream parser helper */ static VAPictureParameterBufferH264 pic_param[2] = { { CurrPic: { 0, 0, 8, 0, 0 }, ReferenceFrames: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, picture_width_in_mbs_minus1: 10, picture_height_in_mbs_minus1: 8, bit_depth_luma_minus8: 0, bit_depth_chroma_minus8: 0, num_ref_frames: 7, { { chroma_format_idc: 1, residual_colour_transform_flag: 0, gaps_in_frame_num_value_allowed_flag: 0, frame_mbs_only_flag: 1, mb_adaptive_frame_field_flag: 0, direct_8x8_inference_flag: 1, MinLumaBiPredSize8x8: 0, log2_max_frame_num_minus4: 1, pic_order_cnt_type: 1, log2_max_pic_order_cnt_lsb_minus4: 0, delta_pic_order_always_zero_flag: 1, } }, num_slice_groups_minus1: 0, slice_group_map_type: 0, slice_group_change_rate_minus1: 0, pic_init_qp_minus26: 0, pic_init_qs_minus26: 0, chroma_qp_index_offset: 0, second_chroma_qp_index_offset: 0, { { entropy_coding_mode_flag: 0, weighted_pred_flag: 0, weighted_bipred_idc: 0, transform_8x8_mode_flag: 0, field_pic_flag: 0, constrained_intra_pred_flag: 0, pic_order_present_flag: 0, deblocking_filter_control_present_flag: 0, redundant_pic_cnt_present_flag: 0, reference_pic_flag: 1, } }, frame_num: 0 }, { CurrPic: { 1, 1, 8, 1, 1 }, ReferenceFrames: { {0, 0, 8, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, picture_width_in_mbs_minus1: 10, picture_height_in_mbs_minus1: 8, bit_depth_luma_minus8: 0, bit_depth_chroma_minus8: 0, num_ref_frames: 7, { { chroma_format_idc: 1, residual_colour_transform_flag: 0, gaps_in_frame_num_value_allowed_flag: 0, frame_mbs_only_flag: 1, mb_adaptive_frame_field_flag: 0, direct_8x8_inference_flag: 1, MinLumaBiPredSize8x8: 0, log2_max_frame_num_minus4: 1, pic_order_cnt_type: 1, log2_max_pic_order_cnt_lsb_minus4: 0, delta_pic_order_always_zero_flag: 1, } }, num_slice_groups_minus1: 0, slice_group_map_type: 0, slice_group_change_rate_minus1: 0, pic_init_qp_minus26: 0, pic_init_qs_minus26: 0, chroma_qp_index_offset: 0, second_chroma_qp_index_offset: 0, { { entropy_coding_mode_flag: 0, weighted_pred_flag: 0, weighted_bipred_idc: 0, transform_8x8_mode_flag: 0, field_pic_flag: 0, constrained_intra_pred_flag: 0, pic_order_present_flag: 0, deblocking_filter_control_present_flag: 0, redundant_pic_cnt_present_flag: 0, reference_pic_flag: 1, } }, frame_num: 1 } }; static VAIQMatrixBufferH264 iq_matrix[2] = { { ScalingList4x4: { {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10} }, ScalingList8x8: {{0}} }, { ScalingList4x4: { {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10}, {0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10} }, ScalingList8x8: {{0}} } }; static VASliceParameterBufferH264 slice_param_surface0[4] = { { slice_data_size: 1101, slice_data_offset: 0, slice_data_flag: 0, slice_data_bit_offset: 28, first_mb_in_slice: 0, slice_type: 2, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: 6, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} }, { slice_data_size: 1133, slice_data_offset: 1101, slice_data_flag: 0, slice_data_bit_offset: 32, first_mb_in_slice: 22, slice_type: 2, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: -1, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} }, { slice_data_size: 1115, slice_data_offset: 2234, slice_data_flag: 0, slice_data_bit_offset: 34, first_mb_in_slice: 46, slice_type: 2, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: -1, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} }, { slice_data_size: 951, slice_data_offset: 3349, slice_data_flag: 0, slice_data_bit_offset: 36, first_mb_in_slice: 76, slice_type: 2, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: -1, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} } }; static VASliceParameterBufferH264 slice_param_surface1[2] = { { slice_data_size: 1091, slice_data_offset: 0, slice_data_flag: 0, slice_data_bit_offset: 32, first_mb_in_slice: 0, slice_type: 0, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: -1, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {0, 0, 8, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} }, { slice_data_size: 138, slice_data_offset: 1091, slice_data_flag: 0, slice_data_bit_offset: 44, first_mb_in_slice: 92, slice_type: 0, direct_spatial_mv_pred_flag: 0, num_ref_idx_l0_active_minus1: 0, num_ref_idx_l1_active_minus1: 0, cabac_init_idc: 0, slice_qp_delta: -1, disable_deblocking_filter_idc: 0, slice_alpha_c0_offset_div2: 0, slice_beta_offset_div2: 0, RefPicList0: { {0, 0, 8, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, RefPicList1: { {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0}, {VA_INVALID_SURFACE, 0, 1, 0, 0} }, luma_log2_weight_denom: 0, chroma_log2_weight_denom: 0, luma_weight_l0_flag: 0, luma_weight_l0: {0}, luma_offset_l0: {0}, chroma_weight_l0_flag: 0, chroma_weight_l0: {{0, 0}}, chroma_offset_l0: {{0, 0}}, luma_weight_l1_flag: 0, luma_weight_l1: {0}, luma_offset_l1: {0}, chroma_weight_l1_flag: 0, chroma_weight_l1: {{0, 0}}, chroma_offset_l1: {{0, 0}} } }; #define CLIP_WIDTH 176 #define CLIP_HEIGHT 144 #define AVC_SURFACE_NUM 2 #define IF_EQUAL(a, b) (a == b) #define IF_EQUAL_M(a, b, c, d) (a == b && a == c && a == d && b == c && b == d && c == d) void dumpMvs(VADecStreamOutData *streamout, int mbIndex) { if (IF_EQUAL_M(streamout->QW8[0].MvFwd_x, streamout->QW8[1].MvFwd_x, streamout->QW8[2].MvFwd_x, streamout->QW8[2].MvFwd_x) && IF_EQUAL_M(streamout->QW8[0].MvFwd_y, streamout->QW8[1].MvFwd_y, streamout->QW8[2].MvFwd_y, streamout->QW8[2].MvFwd_y)) { printf("*************MB:%2d*********\n", mbIndex); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* %3s *\n", streamout->DW0.MbSkipFlag != 0 ? "Skip" : " "); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("*%3d,%3d->0 *\n", streamout->QW8[0].MvFwd_x, streamout->QW8[0].MvFwd_y); printf("* *\n"); printf("****************************\n\n"); } else if ((IF_EQUAL(streamout->QW8[1].MvFwd_x, streamout->QW8[3].MvFwd_x) && IF_EQUAL(streamout->QW8[1].MvFwd_y, streamout->QW8[3].MvFwd_y)) && (IF_EQUAL(streamout->QW8[0].MvFwd_x, streamout->QW8[2].MvFwd_x) && IF_EQUAL(streamout->QW8[0].MvFwd_y, streamout->QW8[2].MvFwd_y)) && !(IF_EQUAL(streamout->QW8[0].MvFwd_x, streamout->QW8[1].MvFwd_x) && IF_EQUAL(streamout->QW8[0].MvFwd_y, streamout->QW8[1].MvFwd_y))) { printf("*************MB:%2d*********\n", mbIndex); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("*%3d,%3d->0 * %3d,%3d->0 *\n", streamout->QW8[0].MvFwd_x, streamout->QW8[0].MvFwd_y, streamout->QW8[1].MvFwd_x, streamout->QW8[1].MvFwd_y); printf("* * *\n"); printf("****************************\n\n"); } else if ((IF_EQUAL(streamout->QW8[0].MvFwd_x, streamout->QW8[1].MvFwd_x) && IF_EQUAL(streamout->QW8[0].MvFwd_y, streamout->QW8[1].MvFwd_y)) && (IF_EQUAL(streamout->QW8[2].MvFwd_x, streamout->QW8[3].MvFwd_x) && IF_EQUAL(streamout->QW8[2].MvFwd_y, streamout->QW8[3].MvFwd_y)) && !(IF_EQUAL(streamout->QW8[0].MvFwd_x, streamout->QW8[2].MvFwd_x) && IF_EQUAL(streamout->QW8[0].MvFwd_y, streamout->QW8[2].MvFwd_y))) { printf("*************MB:%2d*********\n", mbIndex); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("*%3d,%3d->0 *\n", streamout->QW8[0].MvFwd_x, streamout->QW8[0].MvFwd_y); printf("* *\n"); printf("****************************\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("* *\n"); printf("*%3d,%3d->0 *\n", streamout->QW8[2].MvFwd_x, streamout->QW8[2].MvFwd_y); printf("* *\n"); printf("****************************\n\n"); } else { printf("*************MB:%2d*********\n", mbIndex); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("*%3d,%3d->0 * %3d,%3d->0 *\n", streamout->QW8[0].MvFwd_x, streamout->QW8[0].MvFwd_y, streamout->QW8[1].MvFwd_x, streamout->QW8[1].MvFwd_y); printf("* * *\n"); printf("***************************\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("* * *\n"); printf("*%3d,%3d->0 * %3d,%3d->0 *\n", streamout->QW8[2].MvFwd_x, streamout->QW8[2].MvFwd_y, streamout->QW8[3].MvFwd_x, streamout->QW8[3].MvFwd_y); printf("* * *\n"); printf("****************************\n\n"); } } int main(int argc, char **argv) { VAEntrypoint entrypoints[5]; int num_entrypoints, vld_entrypoint; VAConfigAttrib attrib; VAConfigID config_id; VASurfaceID surface_ids[AVC_SURFACE_NUM]; VAContextID context_id; VABufferID pic_param_buf, iqmatrix_buf, slice_param_buf, slice_data_buf, streamout_buf; VABufferID tmp_buff_ids[5]; int major_ver, minor_ver; VADisplay va_dpy; VAStatus va_status; int is_dump_streamout = 0; int surface_index; VASurfaceStatus surface_status; unsigned char *pbuf; unsigned int mb_counts = ((CLIP_WIDTH + 15) / 16) * ((CLIP_HEIGHT + 15) / 16); unsigned int streamout_buffsize = mb_counts * sizeof(VADecStreamOutData); va_init_display_args(&argc, argv); if (argc > 1) is_dump_streamout = 1; va_dpy = va_open_display(); va_status = vaInitialize(va_dpy, &major_ver, &minor_ver); assert(va_status == VA_STATUS_SUCCESS); va_status = vaQueryConfigEntrypoints(va_dpy, VAProfileH264Main, entrypoints, &num_entrypoints); CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints"); for (vld_entrypoint = 0; vld_entrypoint < num_entrypoints; vld_entrypoint++) { if (entrypoints[vld_entrypoint] == VAEntrypointVLD) break; } if (vld_entrypoint == num_entrypoints) { /* not find VLD entry point */ assert(0); } /* Assuming finding VLD, find out the format for the render target */ attrib.type = VAConfigAttribRTFormat; vaGetConfigAttributes(va_dpy, VAProfileH264Main, VAEntrypointVLD, &attrib, 1); if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) { /* not find desired YUV420 RT format */ assert(0); } va_status = vaCreateConfig(va_dpy, VAProfileH264Main, VAEntrypointVLD, &attrib, 1, &config_id); CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints"); va_status = vaCreateSurfaces( va_dpy, VA_RT_FORMAT_YUV420, CLIP_WIDTH, CLIP_HEIGHT, &surface_ids[0], 2, NULL, 0 ); CHECK_VASTATUS(va_status, "vaCreateSurfaces"); /* Create a context for this decode pipe */ va_status = vaCreateContext(va_dpy, config_id, CLIP_WIDTH, ((CLIP_HEIGHT + 15) / 16) * 16, VA_PROGRESSIVE, &surface_ids[0], 2, &context_id); CHECK_VASTATUS(va_status, "vaCreateContext"); for (surface_index = 0 ; surface_index < AVC_SURFACE_NUM; surface_index++) { va_status = vaCreateBuffer(va_dpy, context_id, VAPictureParameterBufferType, sizeof(VAPictureParameterBufferH264), 1, &pic_param[surface_index], &pic_param_buf); CHECK_VASTATUS(va_status, "vaCreateBuffer"); va_status = vaCreateBuffer(va_dpy, context_id, VAIQMatrixBufferType, sizeof(VAIQMatrixBufferH264), 1, &iq_matrix[surface_index], &iqmatrix_buf); CHECK_VASTATUS(va_status, "vaCreateBuffer"); if (surface_index == 0) { va_status = vaCreateBuffer(va_dpy, context_id, VASliceParameterBufferType, sizeof(VASliceParameterBufferH264), 4, &slice_param_surface0[0], &slice_param_buf); } else { va_status = vaCreateBuffer(va_dpy, context_id, VASliceParameterBufferType, sizeof(VASliceParameterBufferH264), 2, &slice_param_surface1[0], &slice_param_buf); } CHECK_VASTATUS(va_status, "vaCreateBuffer"); va_status = vaCreateBuffer(va_dpy, context_id, VASliceDataBufferType, surface_index == 0 ? sizeof(avc_clip) : sizeof(avc_clip1), 1, surface_index == 0 ? avc_clip : avc_clip1, &slice_data_buf); CHECK_VASTATUS(va_status, "vaCreateBuffer"); /* Create StreamOut va buffer */ va_status = vaCreateBuffer(va_dpy, context_id, VADecodeStreamoutBufferType, streamout_buffsize, 1, NULL, &streamout_buf); CHECK_VASTATUS(va_status, "vaCreateBuffer"); tmp_buff_ids[0] = pic_param_buf; tmp_buff_ids[1] = iqmatrix_buf; tmp_buff_ids[2] = slice_param_buf; tmp_buff_ids[3] = slice_data_buf; tmp_buff_ids[4] = streamout_buf; va_status = vaBeginPicture(va_dpy, context_id, surface_ids[surface_index]); CHECK_VASTATUS(va_status, "vaBeginPicture"); va_status = vaRenderPicture(va_dpy, context_id, tmp_buff_ids, 5); CHECK_VASTATUS(va_status, "vaRenderPicture"); va_status = vaEndPicture(va_dpy, context_id); CHECK_VASTATUS(va_status, "vaEndPicture"); va_status = vaSyncSurface(va_dpy, surface_ids[surface_index]); CHECK_VASTATUS(va_status, "vaSyncSurface"); va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[surface_index], &surface_status);//to check surface_status if needed CHECK_VASTATUS(va_status, "vaQuerySurfaceStatus"); /*map streamout buffer to dump*/ VADecStreamOutData *dec_streamout_buf = (VADecStreamOutData *)malloc(streamout_buffsize); if (NULL == dec_streamout_buf) { printf("Failed to malloc for dec streamout buf.\n"); assert(0); } va_status = vaMapBuffer(va_dpy, streamout_buf, (void **)(&pbuf)); CHECK_VASTATUS(va_status, "vaMapBuffer"); memcpy(dec_streamout_buf, pbuf, streamout_buffsize);// to check streamout data for usage va_status = vaUnmapBuffer(va_dpy, streamout_buf); CHECK_VASTATUS(va_status, "vaUnmapBuffer"); if (is_dump_streamout && surface_index != 0) { //dump streamout buffer to local file VADecStreamOutData *temp_dec_streamout_buf = dec_streamout_buf; unsigned int i; for (i = 0; i < mb_counts && temp_dec_streamout_buf != NULL; i++) { dumpMvs(temp_dec_streamout_buf++, i); } } if (dec_streamout_buf) { free(dec_streamout_buf); } } printf("press any key to exit\n"); getchar(); vaDestroySurfaces(va_dpy, surface_ids, 2); vaDestroyConfig(va_dpy, config_id); vaDestroyContext(va_dpy, context_id); vaTerminate(va_dpy); va_close_display(va_dpy); return 0; }