| 401 | } |
| 402 | |
| 403 | static void DecodeMacroblock2(s16 *macroblock, u32 subblock_count, const s16 qtables[3][SUBBLOCK_SIZE]) |
| 404 | { |
| 405 | u32 q {}; |
| 406 | |
| 407 | for (u32 sb = 0; sb < subblock_count; ++sb) |
| 408 | { |
| 409 | s16 tmp_sb[SUBBLOCK_SIZE] {}; |
| 410 | const int isChromaSubBlock = (subblock_count - sb <= 2); |
| 411 | |
| 412 | if (isChromaSubBlock) { ++q; } |
| 413 | |
| 414 | MultSubBlocks(macroblock, macroblock, qtables[q], 4); |
| 415 | ZigZagSubBlock(tmp_sb, macroblock); |
| 416 | InverseDCTSubBlock(macroblock, tmp_sb); |
| 417 | |
| 418 | macroblock += SUBBLOCK_SIZE; |
| 419 | } |
| 420 | |
| 421 | } |
| 422 | /* |
| 423 | static void DecodeMacroblock3(s16 *macroblock, u32 subblock_count, const s16 qtables[3][SUBBLOCK_SIZE]) |
| 424 | { |
no test coverage detected