|
|
|
@ -2975,18 +2975,18 @@ static void init_scan_tables(H264Context *h) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
for (i = 0; i < 16; i++) { |
|
|
|
|
#define T(x) (x >> 2) | ((x << 2) & 0xF) |
|
|
|
|
h->zigzag_scan[i] = T(zigzag_scan[i]); |
|
|
|
|
h->field_scan[i] = T(field_scan[i]); |
|
|
|
|
#undef T |
|
|
|
|
#define TRANSPOSE(x) (x >> 2) | ((x << 2) & 0xF) |
|
|
|
|
h->zigzag_scan[i] = TRANSPOSE(zigzag_scan[i]); |
|
|
|
|
h->field_scan[i] = TRANSPOSE(field_scan[i]); |
|
|
|
|
#undef TRANSPOSE |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < 64; i++) { |
|
|
|
|
#define T(x) (x >> 3) | ((x & 7) << 3) |
|
|
|
|
h->zigzag_scan8x8[i] = T(ff_zigzag_direct[i]); |
|
|
|
|
h->zigzag_scan8x8_cavlc[i] = T(zigzag_scan8x8_cavlc[i]); |
|
|
|
|
h->field_scan8x8[i] = T(field_scan8x8[i]); |
|
|
|
|
h->field_scan8x8_cavlc[i] = T(field_scan8x8_cavlc[i]); |
|
|
|
|
#undef T |
|
|
|
|
#define TRANSPOSE(x) (x >> 3) | ((x & 7) << 3) |
|
|
|
|
h->zigzag_scan8x8[i] = TRANSPOSE(ff_zigzag_direct[i]); |
|
|
|
|
h->zigzag_scan8x8_cavlc[i] = TRANSPOSE(zigzag_scan8x8_cavlc[i]); |
|
|
|
|
h->field_scan8x8[i] = TRANSPOSE(field_scan8x8[i]); |
|
|
|
|
h->field_scan8x8_cavlc[i] = TRANSPOSE(field_scan8x8_cavlc[i]); |
|
|
|
|
#undef TRANSPOSE |
|
|
|
|
} |
|
|
|
|
if (h->sps.transform_bypass) { // FIXME same ugly
|
|
|
|
|
memcpy(h->zigzag_scan_q0 , zigzag_scan , sizeof(h->zigzag_scan_q0 )); |
|
|
|
|