summaryrefslogtreecommitdiff
path: root/vp9/decoder
diff options
context:
space:
mode:
authorRonald S. Bultje <rbultje@google.com>2013-05-02 13:55:08 -0700
committerRonald S. Bultje <rbultje@google.com>2013-05-02 13:55:35 -0700
commit168d313888ed8f2e752b96b1adf5d2d83d15c056 (patch)
treec97c8be4c684054aa96a7e54458e910e05fb78dd /vp9/decoder
parente931dac733665970949138933b73621e55b321cd (diff)
downloadlibvpx-168d313888ed8f2e752b96b1adf5d2d83d15c056.tar
libvpx-168d313888ed8f2e752b96b1adf5d2d83d15c056.tar.gz
libvpx-168d313888ed8f2e752b96b1adf5d2d83d15c056.tar.bz2
libvpx-168d313888ed8f2e752b96b1adf5d2d83d15c056.zip
Cache splitmv motion vectors appropriately in decoder.
This fixes some problems in splitmv-related bitstream parsing in the sb8x8 experiment. Change-Id: Id168f9ec9c88626877d8f536e6f394b6f4f782e4
Diffstat (limited to 'vp9/decoder')
-rw-r--r--vp9/decoder/vp9_decodemv.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/vp9/decoder/vp9_decodemv.c b/vp9/decoder/vp9_decodemv.c
index 6c3aad5f4..e4159bbef 100644
--- a/vp9/decoder/vp9_decodemv.c
+++ b/vp9/decoder/vp9_decodemv.c
@@ -692,7 +692,12 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
if (vp9_segfeature_active(xd, mbmi->segment_id, SEG_LVL_SKIP)) {
mbmi->mode = ZEROMV;
} else {
- mbmi->mode = mbmi->sb_type > BLOCK_SIZE_MB16X16 ?
+ mbmi->mode =
+#if CONFIG_SB8X8
+ mbmi->sb_type > BLOCK_SIZE_SB8X8 ?
+#else
+ mbmi->sb_type > BLOCK_SIZE_MB16X16 ?
+#endif
read_sb_mv_ref(r, mv_ref_p)
: read_mv_ref(r, mv_ref_p);
vp9_accum_mv_refs(cm, mbmi->mode, mbmi->mb_mode_context[ref_frame]);
@@ -882,7 +887,11 @@ static void read_mb_modes_mv(VP9D_COMP *pbi, MODE_INFO *mi, MB_MODE_INFO *mbmi,
}
*/
-#if !CONFIG_SB8X8
+#if CONFIG_SB8X8
+ mi->bmi[j].as_mv[0].as_int = blockmv.as_int;
+ if (mbmi->second_ref_frame > 0)
+ mi->bmi[j].as_mv[1].as_int = secondmv.as_int;
+#else
{
/* Fill (uniform) modes, mvs of jth subset.
Must do it here because ensuing subsets can