diff options
author | Jingning Han <jingning@google.com> | 2018-08-14 15:50:50 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-08-14 15:50:50 +0000 |
commit | 56735e5532e86968a094802b89e895c5575d1d4e (patch) | |
tree | 4cee0381c777320e068b187ab5d4f3b029d8497d /vp9 | |
parent | c70552c01ed48f46ba9f6ba41c9555b34fd37bce (diff) | |
parent | 058046c8808f6ea462bd57898276c9ac343aa46a (diff) | |
download | libvpx-56735e5532e86968a094802b89e895c5575d1d4e.tar libvpx-56735e5532e86968a094802b89e895c5575d1d4e.tar.gz libvpx-56735e5532e86968a094802b89e895c5575d1d4e.tar.bz2 libvpx-56735e5532e86968a094802b89e895c5575d1d4e.zip |
Merge "Fix potential encoder failure case in tpl model"
Diffstat (limited to 'vp9')
-rw-r--r-- | vp9/encoder/vp9_encodeframe.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index cb5cb1901..8aa8660d8 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -3640,6 +3640,8 @@ int get_rdmult_delta(VP9_COMP *cpi, BLOCK_SIZE bsize, int mi_row, int mi_col, if (cpi->common.show_frame) return orig_rdmult; + if (cpi->twopass.gf_group.index >= MAX_LAG_BUFFERS) return orig_rdmult; + for (row = mi_row; row < mi_row + mi_high; ++row) { for (col = mi_col; col < mi_col + mi_wide; ++col) { TplDepStats *this_stats = &tpl_stats[row * tpl_stride + col]; @@ -5450,6 +5452,7 @@ static void encode_frame_internal(VP9_COMP *cpi) { MACROBLOCK *const x = &td->mb; VP9_COMMON *const cm = &cpi->common; MACROBLOCKD *const xd = &x->e_mbd; + const int gf_group_index = cpi->twopass.gf_group.index; xd->mi = cm->mi_grid_visible; xd->mi[0] = cm->mi; @@ -5516,7 +5519,8 @@ static void encode_frame_internal(VP9_COMP *cpi) { if (sf->partition_search_type == SOURCE_VAR_BASED_PARTITION) source_var_based_partition_search_method(cpi); - } else if (cpi->twopass.gf_group.index && cpi->sf.enable_tpl_model) { + } else if (gf_group_index && gf_group_index < MAX_LAG_BUFFERS && + cpi->sf.enable_tpl_model) { TplDepFrame *tpl_frame = &cpi->tpl_stats[cpi->twopass.gf_group.index]; TplDepStats *tpl_stats = tpl_frame->tpl_stats_ptr; |