* initialize scan tables */
| 752 | * initialize scan tables |
| 753 | */ |
| 754 | static void init_scan_tables(H264Context *h) |
| 755 | { |
| 756 | int i; |
| 757 | for (i = 0; i < 16; i++) { |
| 758 | #define TRANSPOSE(x) ((x) >> 2) | (((x) << 2) & 0xF) |
| 759 | h->zigzag_scan[i] = TRANSPOSE(ff_zigzag_scan[i]); |
| 760 | h->field_scan[i] = TRANSPOSE(field_scan[i]); |
| 761 | #undef TRANSPOSE |
| 762 | } |
| 763 | for (i = 0; i < 64; i++) { |
| 764 | #define TRANSPOSE(x) ((x) >> 3) | (((x) & 7) << 3) |
| 765 | h->zigzag_scan8x8[i] = TRANSPOSE(ff_zigzag_direct[i]); |
| 766 | h->zigzag_scan8x8_cavlc[i] = TRANSPOSE(zigzag_scan8x8_cavlc[i]); |
| 767 | h->field_scan8x8[i] = TRANSPOSE(field_scan8x8[i]); |
| 768 | h->field_scan8x8_cavlc[i] = TRANSPOSE(field_scan8x8_cavlc[i]); |
| 769 | #undef TRANSPOSE |
| 770 | } |
| 771 | if (h->ps.sps->transform_bypass) { // FIXME same ugly |
| 772 | memcpy(h->zigzag_scan_q0 , ff_zigzag_scan , sizeof(h->zigzag_scan_q0 )); |
| 773 | memcpy(h->zigzag_scan8x8_q0 , ff_zigzag_direct , sizeof(h->zigzag_scan8x8_q0 )); |
| 774 | memcpy(h->zigzag_scan8x8_cavlc_q0 , zigzag_scan8x8_cavlc , sizeof(h->zigzag_scan8x8_cavlc_q0)); |
| 775 | memcpy(h->field_scan_q0 , field_scan , sizeof(h->field_scan_q0 )); |
| 776 | memcpy(h->field_scan8x8_q0 , field_scan8x8 , sizeof(h->field_scan8x8_q0 )); |
| 777 | memcpy(h->field_scan8x8_cavlc_q0 , field_scan8x8_cavlc , sizeof(h->field_scan8x8_cavlc_q0 )); |
| 778 | } else { |
| 779 | memcpy(h->zigzag_scan_q0 , h->zigzag_scan , sizeof(h->zigzag_scan_q0 )); |
| 780 | memcpy(h->zigzag_scan8x8_q0 , h->zigzag_scan8x8 , sizeof(h->zigzag_scan8x8_q0 )); |
| 781 | memcpy(h->zigzag_scan8x8_cavlc_q0 , h->zigzag_scan8x8_cavlc , sizeof(h->zigzag_scan8x8_cavlc_q0)); |
| 782 | memcpy(h->field_scan_q0 , h->field_scan , sizeof(h->field_scan_q0 )); |
| 783 | memcpy(h->field_scan8x8_q0 , h->field_scan8x8 , sizeof(h->field_scan8x8_q0 )); |
| 784 | memcpy(h->field_scan8x8_cavlc_q0 , h->field_scan8x8_cavlc , sizeof(h->field_scan8x8_cavlc_q0 )); |
| 785 | } |
| 786 | } |
| 787 | |
| 788 | static enum AVPixelFormat get_pixel_format(H264Context *h, int force_callback) |
| 789 | { |
no outgoing calls
no test coverage detected