| @@ -641,8 +641,6 @@ void decode_mb_mode(VP8Context *s, VP8Macroblock *mb, int mb_x, int mb_y, uint8_ | |||
| * @param block destination for block coefficients | |||
| * @param probs probabilities to use when reading trees from the bitstream | |||
| * @param i initial coeff index, 0 unless a separate DC block is coded | |||
| * @param zero_nhood the initial prediction context for number of surrounding | |||
| * all-zero blocks (only left/top, so 0-2) | |||
| * @param qmul array holding the dc/ac dequant factor at position 0/1 | |||
| * @return 0 if no coeffs were decoded | |||
| * otherwise, the index of the last coeff decoded plus one | |||
| @@ -701,6 +699,17 @@ skip_eob: | |||
| } | |||
| #endif | |||
| /** | |||
| * @param c arithmetic bitstream reader context | |||
| * @param block destination for block coefficients | |||
| * @param probs probabilities to use when reading trees from the bitstream | |||
| * @param i initial coeff index, 0 unless a separate DC block is coded | |||
| * @param zero_nhood the initial prediction context for number of surrounding | |||
| * all-zero blocks (only left/top, so 0-2) | |||
| * @param qmul array holding the dc/ac dequant factor at position 0/1 | |||
| * @return 0 if no coeffs were decoded | |||
| * otherwise, the index of the last coeff decoded plus one | |||
| */ | |||
| static av_always_inline | |||
| int decode_block_coeffs(VP56RangeCoder *c, DCTELEM block[16], | |||
| uint8_t probs[16][3][NUM_DCT_TOKENS-1], | |||
| @@ -1034,10 +1043,9 @@ static const uint8_t subpel_idx[3][8] = { | |||
| }; | |||
| /** | |||
| * Generic MC function. | |||
| * luma MC function | |||
| * | |||
| * @param s VP8 decoding context | |||
| * @param luma 1 for luma (Y) planes, 0 for chroma (Cb/Cr) planes | |||
| * @param dst target buffer for block data at block position | |||
| * @param ref reference picture buffer at origin (0, 0) | |||
| * @param mv motion vector (relative to block position) to get pixel data from | |||
| @@ -1083,6 +1091,23 @@ void vp8_mc_luma(VP8Context *s, uint8_t *dst, AVFrame *ref, const VP56mv *mv, | |||
| } | |||
| } | |||
| /** | |||
| * chroma MC function | |||
| * | |||
| * @param s VP8 decoding context | |||
| * @param dst1 target buffer for block data at block position (U plane) | |||
| * @param dst2 target buffer for block data at block position (V plane) | |||
| * @param ref reference picture buffer at origin (0, 0) | |||
| * @param mv motion vector (relative to block position) to get pixel data from | |||
| * @param x_off horizontal position of block from origin (0, 0) | |||
| * @param y_off vertical position of block from origin (0, 0) | |||
| * @param block_w width of block (16, 8 or 4) | |||
| * @param block_h height of block (always same as block_w) | |||
| * @param width width of src/dst plane data | |||
| * @param height height of src/dst plane data | |||
| * @param linesize size of a single line of plane data, including padding | |||
| * @param mc_func motion compensation function pointers (bilinear or sixtap MC) | |||
| */ | |||
| static av_always_inline | |||
| void vp8_mc_chroma(VP8Context *s, uint8_t *dst1, uint8_t *dst2, AVFrame *ref, | |||
| const VP56mv *mv, int x_off, int y_off, | |||