diff options
author | Dmitry Kovalev <dkovalev@google.com> | 2013-08-23 11:05:17 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-08-23 11:05:17 -0700 |
commit | 1c159c470ac3cb5e3612653d94f59d9b405b4a2e (patch) | |
tree | 6fb88124ec06c7e98e7f3b40839f064ba01e53c4 /vp9/decoder/vp9_decodframe.c | |
parent | bef320aa0759c37e99e8dfd657e740fc58160835 (diff) | |
parent | 3c426572074ee10bf28832ea33e5dbef0a86a7fb (diff) | |
download | libvpx-1c159c470ac3cb5e3612653d94f59d9b405b4a2e.tar libvpx-1c159c470ac3cb5e3612653d94f59d9b405b4a2e.tar.gz libvpx-1c159c470ac3cb5e3612653d94f59d9b405b4a2e.tar.bz2 libvpx-1c159c470ac3cb5e3612653d94f59d9b405b4a2e.zip |
Merge "Checking scale factors on access."
Diffstat (limited to 'vp9/decoder/vp9_decodframe.c')
-rw-r--r-- | vp9/decoder/vp9_decodframe.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c index 7f7d66b4b..ea61d871f 100644 --- a/vp9/decoder/vp9_decodframe.c +++ b/vp9/decoder/vp9_decodframe.c @@ -202,11 +202,15 @@ static void set_ref(VP9D_COMP *pbi, int i, int mi_row, int mi_col) { VP9_COMMON *const cm = &pbi->common; MACROBLOCKD *const xd = &pbi->mb; MB_MODE_INFO *const mbmi = &xd->mode_info_context->mbmi; - const int ref = mbmi->ref_frame[i] - 1; - + const int ref = mbmi->ref_frame[i] - LAST_FRAME; const YV12_BUFFER_CONFIG *cfg = &cm->yv12_fb[cm->active_ref_idx[ref]]; - xd->scale_factor[i] = cm->active_ref_scale[ref]; - setup_pre_planes(xd, i, cfg, mi_row, mi_col, &xd->scale_factor[i]); + const struct scale_factors *sf = &cm->active_ref_scale[ref]; + if (!vp9_is_valid_scale(sf)) + vpx_internal_error(&cm->error, VPX_CODEC_UNSUP_BITSTREAM, + "Invalid scale factors"); + + xd->scale_factor[i] = *sf; + setup_pre_planes(xd, i, cfg, mi_row, mi_col, sf); xd->corrupted |= cfg->corrupted; } |