From 8c18df7fcd592080866afa16075d9056aa9190e4 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 10 Mar 2017 22:50:43 -0800 Subject: [PATCH] vp9: Fix condition for intra search in non-rd pickmode. Fixes an issue when the LAST and golden is not used as a reference, in which case its possible no encoding mode is set (since intra may be skipped under certain codtions). Fix is to make sure intra is searched if no inter mode is checked. Issue can happen for temporal layer pattern#7 in vpx_temporal_svc_encoder.c Change-Id: I5ab4999b2f9dbd739044888e0916b5ec491d966b --- vp9/encoder/vp9_pickmode.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index 3790f9869..ea0f2ca1a 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -1985,11 +1985,10 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, perform_intra_pred = 0; // Perform intra prediction search, if the best SAD is above a certain // threshold. - if ((!force_skip_low_temp_var || bsize < BLOCK_32X32) && perform_intra_pred && - (best_rdc.rdcost == INT64_MAX || - (!x->skip && best_rdc.rdcost > inter_mode_thresh && - bsize <= cpi->sf.max_intra_bsize)) && - !x->skip_low_source_sad) { + if (best_rdc.rdcost == INT64_MAX || + ((!force_skip_low_temp_var || bsize < BLOCK_32X32) && + perform_intra_pred && !x->skip && best_rdc.rdcost > inter_mode_thresh && + bsize <= cpi->sf.max_intra_bsize && !x->skip_low_source_sad)) { struct estimate_block_intra_args args = { cpi, x, DC_PRED, 1, 0 }; int i; TX_SIZE best_intra_tx_size = TX_SIZES; -- 2.40.0