|
|
|
@ -28,6 +28,7 @@ |
|
|
|
|
|
|
|
|
|
#include "avcodec.h" |
|
|
|
|
#include "internal.h" |
|
|
|
|
#include "mathops.h" |
|
|
|
|
#include "rectangle.h" |
|
|
|
|
#include "thread.h" |
|
|
|
|
#include "vp8.h" |
|
|
|
@ -527,7 +528,7 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si |
|
|
|
|
sizeof(vp7_mv_default_prob[i])); |
|
|
|
|
memset(&s->segmentation, 0, sizeof(s->segmentation)); |
|
|
|
|
memset(&s->lf_delta, 0, sizeof(s->lf_delta)); |
|
|
|
|
memcpy(s->prob[0].scan, zigzag_scan, sizeof(s->prob[0].scan)); |
|
|
|
|
memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (s->keyframe || s->profile > 0) |
|
|
|
@ -599,7 +600,7 @@ static int vp7_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si |
|
|
|
|
/* G. DCT coefficient ordering specification */ |
|
|
|
|
if (vp8_rac_get(c)) |
|
|
|
|
for (i = 1; i < 16; i++) |
|
|
|
|
s->prob[0].scan[i] = zigzag_scan[vp8_rac_get_uint(c, 4)]; |
|
|
|
|
s->prob[0].scan[i] = ff_zigzag_scan[vp8_rac_get_uint(c, 4)]; |
|
|
|
|
|
|
|
|
|
/* H. Loop filter levels */ |
|
|
|
|
if (s->profile > 0) |
|
|
|
@ -1317,7 +1318,7 @@ static int vp8_decode_block_coeffs_internal(VP56RangeCoder *r, |
|
|
|
|
int16_t qmul[2]) |
|
|
|
|
{ |
|
|
|
|
return decode_block_coeffs_internal(r, block, probs, i, |
|
|
|
|
token_prob, qmul, zigzag_scan, IS_VP8); |
|
|
|
|
token_prob, qmul, ff_zigzag_scan, IS_VP8); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
@ -1364,7 +1365,7 @@ void decode_mb_coeffs(VP8Context *s, VP8ThreadData *td, VP56RangeCoder *c, |
|
|
|
|
// decode DC values and do hadamard
|
|
|
|
|
nnz = decode_block_coeffs(c, td->block_dc, s->prob->token[1], 0, |
|
|
|
|
nnz_pred, s->qmat[segment].luma_dc_qmul, |
|
|
|
|
zigzag_scan, is_vp7); |
|
|
|
|
ff_zigzag_scan, is_vp7); |
|
|
|
|
l_nnz[8] = t_nnz[8] = !!nnz; |
|
|
|
|
|
|
|
|
|
if (is_vp7 && mb->mode > MODE_I4x4) { |
|
|
|
@ -2679,7 +2680,7 @@ int vp78_decode_init(AVCodecContext *avctx, int is_vp7) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* does not change for VP8 */ |
|
|
|
|
memcpy(s->prob[0].scan, zigzag_scan, sizeof(s->prob[0].scan)); |
|
|
|
|
memcpy(s->prob[0].scan, ff_zigzag_scan, sizeof(s->prob[0].scan)); |
|
|
|
|
|
|
|
|
|
if ((ret = vp8_init_frames(s)) < 0) { |
|
|
|
|
ff_vp8_decode_free(avctx); |
|
|
|
|