From: James Zern Date: Mon, 7 Oct 2013 10:26:26 +0000 (+0200) Subject: vp9_decode_tokens: limit scope of function params X-Git-Tag: v1.3.0~181 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=27aec502ae10fa2012498711facd6d6f476ddc60;p=libvpx vp9_decode_tokens: limit scope of function params replace VP9D_COMP usage with the (slightly) more targeted VP9_COMMON/MACROBLCKD/struct segmentation structures. Change-Id: Iabb3616e231417b0e17b7e4b384ea63167a81745 --- diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index 30e9e5ded..38e9011ce 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -169,7 +169,7 @@ static int decode_tokens(VP9D_COMP *pbi, BLOCK_SIZE bsize, vp9_reader *r) { cm->base_qindex)); // TODO(dkovalev) if (!vp9_reader_has_error(r)) - return vp9_decode_tokens(pbi, r, bsize); + return vp9_decode_tokens(cm, xd, &cm->seg, r, bsize); } } diff --git a/vp9/decoder/vp9_detokenize.c b/vp9/decoder/vp9_detokenize.c index 63e5252cf..2f5b1369c 100644 --- a/vp9/decoder/vp9_detokenize.c +++ b/vp9/decoder/vp9_detokenize.c @@ -208,7 +208,9 @@ static int decode_coefs(VP9_COMMON *cm, const MACROBLOCKD *xd, } struct decode_block_args { - VP9D_COMP *pbi; + VP9_COMMON *cm; + MACROBLOCKD *xd; + struct segmentation *seg; vp9_reader *r; int *eobtotal; }; @@ -218,8 +220,8 @@ static void decode_block(int plane, int block, BLOCK_SIZE plane_bsize, const struct decode_block_args* const arg = argv; // find the maximum eob for this transform size, adjusted by segment - MACROBLOCKD *xd = &arg->pbi->mb; - struct segmentation *seg = &arg->pbi->common.seg; + MACROBLOCKD *xd = arg->xd; + const struct segmentation *seg = arg->seg; struct macroblockd_plane* pd = &xd->plane[plane]; const int segment_id = xd->mi_8x8[0]->mbmi.segment_id; const int seg_eob = get_tx_eob(seg, segment_id, tx_size); @@ -229,7 +231,7 @@ static void decode_block(int plane, int block, BLOCK_SIZE plane_bsize, pt = get_entropy_context(tx_size, pd->above_context + aoff, pd->left_context + loff); - eob = decode_coefs(&arg->pbi->common, xd, arg->r, block, + eob = decode_coefs(arg->cm, xd, arg->r, block, pd->plane_type, seg_eob, BLOCK_OFFSET(pd->qcoeff, block), tx_size, pd->dequant, pt); @@ -239,9 +241,11 @@ static void decode_block(int plane, int block, BLOCK_SIZE plane_bsize, *arg->eobtotal += eob; } -int vp9_decode_tokens(VP9D_COMP *pbi, vp9_reader *r, BLOCK_SIZE bsize) { +int vp9_decode_tokens(VP9_COMMON *cm, MACROBLOCKD *xd, + struct segmentation *seg, + vp9_reader *r, BLOCK_SIZE bsize) { int eobtotal = 0; - struct decode_block_args args = {pbi, r, &eobtotal}; - foreach_transformed_block(&pbi->mb, bsize, decode_block, &args); + struct decode_block_args args = {cm, xd, seg, r, &eobtotal}; + foreach_transformed_block(xd, bsize, decode_block, &args); return eobtotal; } diff --git a/vp9/decoder/vp9_detokenize.h b/vp9/decoder/vp9_detokenize.h index cf07c5629..0fb4c3cc9 100644 --- a/vp9/decoder/vp9_detokenize.h +++ b/vp9/decoder/vp9_detokenize.h @@ -15,6 +15,8 @@ #include "vp9/decoder/vp9_onyxd_int.h" #include "vp9/decoder/vp9_dboolhuff.h" -int vp9_decode_tokens(VP9D_COMP* pbi, vp9_reader *r, BLOCK_SIZE bsize); +int vp9_decode_tokens(VP9_COMMON *cm, MACROBLOCKD *xd, + struct segmentation *seg, + vp9_reader *r, BLOCK_SIZE bsize); #endif // VP9_DECODER_VP9_DETOKENIZE_H_