75 for (y = 0; y <
height; y++) {
77 memset(plane, 0, width);
79 for (x = 0; x <
width; x++)
97 for (x = 0; x <
width; x++) {
99 for (y = 0; y <
height; y++)
102 for (y = 0; y <
height; y++)
137 if ((height * width) & 1) {
144 for (y = offset; y < height *
width; y += 2) {
146 *planep++ = code & 1;
148 if (offset == width) {
150 planep += stride -
width;
152 *planep++ = code >> 1;
154 if (offset == width) {
156 planep += stride -
width;
162 if (!(height % 3) && (width % 3)) {
163 for (y = 0; y <
height; y += 3) {
164 for (x = width & 1; x <
width; x += 2) {
170 planep[x + 0] = (code >> 0) & 1;
171 planep[x + 1] = (code >> 1) & 1;
172 planep[x + 0 +
stride] = (code >> 2) & 1;
173 planep[x + 1 +
stride] = (code >> 3) & 1;
174 planep[x + 0 + stride * 2] = (code >> 4) & 1;
175 planep[x + 1 + stride * 2] = (code >> 5) & 1;
177 planep += stride * 3;
182 planep += (height & 1) * stride;
183 for (y = height & 1; y <
height; y += 2) {
184 for (x = width % 3; x <
width; x += 3) {
190 planep[x + 0] = (code >> 0) & 1;
191 planep[x + 1] = (code >> 1) & 1;
192 planep[x + 2] = (code >> 2) & 1;
193 planep[x + 0 +
stride] = (code >> 3) & 1;
194 planep[x + 1 +
stride] = (code >> 4) & 1;
195 planep[x + 2 +
stride] = (code >> 5) & 1;
197 planep += stride * 2;
220 for (x = 1; x <
width; x++)
221 planep[x] ^= planep[x-1];
222 for (y = 1; y <
height; y++) {
224 planep[0] ^= planep[-
stride];
225 for (x = 1; x <
width; x++) {
226 if (planep[x-1] != planep[x-stride]) planep[
x] ^= invert;
227 else planep[
x] ^= planep[x-1];
232 for (x = 0; x < stride *
height; x++)
233 planep[x] = !planep[x];
235 return (imode << 1) + invert;
312 "Old interlaced mode is not supported\n");
324 "LOOPFILTER shall not be enabled in Simple Profile\n");
346 "FASTUVMC unavailable in Simple Profile\n");
353 "Extended MVs unavailable in Simple Profile\n");
363 "1 for reserved RES_TRANSTAB is forbidden\n");
373 "RANGERED should be set to 0 in Simple Profile\n");
398 "Old WMV3 version detected, some frames may be decoded incorrectly\n");
405 "Profile %i:\nfrmrtq_postproc=%i, bitrtq_postproc=%i\n" 406 "LoopFilter=%i, MultiRes=%i, FastUVMC=%i, Extended MV=%i\n" 407 "Rangered=%i, VSTransform=%i, Overlap=%i, SyncMarker=%i\n" 408 "DQuant=%i, Quantizer mode=%i, Max B frames=%i\n",
426 "Only 4:2:0 chroma format supported\n");
445 "Advanced Profile level %i:\nfrmrtq_postproc=%i, bitrtq_postproc=%i\n" 446 "LoopFilter=%i, ChromaFormat=%i, Pulldown=%i, Interlace: %i\n" 447 "TFCTRflag=%i, FINTERPflag=%i\n",
468 }
else if (ar == 15) {
491 if (nr > 0 && nr < 8 && dr > 0 && dr < 3) {
565 av_log(avctx,
AV_LOG_ERROR,
"Chroma scaling is not supported, expect wrong picture\n");
570 "BrokenLink=%i, ClosedEntry=%i, PanscanFlag=%i\n" 571 "RefDist=%i, Postproc=%i, FastUVMC=%i, ExtMV=%i\n" 572 "DQuant=%i, VSTransform=%i, Overlap=%i, Qmode=%i\n",
581 int pqindex, lowquant, status;
676 lowquant = (v->
pq > 12) ? 0 : 1;
687 shift = (255 - v->
lumshift * 2) << 6;
697 for (i = 0; i < 256; i++) {
698 v->
luty[
i] = av_clip_uint8((scale * i + shift + 32) >> 6);
699 v->
lutuv[
i] = av_clip_uint8((scale * (i - 128) + 128*64 + 32) >> 6);
721 "Imode: %i, Invert: %i\n", status>>1, status&1);
730 "Imode: %i, Invert: %i\n", status>>1, status&1);
766 "Imode: %i, Invert: %i\n", status>>1, status&1);
771 "Imode: %i, Invert: %i\n", status>>1, status&1);
812 #define INIT_LUT(lumscale, lumshift, luty, lutuv) \ 815 shift = (255 - lumshift * 2) << 6; \ 819 scale = lumscale + 32; \ 821 shift = (lumshift - 64) << 6; \ 823 shift = lumshift << 6; \ 825 for (i = 0; i < 256; i++) { \ 826 luty[i] = av_clip_uint8((scale * i + shift + 32) >> 6); \ 827 lutuv[i] = av_clip_uint8((scale * (i - 128) + 128*64 + 32) >> 6); \ 832 int pqindex, lowquant;
834 int mbmodetab, imvtab, icbptab, twomvbptab, fourmvbptab;
848 goto parse_common_info;
859 "Interlaced frames/fields support is incomplete\n");
934 goto parse_common_info;
989 "Imode: %i, Invert: %i\n", status>>1, status&1);
995 "Imode: %i, Invert: %i\n", status>>1, status&1);
1004 "Imode: %i, Invert: %i\n", status>>1, status&1);
1035 "Imode: %i, Invert: %i\n", status>>1, status&1);
1061 else if (v->
pq < 13)
1068 lowquant = (v->
pq > 12) ? 0 : 1;
1108 "Imode: %i, Invert: %i\n", status>>1, status&1);
1117 "Imode: %i, Invert: %i\n", status>>1, status&1);
1179 else if (v->
pq < 13)
1190 lowquant = (v->
pq > 12) ? 0 : 1;
1199 "Imode: %i, Invert: %i\n", status>>1, status&1);
1228 "Imode: %i, Invert: %i\n", status>>1, status&1);
1233 "Imode: %i, Invert: %i\n", status>>1, status&1);
1254 "Imode: %i, Invert: %i\n", status>>1, status&1);
1259 "Imode: %i, Invert: %i\n", status>>1, status&1);
1310 { 0x0001, 2}, { 0x0005, 3}, { 0x000D, 4}, { 0x0012, 5}, { 0x000E, 6}, { 0x0015, 7},
1311 { 0x0013, 8}, { 0x003F, 8}, { 0x004B, 9}, { 0x011F, 9}, { 0x00B8, 10}, { 0x03E3, 10},
1312 { 0x0172, 11}, { 0x024D, 12}, { 0x03DA, 12}, { 0x02DD, 13}, { 0x1F55, 13}, { 0x05B9, 14},
1313 { 0x3EAE, 14}, { 0x0000, 4}, { 0x0010, 5}, { 0x0008, 7}, { 0x0020, 8}, { 0x0029, 9},
1314 { 0x01F4, 9}, { 0x0233, 10}, { 0x01E0, 11}, { 0x012A, 12}, { 0x03DD, 12}, { 0x050A, 13},
1315 { 0x1F29, 13}, { 0x0A42, 14}, { 0x1272, 15}, { 0x1737, 15}, { 0x0003, 5}, { 0x0011, 7},
1316 { 0x00C4, 8}, { 0x004B, 10}, { 0x00B4, 11}, { 0x07D4, 11}, { 0x0345, 12}, { 0x02D7, 13},
1317 { 0x07BF, 13}, { 0x0938, 14}, { 0x0BBB, 14}, { 0x095E, 15}, { 0x0013, 5}, { 0x0078, 7},
1318 { 0x0069, 9}, { 0x0232, 10}, { 0x0461, 11}, { 0x03EC, 12}, { 0x0520, 13}, { 0x1F2A, 13},
1319 { 0x3E50, 14}, { 0x3E51, 14}, { 0x1486, 15}, { 0x000C, 6}, { 0x0024, 9}, { 0x0094, 11},
1320 { 0x08C0, 12}, { 0x0F09, 14}, { 0x1EF0, 15}, { 0x003D, 6}, { 0x0053, 9}, { 0x01A0, 11},
1321 { 0x02D6, 13}, { 0x0F08, 14}, { 0x0013, 7}, { 0x007C, 9}, { 0x07C1, 11}, { 0x04AC, 14},
1322 { 0x001B, 7}, { 0x00A0, 10}, { 0x0344, 12}, { 0x0F79, 14}, { 0x0079, 7}, { 0x03E1, 10},
1323 { 0x02D4, 13}, { 0x2306, 14}, { 0x0021, 8}, { 0x023C, 10}, { 0x0FAE, 12}, { 0x23DE, 14},
1324 { 0x0035, 8}, { 0x0175, 11}, { 0x07B3, 13}, { 0x00C5, 8}, { 0x0174, 11}, { 0x0785, 13},
1325 { 0x0048, 9}, { 0x01A3, 11}, { 0x049E, 13}, { 0x002C, 9}, { 0x00FA, 10}, { 0x07D6, 11},
1326 { 0x0092, 10}, { 0x05CC, 13}, { 0x1EF1, 15}, { 0x00A3, 10}, { 0x03ED, 12}, { 0x093E, 14},
1327 { 0x01E2, 11}, { 0x1273, 15}, { 0x07C4, 11}, { 0x1487, 15}, { 0x0291, 12}, { 0x0293, 12},
1328 { 0x0F8A, 12}, { 0x0509, 13}, { 0x0508, 13}, { 0x078D, 13}, { 0x07BE, 13}, { 0x078C, 13},
1329 { 0x04AE, 14}, { 0x0BBA, 14}, { 0x2307, 14}, { 0x0B9A, 14}, { 0x1736, 15}, { 0x000E, 4},
1330 { 0x0045, 7}, { 0x01F3, 9}, { 0x047A, 11}, { 0x05DC, 13}, { 0x23DF, 14}, { 0x0019, 5},
1331 { 0x0028, 9}, { 0x0176, 11}, { 0x049D, 13}, { 0x23DD, 14}, { 0x0030, 6}, { 0x00A2, 10},
1332 { 0x02EF, 12}, { 0x05B8, 14}, { 0x003F, 6}, { 0x00A5, 10}, { 0x03DB, 12}, { 0x093F, 14},
1333 { 0x0044, 7}, { 0x07CB, 11}, { 0x095F, 15}, { 0x0063, 7}, { 0x03C3, 12}, { 0x0015, 8},
1334 { 0x08F6, 12}, { 0x0017, 8}, { 0x0498, 13}, { 0x002C, 8}, { 0x07B2, 13}, { 0x002F, 8},
1335 { 0x1F54, 13}, { 0x008D, 8}, { 0x07BD, 13}, { 0x008E, 8}, { 0x1182, 13}, { 0x00FB, 8},
1336 { 0x050B, 13}, { 0x002D, 8}, { 0x07C0, 11}, { 0x0079, 9}, { 0x1F5F, 13}, { 0x007A, 9},
1337 { 0x1F56, 13}, { 0x0231, 10}, { 0x03E4, 10}, { 0x01A1, 11}, { 0x0143, 11}, { 0x01F7, 11},
1338 { 0x016F, 12}, { 0x0292, 12}, { 0x02E7, 12}, { 0x016C, 12}, { 0x016D, 12}, { 0x03DC, 12},
1339 { 0x0F8B, 12}, { 0x0499, 13}, { 0x03D8, 12}, { 0x078E, 13}, { 0x02D5, 13}, { 0x1F5E, 13},
1340 { 0x1F2B, 13}, { 0x078F, 13}, { 0x04AD, 14}, { 0x3EAF, 14}, { 0x23DC, 14}, { 0x004A, 9}
1343 { 0x0000, 3}, { 0x0003, 4}, { 0x000B, 5}, { 0x0014, 6}, { 0x003F, 6}, { 0x005D, 7},
1344 { 0x00A2, 8}, { 0x00AC, 9}, { 0x016E, 9}, { 0x020A, 10}, { 0x02E2, 10}, { 0x0432, 11},
1345 { 0x05C9, 11}, { 0x0827, 12}, { 0x0B54, 12}, { 0x04E6, 13}, { 0x105F, 13}, { 0x172A, 13},
1346 { 0x20B2, 14}, { 0x2D4E, 14}, { 0x39F0, 14}, { 0x4175, 15}, { 0x5A9E, 15}, { 0x0004, 4},
1347 { 0x001E, 5}, { 0x0042, 7}, { 0x00B6, 8}, { 0x0173, 9}, { 0x0395, 10}, { 0x072E, 11},
1348 { 0x0B94, 12}, { 0x16A4, 13}, { 0x20B3, 14}, { 0x2E45, 14}, { 0x0005, 5}, { 0x0040, 7},
1349 { 0x0049, 9}, { 0x028F, 10}, { 0x05CB, 11}, { 0x048A, 13}, { 0x09DD, 14}, { 0x73E2, 15},
1350 { 0x0018, 5}, { 0x0025, 8}, { 0x008A, 10}, { 0x051B, 11}, { 0x0E5F, 12}, { 0x09C9, 14},
1351 { 0x139C, 15}, { 0x0029, 6}, { 0x004F, 9}, { 0x0412, 11}, { 0x048D, 13}, { 0x2E41, 14},
1352 { 0x0038, 6}, { 0x010E, 9}, { 0x05A8, 11}, { 0x105C, 13}, { 0x39F2, 14}, { 0x0058, 7},
1353 { 0x021F, 10}, { 0x0E7E, 12}, { 0x39FF, 14}, { 0x0023, 8}, { 0x02E3, 10}, { 0x04E5, 13},
1354 { 0x2E40, 14}, { 0x00A1, 8}, { 0x05BE, 11}, { 0x09C8, 14}, { 0x0083, 8}, { 0x013A, 11},
1355 { 0x1721, 13}, { 0x0044, 9}, { 0x0276, 12}, { 0x39F6, 14}, { 0x008B, 10}, { 0x04EF, 13},
1356 { 0x5A9B, 15}, { 0x0208, 10}, { 0x1CFE, 13}, { 0x0399, 10}, { 0x1CB4, 13}, { 0x039E, 10},
1357 { 0x39F3, 14}, { 0x05AB, 11}, { 0x73E3, 15}, { 0x0737, 11}, { 0x5A9F, 15}, { 0x082D, 12},
1358 { 0x0E69, 12}, { 0x0E68, 12}, { 0x0433, 11}, { 0x0B7B, 12}, { 0x2DF8, 14}, { 0x2E56, 14},
1359 { 0x2E57, 14}, { 0x39F7, 14}, { 0x51A5, 15}, { 0x0003, 3}, { 0x002A, 6}, { 0x00E4, 8},
1360 { 0x028E, 10}, { 0x0735, 11}, { 0x1058, 13}, { 0x1CFA, 13}, { 0x2DF9, 14}, { 0x4174, 15},
1361 { 0x0009, 4}, { 0x0054, 8}, { 0x0398, 10}, { 0x048B, 13}, { 0x139D, 15}, { 0x000D, 4},
1362 { 0x00AD, 9}, { 0x0826, 12}, { 0x2D4C, 14}, { 0x0011, 5}, { 0x016B, 9}, { 0x0B7F, 12},
1363 { 0x51A4, 15}, { 0x0019, 5}, { 0x021B, 10}, { 0x16FD, 13}, { 0x001D, 5}, { 0x0394, 10},
1364 { 0x28D3, 14}, { 0x002B, 6}, { 0x05BC, 11}, { 0x5A9A, 15}, { 0x002F, 6}, { 0x0247, 12},
1365 { 0x0010, 7}, { 0x0A35, 12}, { 0x003E, 6}, { 0x0B7A, 12}, { 0x0059, 7}, { 0x105E, 13},
1366 { 0x0026, 8}, { 0x09CF, 14}, { 0x0055, 8}, { 0x1CB5, 13}, { 0x0057, 8}, { 0x0E5B, 12},
1367 { 0x00A0, 8}, { 0x1468, 13}, { 0x0170, 9}, { 0x0090, 10}, { 0x01CE, 9}, { 0x021A, 10},
1368 { 0x0218, 10}, { 0x0168, 9}, { 0x021E, 10}, { 0x0244, 12}, { 0x0736, 11}, { 0x0138, 11},
1369 { 0x0519, 11}, { 0x0E5E, 12}, { 0x072C, 11}, { 0x0B55, 12}, { 0x09DC, 14}, { 0x20BB, 14},
1370 { 0x048C, 13}, { 0x1723, 13}, { 0x2E44, 14}, { 0x16A5, 13}, { 0x0518, 11}, { 0x39FE, 14},
1374 { 0x0001, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x0016, 5}, { 0x0020, 6}, { 0x0018, 7},
1375 { 0x0008, 8}, { 0x009A, 8}, { 0x0056, 9}, { 0x013E, 9}, { 0x00F0, 10}, { 0x03A5, 10},
1376 { 0x0077, 11}, { 0x01EF, 11}, { 0x009A, 12}, { 0x005D, 13}, { 0x0001, 4}, { 0x0011, 5},
1377 { 0x0002, 7}, { 0x000B, 8}, { 0x0012, 9}, { 0x01D6, 9}, { 0x027E, 10}, { 0x0191, 11},
1378 { 0x00EA, 12}, { 0x03DC, 12}, { 0x013B, 13}, { 0x0004, 5}, { 0x0014, 7}, { 0x009E, 8},
1379 { 0x0009, 10}, { 0x01AC, 11}, { 0x01E2, 11}, { 0x03CA, 12}, { 0x005F, 13}, { 0x0017, 5},
1380 { 0x004E, 7}, { 0x005E, 9}, { 0x00F3, 10}, { 0x01AD, 11}, { 0x00EC, 12}, { 0x05F0, 13},
1381 { 0x000E, 6}, { 0x00E1, 8}, { 0x03A4, 10}, { 0x009C, 12}, { 0x013D, 13}, { 0x003B, 6},
1382 { 0x001C, 9}, { 0x0014, 11}, { 0x09BE, 12}, { 0x0006, 7}, { 0x007A, 9}, { 0x0190, 11},
1383 { 0x0137, 13}, { 0x001B, 7}, { 0x0008, 10}, { 0x075C, 11}, { 0x0071, 7}, { 0x00D7, 10},
1384 { 0x09BF, 12}, { 0x0007, 8}, { 0x00AF, 10}, { 0x04CC, 11}, { 0x0034, 8}, { 0x0265, 10},
1385 { 0x009F, 12}, { 0x00E0, 8}, { 0x0016, 11}, { 0x0327, 12}, { 0x0015, 9}, { 0x017D, 11},
1386 { 0x0EBB, 12}, { 0x0014, 9}, { 0x00F6, 10}, { 0x01E4, 11}, { 0x00CB, 10}, { 0x099D, 12},
1387 { 0x00CA, 10}, { 0x02FC, 12}, { 0x017F, 11}, { 0x04CD, 11}, { 0x02FD, 12}, { 0x04FE, 11},
1388 { 0x013A, 13}, { 0x000A, 4}, { 0x0042, 7}, { 0x01D3, 9}, { 0x04DD, 11}, { 0x0012, 5},
1389 { 0x00E8, 8}, { 0x004C, 11}, { 0x0136, 13}, { 0x0039, 6}, { 0x0264, 10}, { 0x0EBA, 12},
1390 { 0x0000, 7}, { 0x00AE, 10}, { 0x099C, 12}, { 0x001F, 7}, { 0x04DE, 11}, { 0x0043, 7},
1391 { 0x04DC, 11}, { 0x0003, 8}, { 0x03CB, 12}, { 0x0006, 8}, { 0x099E, 12}, { 0x002A, 8},
1392 { 0x05F1, 13}, { 0x000F, 8}, { 0x09FE, 12}, { 0x0033, 8}, { 0x09FF, 12}, { 0x0098, 8},
1393 { 0x099F, 12}, { 0x00EA, 8}, { 0x013C, 13}, { 0x002E, 8}, { 0x0192, 11}, { 0x0136, 9},
1394 { 0x006A, 9}, { 0x0015, 11}, { 0x03AF, 10}, { 0x01E3, 11}, { 0x0074, 11}, { 0x00EB, 12},
1395 { 0x02F9, 12}, { 0x005C, 13}, { 0x00ED, 12}, { 0x03DD, 12}, { 0x0326, 12}, { 0x005E, 13},
1399 { 0x0004, 3}, { 0x0014, 5}, { 0x0017, 7}, { 0x007F, 8}, { 0x0154, 9}, { 0x01F2, 10},
1400 { 0x00BF, 11}, { 0x0065, 12}, { 0x0AAA, 12}, { 0x0630, 13}, { 0x1597, 13}, { 0x03B7, 14},
1401 { 0x2B22, 14}, { 0x0BE6, 15}, { 0x000B, 4}, { 0x0037, 7}, { 0x0062, 9}, { 0x0007, 11},
1402 { 0x0166, 12}, { 0x00CE, 13}, { 0x1590, 13}, { 0x05F6, 14}, { 0x0BE7, 15}, { 0x0007, 5},
1403 { 0x006D, 8}, { 0x0003, 11}, { 0x031F, 12}, { 0x05F2, 14}, { 0x0002, 6}, { 0x0061, 9},
1404 { 0x0055, 12}, { 0x01DF, 14}, { 0x001A, 6}, { 0x001E, 10}, { 0x0AC9, 12}, { 0x2B23, 14},
1405 { 0x001E, 6}, { 0x001F, 10}, { 0x0AC3, 12}, { 0x2B2B, 14}, { 0x0006, 7}, { 0x0004, 11},
1406 { 0x02F8, 13}, { 0x0019, 7}, { 0x0006, 11}, { 0x063D, 13}, { 0x0057, 7}, { 0x0182, 11},
1407 { 0x2AA2, 14}, { 0x0004, 8}, { 0x0180, 11}, { 0x059C, 14}, { 0x007D, 8}, { 0x0164, 12},
1408 { 0x076D, 15}, { 0x0002, 9}, { 0x018D, 11}, { 0x1581, 13}, { 0x00AD, 8}, { 0x0060, 12},
1409 { 0x0C67, 14}, { 0x001C, 9}, { 0x00EE, 13}, { 0x0003, 9}, { 0x02CF, 13}, { 0x00D9, 9},
1410 { 0x1580, 13}, { 0x0002, 11}, { 0x0183, 11}, { 0x0057, 12}, { 0x0061, 12}, { 0x0031, 11},
1411 { 0x0066, 12}, { 0x0631, 13}, { 0x0632, 13}, { 0x00AC, 13}, { 0x031D, 12}, { 0x0076, 12},
1412 { 0x003A, 11}, { 0x0165, 12}, { 0x0C66, 14}, { 0x0003, 2}, { 0x0054, 7}, { 0x02AB, 10},
1413 { 0x0016, 13}, { 0x05F7, 14}, { 0x0005, 4}, { 0x00F8, 9}, { 0x0AA9, 12}, { 0x005F, 15},
1414 { 0x0004, 4}, { 0x001C, 10}, { 0x1550, 13}, { 0x0004, 5}, { 0x0077, 11}, { 0x076C, 15},
1415 { 0x000E, 5}, { 0x000A, 12}, { 0x000C, 5}, { 0x0562, 11}, { 0x0004, 6}, { 0x031C, 12},
1416 { 0x0006, 6}, { 0x00C8, 13}, { 0x000D, 6}, { 0x01DA, 13}, { 0x0007, 6}, { 0x00C9, 13},
1417 { 0x0001, 7}, { 0x002E, 14}, { 0x0014, 7}, { 0x1596, 13}, { 0x000A, 7}, { 0x0AC2, 12},
1418 { 0x0016, 7}, { 0x015B, 14}, { 0x0015, 7}, { 0x015A, 14}, { 0x000F, 8}, { 0x005E, 15},
1419 { 0x007E, 8}, { 0x00AB, 8}, { 0x002D, 9}, { 0x00D8, 9}, { 0x000B, 9}, { 0x0014, 10},
1420 { 0x02B3, 10}, { 0x01F3, 10}, { 0x003A, 10}, { 0x0000, 10}, { 0x0058, 10}, { 0x002E, 9},
1421 { 0x005E, 10}, { 0x0563, 11}, { 0x00EC, 12}, { 0x0054, 12}, { 0x0AC1, 12}, { 0x1556, 13},
1422 { 0x02FA, 13}, { 0x0181, 11}, { 0x1557, 13}, { 0x059D, 14}, { 0x2AA3, 14}, { 0x2B2A, 14},
1423 { 0x01DE, 14}, { 0x063C, 13}, { 0x00CF, 13}, { 0x1594, 13}, { 0x000D, 9}
1426 { 0x0002, 2}, { 0x0006, 3}, { 0x000F, 4}, { 0x000D, 5}, { 0x000C, 5}, { 0x0015, 6},
1427 { 0x0013, 6}, { 0x0012, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x001E, 8}, { 0x001D, 8},
1428 { 0x0025, 9}, { 0x0024, 9}, { 0x0023, 9}, { 0x0021, 9}, { 0x0021, 10}, { 0x0020, 10},
1429 { 0x000F, 10}, { 0x000E, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11}, { 0x0021, 11},
1430 { 0x0050, 12}, { 0x0051, 12}, { 0x0052, 12}, { 0x000E, 4}, { 0x0014, 6}, { 0x0016, 7},
1431 { 0x001C, 8}, { 0x0020, 9}, { 0x001F, 9}, { 0x000D, 10}, { 0x0022, 11}, { 0x0053, 12},
1432 { 0x0055, 12}, { 0x000B, 5}, { 0x0015, 7}, { 0x001E, 9}, { 0x000C, 10}, { 0x0056, 12},
1433 { 0x0011, 6}, { 0x001B, 8}, { 0x001D, 9}, { 0x000B, 10}, { 0x0010, 6}, { 0x0022, 9},
1434 { 0x000A, 10}, { 0x000D, 6}, { 0x001C, 9}, { 0x0008, 10}, { 0x0012, 7}, { 0x001B, 9},
1435 { 0x0054, 12}, { 0x0014, 7}, { 0x001A, 9}, { 0x0057, 12}, { 0x0019, 8}, { 0x0009, 10},
1436 { 0x0018, 8}, { 0x0023, 11}, { 0x0017, 8}, { 0x0019, 9}, { 0x0018, 9}, { 0x0007, 10},
1437 { 0x0058, 12}, { 0x0007, 4}, { 0x000C, 6}, { 0x0016, 8}, { 0x0017, 9}, { 0x0006, 10},
1438 { 0x0005, 11}, { 0x0004, 11}, { 0x0059, 12}, { 0x000F, 6}, { 0x0016, 9}, { 0x0005, 10},
1439 { 0x000E, 6}, { 0x0004, 10}, { 0x0011, 7}, { 0x0024, 11}, { 0x0010, 7}, { 0x0025, 11},
1440 { 0x0013, 7}, { 0x005A, 12}, { 0x0015, 8}, { 0x005B, 12}, { 0x0014, 8}, { 0x0013, 8},
1441 { 0x001A, 8}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9}, { 0x0012, 9}, { 0x0011, 9},
1442 { 0x0026, 11}, { 0x0027, 11}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12},
1446 { 0x0002, 2}, { 0x000F, 4}, { 0x0015, 6}, { 0x0017, 7}, { 0x001F, 8}, { 0x0025, 9},
1447 { 0x0024, 9}, { 0x0021, 10}, { 0x0020, 10}, { 0x0007, 11}, { 0x0006, 11}, { 0x0020, 11},
1448 { 0x0006, 3}, { 0x0014, 6}, { 0x001E, 8}, { 0x000F, 10}, { 0x0021, 11}, { 0x0050, 12},
1449 { 0x000E, 4}, { 0x001D, 8}, { 0x000E, 10}, { 0x0051, 12}, { 0x000D, 5}, { 0x0023, 9},
1450 { 0x000D, 10}, { 0x000C, 5}, { 0x0022, 9}, { 0x0052, 12}, { 0x000B, 5}, { 0x000C, 10},
1451 { 0x0053, 12}, { 0x0013, 6}, { 0x000B, 10}, { 0x0054, 12}, { 0x0012, 6}, { 0x000A, 10},
1452 { 0x0011, 6}, { 0x0009, 10}, { 0x0010, 6}, { 0x0008, 10}, { 0x0016, 7}, { 0x0055, 12},
1453 { 0x0015, 7}, { 0x0014, 7}, { 0x001C, 8}, { 0x001B, 8}, { 0x0021, 9}, { 0x0020, 9},
1454 { 0x001F, 9}, { 0x001E, 9}, { 0x001D, 9}, { 0x001C, 9}, { 0x001B, 9}, { 0x001A, 9},
1455 { 0x0022, 11}, { 0x0023, 11}, { 0x0056, 12}, { 0x0057, 12}, { 0x0007, 4}, { 0x0019, 9},
1456 { 0x0005, 11}, { 0x000F, 6}, { 0x0004, 11}, { 0x000E, 6}, { 0x000D, 6}, { 0x000C, 6},
1457 { 0x0013, 7}, { 0x0012, 7}, { 0x0011, 7}, { 0x0010, 7}, { 0x001A, 8}, { 0x0019, 8},
1458 { 0x0018, 8}, { 0x0017, 8}, { 0x0016, 8}, { 0x0015, 8}, { 0x0014, 8}, { 0x0013, 8},
1459 { 0x0018, 9}, { 0x0017, 9}, { 0x0016, 9}, { 0x0015, 9}, { 0x0014, 9}, { 0x0013, 9},
1460 { 0x0012, 9}, { 0x0011, 9}, { 0x0007, 10}, { 0x0006, 10}, { 0x0005, 10}, { 0x0004, 10},
1461 { 0x0024, 11}, { 0x0025, 11}, { 0x0026, 11}, { 0x0027, 11}, { 0x0058, 12}, { 0x0059, 12},
1462 { 0x005A, 12}, { 0x005B, 12}, { 0x005C, 12}, { 0x005D, 12}, { 0x005E, 12}, { 0x005F, 12},
1466 { 0x0000, 2}, { 0x0003, 3}, { 0x000D, 4}, { 0x0005, 4}, { 0x001C, 5}, { 0x0016, 5},
1467 { 0x003F, 6}, { 0x003A, 6}, { 0x002E, 6}, { 0x0022, 6}, { 0x007B, 7}, { 0x0067, 7},
1468 { 0x005F, 7}, { 0x0047, 7}, { 0x0026, 7}, { 0x00EF, 8}, { 0x00CD, 8}, { 0x00C1, 8},
1469 { 0x00A9, 8}, { 0x004F, 8}, { 0x01F2, 9}, { 0x01DD, 9}, { 0x0199, 9}, { 0x0185, 9},
1470 { 0x015D, 9}, { 0x011B, 9}, { 0x03EF, 10}, { 0x03E1, 10}, { 0x03C8, 10}, { 0x0331, 10},
1471 { 0x0303, 10}, { 0x02F1, 10}, { 0x02A0, 10}, { 0x0233, 10}, { 0x0126, 10}, { 0x07C0, 11},
1472 { 0x076F, 11}, { 0x076C, 11}, { 0x0661, 11}, { 0x0604, 11}, { 0x0572, 11}, { 0x0551, 11},
1473 { 0x046A, 11}, { 0x0274, 11}, { 0x0F27, 12}, { 0x0F24, 12}, { 0x0EDB, 12}, { 0x0C8E, 12},
1474 { 0x0C0B, 12}, { 0x0C0A, 12}, { 0x0AE3, 12}, { 0x08D6, 12}, { 0x0490, 12}, { 0x0495, 12},
1475 { 0x1F19, 13}, { 0x1DB5, 13}, { 0x0009, 4}, { 0x0010, 5}, { 0x0029, 6}, { 0x0062, 7},
1476 { 0x00F3, 8}, { 0x00AD, 8}, { 0x01E5, 9}, { 0x0179, 9}, { 0x009C, 9}, { 0x03B1, 10},
1477 { 0x02AE, 10}, { 0x0127, 10}, { 0x076E, 11}, { 0x0570, 11}, { 0x0275, 11}, { 0x0F25, 12},
1478 { 0x0EC0, 12}, { 0x0AA0, 12}, { 0x08D7, 12}, { 0x1E4C, 13}, { 0x0008, 5}, { 0x0063, 7},
1479 { 0x00AF, 8}, { 0x017B, 9}, { 0x03B3, 10}, { 0x07DD, 11}, { 0x0640, 11}, { 0x0F8D, 12},
1480 { 0x0BC1, 12}, { 0x0491, 12}, { 0x0028, 6}, { 0x00C3, 8}, { 0x0151, 9}, { 0x02A1, 10},
1481 { 0x0573, 11}, { 0x0EC3, 12}, { 0x1F35, 13}, { 0x0065, 7}, { 0x01DA, 9}, { 0x02AF, 10},
1482 { 0x0277, 11}, { 0x08C9, 12}, { 0x1781, 13}, { 0x0025, 7}, { 0x0118, 9}, { 0x0646, 11},
1483 { 0x0AA6, 12}, { 0x1780, 13}, { 0x00C9, 8}, { 0x0321, 10}, { 0x0F9B, 12}, { 0x191E, 13},
1484 { 0x0048, 8}, { 0x07CC, 11}, { 0x0AA1, 12}, { 0x0180, 9}, { 0x0465, 11}, { 0x1905, 13},
1485 { 0x03E2, 10}, { 0x0EC1, 12}, { 0x3C9B, 14}, { 0x02F4, 10}, { 0x08C8, 12}, { 0x07C1, 11},
1486 { 0x0928, 13}, { 0x05E1, 11}, { 0x320D, 14}, { 0x0EC2, 12}, { 0x6418, 15}, { 0x1F34, 13},
1487 { 0x0078, 7}, { 0x0155, 9}, { 0x0552, 11}, { 0x191F, 13}, { 0x00FA, 8}, { 0x07DC, 11},
1488 { 0x1907, 13}, { 0x00AC, 8}, { 0x0249, 11}, { 0x13B1, 14}, { 0x01F6, 9}, { 0x0AE2, 12},
1489 { 0x01DC, 9}, { 0x04ED, 12}, { 0x0184, 9}, { 0x1904, 13}, { 0x0156, 9}, { 0x09D9, 13},
1490 { 0x03E7, 10}, { 0x0929, 13}, { 0x03B2, 10}, { 0x3B68, 14}, { 0x02F5, 10}, { 0x13B0, 14},
1491 { 0x0322, 10}, { 0x3B69, 14}, { 0x0234, 10}, { 0x7935, 15}, { 0x07C7, 11}, { 0xC833, 16},
1492 { 0x0660, 11}, { 0x7934, 15}, { 0x024B, 11}, { 0xC832, 16}, { 0x0AA7, 12}, { 0x1F18, 13},
1496 { 0x0002, 2}, { 0x0000, 3}, { 0x001E, 5}, { 0x0004, 5}, { 0x0012, 6}, { 0x0070, 7},
1497 { 0x001A, 7}, { 0x005F, 8}, { 0x0047, 8}, { 0x01D3, 9}, { 0x00B5, 9}, { 0x0057, 9},
1498 { 0x03B5, 10}, { 0x016D, 10}, { 0x0162, 10}, { 0x07CE, 11}, { 0x0719, 11}, { 0x0691, 11},
1499 { 0x02C6, 11}, { 0x0156, 11}, { 0x0F92, 12}, { 0x0D2E, 12}, { 0x0D20, 12}, { 0x059E, 12},
1500 { 0x0468, 12}, { 0x02A6, 12}, { 0x1DA2, 13}, { 0x1C60, 13}, { 0x1A43, 13}, { 0x0B1D, 13},
1501 { 0x08C0, 13}, { 0x055D, 13}, { 0x0003, 3}, { 0x000A, 5}, { 0x0077, 7}, { 0x00E5, 8},
1502 { 0x01D9, 9}, { 0x03E5, 10}, { 0x0166, 10}, { 0x0694, 11}, { 0x0152, 11}, { 0x059F, 12},
1503 { 0x1F3C, 13}, { 0x1A4B, 13}, { 0x055E, 13}, { 0x000C, 4}, { 0x007D, 7}, { 0x0044, 8},
1504 { 0x03E0, 10}, { 0x0769, 11}, { 0x0E31, 12}, { 0x1F26, 13}, { 0x055C, 13}, { 0x001B, 5},
1505 { 0x00E2, 8}, { 0x03A5, 10}, { 0x02C9, 11}, { 0x1F23, 13}, { 0x3B47, 14}, { 0x0007, 5},
1506 { 0x01D8, 9}, { 0x02D8, 11}, { 0x1F27, 13}, { 0x3494, 14}, { 0x0035, 6}, { 0x03E1, 10},
1507 { 0x059C, 12}, { 0x38C3, 14}, { 0x000C, 6}, { 0x0165, 10}, { 0x1D23, 13}, { 0x1638, 14},
1508 { 0x0068, 7}, { 0x0693, 11}, { 0x3A45, 14}, { 0x0020, 7}, { 0x0F90, 12}, { 0x7CF6, 15},
1509 { 0x00E8, 8}, { 0x058F, 12}, { 0x2CEF, 15}, { 0x0045, 8}, { 0x0B3A, 13}, { 0x01F1, 9},
1510 { 0x3B46, 14}, { 0x01A7, 9}, { 0x1676, 14}, { 0x0056, 9}, { 0x692A, 15}, { 0x038D, 10},
1511 { 0xE309, 16}, { 0x00AA, 10}, { 0x1C611, 17}, { 0x02DF, 11}, { 0xB3B9, 17}, { 0x02C8, 11},
1512 { 0x38C20, 18}, { 0x01B0, 11}, { 0x16390, 18}, { 0x0F9F, 12}, { 0x16771, 18}, { 0x0ED0, 12},
1513 { 0x71843, 19}, { 0x0D2A, 12}, { 0xF9E8C, 20}, { 0x0461, 12}, { 0xF9E8E, 20}, { 0x0B67, 13},
1514 { 0x055F, 13}, { 0x003F, 6}, { 0x006D, 9}, { 0x0E90, 12}, { 0x054E, 13}, { 0x0013, 6},
1515 { 0x0119, 10}, { 0x0B66, 13}, { 0x000B, 6}, { 0x0235, 11}, { 0x7CF5, 15}, { 0x0075, 7},
1516 { 0x0D24, 12}, { 0xF9E9, 16}, { 0x002E, 7}, { 0x1F22, 13}, { 0x0021, 7}, { 0x054F, 13},
1517 { 0x0014, 7}, { 0x3A44, 14}, { 0x00E4, 8}, { 0x7CF7, 15}, { 0x005E, 8}, { 0x7185, 15},
1518 { 0x0037, 8}, { 0x2C73, 15}, { 0x01DB, 9}, { 0x59DD, 16}, { 0x01C7, 9}, { 0x692B, 15},
1519 { 0x01A6, 9}, { 0x58E5, 16}, { 0x00B4, 9}, { 0x1F3D0, 17}, { 0x00B0, 9}, { 0xB1C9, 17},
1520 { 0x03E6, 10}, { 0x16770, 18}, { 0x016E, 10}, { 0x3E7A2, 18}, { 0x011B, 10}, { 0xF9E8D, 20},
1521 { 0x00D9, 10}, { 0xF9E8F, 20}, { 0x00A8, 10}, { 0x2C723, 19}, { 0x0749, 11}, { 0xE3084, 20},
1522 { 0x0696, 11}, { 0x58E45, 20}, { 0x02DE, 11}, { 0xB1C88, 21}, { 0x0231, 11}, { 0x1C610A, 21},
1523 { 0x01B1, 11}, { 0x71842D, 23}, { 0x0D2B, 12}, { 0x38C217, 22}, { 0x0D2F, 12}, { 0x163913, 22},
1524 { 0x05B2, 12}, { 0x163912, 22}, { 0x0469, 12}, { 0x71842C, 23}, { 0x1A42, 13}, { 0x08C1, 13},
1530 0, 520, 552, 616, 1128, 1160, 1224, 1740, 1772, 1836, 1900, 2436,
1531 2986, 3050, 3610, 4154, 4218, 4746, 5326, 5390, 5902, 6554, 7658, 8342,
1532 9304, 9988, 10630, 11234, 12174, 13006, 13560, 14232, 14786, 15432, 16350, 17522,
1533 20372, 21818, 22330, 22394, 23166, 23678, 23742, 24820, 25332, 25396, 26460, 26980,
1534 27048, 27592, 27600, 27608, 27616, 27624, 28224, 28258, 28290, 28802, 28834, 28866,
1535 29378, 29412, 29444, 29960, 29994, 30026, 30538, 30572, 30604, 31120, 31154, 31186,
1536 31714, 31746, 31778, 32306, 32340, 32372
1546 static int done = 0;
1548 static VLC_TYPE vlc_table[32372][2];
1566 for (i = 0; i < 3; i++) {
1583 for (i = 0; i < 4; i++) {
1600 for (i = 0; i < 8; i++) {
1613 for (i = 0; i < 4; i++) {
1633 for (i = 0; i < 4; i++) {
1641 for (i = 0; i < 8; i++) {
static unsigned int show_bits_long(GetBitContext *s, int n)
Show 0-32 bits.
in the bitstream is reported as 00b
const uint8_t ff_vc1_imode_codes[7]
const uint8_t ff_vc1_icbpcy_p_bits[8][63]
int use_ic
use intensity compensation in B-frames
#define VC1_TTBLK_VLC_BITS
const struct AVCodec * codec
const uint8_t ff_vc1_mv_pmode_table[2][5]
MV P mode - the 5th element is only used for mode 1.
uint8_t bfraction_lut_index
Index for BFRACTION value (see Table 40, reproduced into ff_vc1_bfraction_lut[])
const uint8_t ff_vc1_mv_diff_bits[4][73]
void(* vc1_inv_trans_4x8)(uint8_t *dest, int line_size, int16_t *block)
static int shift(int a, int b)
#define VC1_ICBPCY_VLC_BITS
const uint8_t ff_vc1_pquant_table[3][32]
uint8_t lumscale2
for interlaced field P picture
int k_x
Number of bits for MVs (depends on MV range)
int reffield
if numref = 0 (1 reference) then reffield decides which
const uint8_t ff_vc1_norm2_codes[4]
void ff_simple_idct84_add(uint8_t *dest, int line_size, int16_t *block)
const uint8_t ff_vc1_2ref_mvdata_bits[8][126]
const uint8_t ff_vc1_if_1mv_mbmode_codes[8][6]
int mv_type_is_raw
mv type mb plane is not coded
Explicitly specified at frame level.
uint8_t dmvrange
Frame decoding info for interlaced picture.
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
int max_b_frames
maximum number of B-frames between non-B-frames Note: The output will be delayed by max_b_frames+1 re...
#define AV_LOG_WARNING
Something somehow does not look correct.
int tt_index
Index for Transform Type tables (to decode TTMB)
#define VC1_2REF_MVDATA_VLC_BITS
int extended_mv
Ext MV in P/B (not in Simple)
int broadcast
TFF/RFF present.
enum AVColorRange color_range
MPEG vs JPEG YUV range.
void avcodec_set_dimensions(AVCodecContext *s, int width, int height)
const uint8_t ff_vc1_4mv_block_pattern_bits[4][16]
uint8_t rangeredfrm
Frame decoding info for S/M profiles only.
AVRational sample_aspect_ratio
sample aspect ratio (0 if unknown) That is the width of a pixel divided by the height of the pixel...
const uint8_t ff_vc1_cbpcy_p_bits[4][64]
const int ff_vc1_fps_nr[7]
int intcompfield
which of the two fields to be intensity compensated
av_dlog(ac->avr,"%d samples - audio_convert: %s to %s (%s)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt), use_generic?ac->func_descr_generic:ac->func_descr)
int fastuvmc
Rounding of qpel vector to hpel ? (not in Simple)
VLC ff_vc1_2ref_mvdata_vlc[8]
void(* vc1_inv_trans_8x4_dc)(uint8_t *dest, int line_size, int16_t *block)
static int bitplane_decoding(uint8_t *data, int *raw_flag, VC1Context *v)
Decode a bitplane's bits.
int frmrtq_postproc
3bits,
const uint8_t ff_vc1_adv_progressive_4x8_zz[32]
output residual component w
static int vop_dquant_decoding(VC1Context *v)
VOP Dquant decoding.
AVRational time_base
This is the fundamental unit of time (in seconds) in terms of which frame timestamps are represented...
int hrd_param_flag
Presence of Hypothetical Reference Decoder parameters.
const uint8_t ff_vc1_1ref_mvdata_bits[4][72]
#define VC1_4MV_BLOCK_PATTERN_VLC_BITS
const uint8_t ff_vc1_ttmb_bits[3][16]
int refdist
distance of the current picture from reference
uint8_t * acpred_plane
AC prediction flags bitplane.
int res_transtab
reserved, always 0
const uint8_t ff_vc1_2mv_block_pattern_codes[4][4]
int first_pic_header_flag
const uint8_t ff_vc1_2mv_block_pattern_bits[4][4]
int panscanflag
NUMPANSCANWIN, TOPLEFT{X,Y}, BOTRIGHT{X,Y} present.
#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size)
const AVRational ff_vc1_pixel_aspect[16]
VLC ff_vc1_cbpcy_p_vlc[4]
int interlace
Progressive/interlaced (RPTFTM syntax element)
const uint16_t ff_vc1_icbpcy_p_codes[8][63]
int y_ac_table_index
Luma index from AC2FRM element.
int c_ac_table_index
AC coding set indexes.
const int ff_vc1_ac_sizes[AC_MODES]
void(* vc1_inv_trans_8x8)(int16_t *b)
int ttfrm
Transform type info present at frame level.
int resync_marker
could this stream contain resync markers
uint8_t lutuv[256]
lookup tables used for intensity compensation
int16_t bfraction
Relative position % anchors=> how to scale MVs.
const uint8_t ff_vc1_if_mmv_mbmode_bits[8][8]
int profile
Sequence header data for all Profiles TODO: choose between ints, uint8_ts and monobit flags...
int refdist_flag
REFDIST syntax element present in II, IP, PI or PP field picture headers.
uint8_t * forward_mb_plane
bitplane for "forward" MBs
int mb_height
number of MBs horizontally & vertically
const uint8_t ff_vc1_imode_bits[7]
int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
Decode Simple/Main Profiles sequence header.
const uint8_t ff_vc1_subblkpat_bits[3][15]
VLC ff_vc1_4mv_block_pattern_vlc[4]
Non-uniform quant used for all frames.
uint8_t * over_flags_plane
Overflags bitplane.
int psf
Progressive Segmented Frame.
uint8_t ttmbf
Transform type flag.
int k_y
Number of bits for MVs (depends on MV range)
static const uint16_t vlc_offs[]
Implicitly specified at frame level.
static void decode_colskip(uint8_t *plane, int width, int height, int stride, GetBitContext *gb)
Decode columns by checking if they are skipped.
int dmb_is_raw
direct mb plane is raw
#define VC1_CBPCY_P_VLC_BITS
void(* vc1_inv_trans_4x4)(uint8_t *dest, int line_size, int16_t *block)
int res_y411
reserved, old interlaced mode
int overlap
overlapped transforms in use
in the bitstream is reported as 11b
int qs_last
if qpel has been used in the previous (tr.) picture
#define VC1_BFRACTION_VLC_BITS
void av_log(void *avcl, int level, const char *fmt,...)
int quarter_sample
1->qpel, 0->half pel ME/MC
static const uint8_t offset[127][2]
const int ff_vc1_ttfrm_to_tt[4]
uint8_t broken_link
Broken link flag (BROKEN_LINK syntax element)
void(* vc1_inv_trans_8x8_dc)(uint8_t *dest, int line_size, int16_t *block)
const uint8_t * zz_8x4
Zigzag scan table for TT_8x4 coding mode.
int postprocflag
Per-frame processing suggestion flag present.
int res_rtm_flag
reserved, set to 1
const uint8_t ff_wmv2_scantableB[64]
#define VC1_IF_1MV_MBMODE_VLC_BITS
static void decode_rowskip(uint8_t *plane, int width, int height, int stride, GetBitContext *gb)
Decode rows by checking if they are skipped.
int ff_vc1_parse_frame_header_adv(VC1Context *v, GetBitContext *gb)
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
Reduce a fraction.
const uint16_t ff_vc1_norm6_codes[64]
the normal 219*2^(n-8) "MPEG" YUV ranges
int cur_field_type
0: top, 1: bottom
struct AVRational AVRational
rational number numerator/denominator
const uint8_t * zz_4x8
Zigzag scan table for TT_4x8 coding mode.
enum AVPictureType pict_type
Picture type of the frame.
const uint16_t ff_vc1_cbpcy_p_codes[4][64]
const int ff_vc1_fps_dr[2]
int tfcntrflag
TFCNTR present.
int field_mode
1 for interlaced field pictures
int width
picture width / height.
#define VC1_SUBBLKPAT_VLC_BITS
uint8_t * mbskip_table
used to avoid copy if macroblock skipped (for black regions for example) and used for b-frame encodin...
uint8_t mv_mode
Frame decoding info for all profiles.
Picture * current_picture_ptr
pointer to the current picture
void ff_simple_idct48_add(uint8_t *dest, int line_size, int16_t *block)
enum AVColorPrimaries color_primaries
Chromaticity coordinates of the source primaries.
int ff_vc1_parse_frame_header(VC1Context *v, GetBitContext *gb)
uint8_t lumscale
Luma compensation parameters.
const uint32_t ff_vc1_1ref_mvdata_codes[4][72]
static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
Parse a vlc code.
uint8_t closed_entry
Closed entry point flag (CLOSED_ENTRY syntax element)
int ticks_per_frame
For some codecs, the time base is closer to the field rate than the frame rate.
#define INIT_VLC_USE_NEW_STATIC
VLC * cbpcy_vlc
CBPCY VLC table.
const uint8_t ff_vc1_norm6_bits[64]
static int decode210(GetBitContext *gb)
void(* vc1_inv_trans_4x8_dc)(uint8_t *dest, int line_size, int16_t *block)
int rangered
RANGEREDFRM (range reduction) syntax element present at frame level.
int finterpflag
INTERPFRM present.
or the Software in violation of any applicable export control laws in any jurisdiction Except as provided by mandatorily applicable UPF has no obligation to provide you with source code to the Software In the event Software contains any source code
static int decode_sequence_header_adv(VC1Context *v, GetBitContext *gb)
int chromaformat
2bits, 2=4:2:0, only defined
int res_sprite
Simple/Main Profile sequence header.
const uint8_t ff_vc1_ttblk_codes[3][8]
const uint8_t ff_vc1_4mv_block_pattern_codes[4][16]
const uint8_t ff_vc1_intfr_non4mv_mbmode_codes[4][9]
int multires
frame-level RESPIC syntax element present
int ff_vc1_init_common(VC1Context *v)
Init VC-1 specific tables and VC1Context members.
main external API structure.
const uint8_t ff_wmv2_scantableA[64]
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
#define init_vlc(vlc, nb_bits, nb_codes,bits, bits_wrap, bits_size,codes, codes_wrap, codes_size,flags)
int extended_dmv
Additional extended dmv range at P/B frame-level.
static unsigned int get_bits1(GetBitContext *s)
void(* vc1_inv_trans_8x4)(uint8_t *dest, int line_size, int16_t *block)
BYTE int const BYTE int int int height
static void skip_bits1(GetBitContext *s)
int fmb_is_raw
forward mb plane is raw
const uint16_t ff_vc1_ttmb_codes[3][16]
static void skip_bits(GetBitContext *s, int n)
synthesis window for stochastic i
enum AVColorSpace colorspace
YUV colorspace type.
enum AVColorTransferCharacteristic color_trc
Color Transfer Characteristic.
const uint16_t ff_vc1_intfr_4mv_mbmode_codes[4][15]
#define VC1_2MV_BLOCK_PATTERN_VLC_BITS
uint8_t respic
Frame-level flag for resized images.
int skip_is_raw
skip mb plane is not coded
VLC ff_vc1_if_mmv_mbmode_vlc[8]
#define INIT_LUT(lumscale, lumshift, luty, lutuv)
int quantizer_mode
2bits, quantizer mode used for sequence, see QUANT_*
int ref_field_type[2]
forward and backward reference field type (top or bottom)
uint8_t * direct_mb_plane
bitplane for "direct" MBs
uint8_t mvrange
Ranges:0 -> [-64n 63.f] x [-32, 31.f]1 -> [-128, 127.f] x [-64, 63.f]2 -> [-512, 511.f] x [-128, 127.f]3 -> [-1024, 1023.f] x [-256, 255.f].
int max_b_frames
max number of b-frames for encoding
int pict_type
AV_PICTURE_TYPE_I, AV_PICTURE_TYPE_P, AV_PICTURE_TYPE_B, ...
uint8_t * mv_type_mb_plane
bitplane for mv_type == (4MV)
int vstransform
variable-size [48]x[48] transform type + info
VLC ff_vc1_if_1mv_mbmode_vlc[8]
int numref
number of past field pictures used as reference
void avpriv_report_missing_feature(void *avc, const char *msg,...) av_printf_format(2
Log a generic warning message about a missing feature.
void ff_simple_idct_add_8(uint8_t *dest, int line_size, int16_t *block)
VLC ff_vc1_mv_diff_vlc[4]
const uint8_t ff_vc1_intfr_4mv_mbmode_bits[4][15]
const uint8_t ff_vc1_intfr_non4mv_mbmode_bits[4][9]
in the bitstream is reported as 10b
const uint8_t ff_vc1_bfraction_bits[23]
struct AVCodecContext * avctx
const uint8_t ff_vc1_bfraction_codes[23]
int pqindex
raw pqindex used in coding set selection
#define VC1_1REF_MVDATA_VLC_BITS
int hrd_num_leaky_buckets
#define VC1_IF_MMV_MBMODE_VLC_BITS
common internal api header.
int mb_stride
mb_width+1 used for some arrays to allow simple addressing of left & top MBs without sig11 ...
#define AV_LOG_DEBUG
Stuff which is only useful for libav* developers.
VLC ff_vc1_2mv_block_pattern_vlc[4]
#define VC1_TTMB_VLC_BITS
static int get_unary(GetBitContext *gb, int stop, int len)
Get unary code of limited length.
#define VC1_IMODE_VLC_BITS
enum FrameCodingMode fcm
Frame decoding info for Advanced profile.
uint8_t dquantfrm
pquant parameters
void ff_simple_idct44_add(uint8_t *dest, int line_size, int16_t *block)
int res_fasttx
reserved, always 1
enum AVDiscard skip_loop_filter
Skip loop filtering for selected frames.
#define VC1_MV_DIFF_VLC_BITS
#define VC1_NORM2_VLC_BITS
VLC ff_vc1_ac_coeff_table[8]
const uint8_t ff_vc1_adv_progressive_8x4_zz[32]
int ff_vc1_decode_entry_point(AVCodecContext *avctx, VC1Context *v, GetBitContext *gb)
#define VC1_INTFR_4MV_MBMODE_VLC_BITS
static const uint32_t vc1_ac_tables[AC_MODES][186][2]
uint8_t pquantizer
Uniform (over sequence) quantizer in use.
const uint8_t ff_vc1_ttblk_bits[3][8]
static int decode012(GetBitContext *gb)
VLC_TYPE(* table)[2]
code, bits
VLC ff_vc1_1ref_mvdata_vlc[4]
int bitrtq_postproc
5bits, quantized framerate-based postprocessing strength
int parse_only
Context is used within parser.
const uint8_t ff_vc1_subblkpat_codes[3][15]
void(* vc1_inv_trans_4x4_dc)(uint8_t *dest, int line_size, int16_t *block)
int level
Advanced Profile.
#define VC1_NORM6_VLC_BITS
int brfd
reference frame distance (forward or backward)
int dquant
How qscale varies with MBs, 2bits (not in Simple)
uint8_t mv_mode2
Secondary MV coding mode (B frames)
const uint8_t ff_vc1_if_1mv_mbmode_bits[8][6]
const uint8_t ff_vc1_norm2_bits[4]
const uint8_t ff_vc1_if_mmv_mbmode_codes[8][8]
const uint8_t ff_vc1_mv_pmode_table2[2][4]
#define VC1_INTFR_NON4MV_MBMODE_VLC_BITS
VLC ff_vc1_intfr_non4mv_mbmode_vlc[4]
VLC ff_vc1_intfr_4mv_mbmode_vlc[4]
VLC ff_vc1_subblkpat_vlc[3]
uint8_t halfpq
Uniform quant over image and qp+.5.
const uint32_t ff_vc1_2ref_mvdata_codes[8][126]
const uint16_t ff_vc1_mv_diff_codes[4][73]
void ff_simple_idct_8(int16_t *block)
const int16_t ff_vc1_bfraction_lut[23]
uint8_t altpq
Current/alternate frame quantizer scale.