diff options
author | James Zern <jzern@google.com> | 2013-10-07 12:26:26 +0200 |
---|---|---|
committer | James Zern <jzern@google.com> | 2013-10-21 14:56:32 +0200 |
commit | 27aec502ae10fa2012498711facd6d6f476ddc60 (patch) | |
tree | 0ca96642f57d63b3d4ee7a661bb58a6ae56e85fe /vp9 | |
parent | 2f5b7ad6ca5d80affe3a7dafb0f0c97db075d282 (diff) | |
download | libvpx-27aec502ae10fa2012498711facd6d6f476ddc60.tar libvpx-27aec502ae10fa2012498711facd6d6f476ddc60.tar.gz libvpx-27aec502ae10fa2012498711facd6d6f476ddc60.tar.bz2 libvpx-27aec502ae10fa2012498711facd6d6f476ddc60.zip |
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
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/decoder/vp9_decodframe.c | 2 | ||||
-rw-r--r-- | vp9/decoder/vp9_detokenize.c | 18 | ||||
-rw-r--r-- | vp9/decoder/vp9_detokenize.h | 4 |
3 files changed, 15 insertions, 9 deletions
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_ |