| /* |
| * 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 <any parameter >: do decode and dump mv info |
| * |
| */ |
| |
| #include <stdio.h> |
| #include <string.h> |
| #include <stdlib.h> |
| #include <getopt.h> |
| #include <unistd.h> |
| #include <sys/types.h> |
| #include <sys/stat.h> |
| #include <fcntl.h> |
| #include <assert.h> |
| #include <va/va.h> |
| #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; |
| } |