ref: c87895b14495d199738bc2368f15a2cff6bb6463
parent: 28cd84af76f0bee64ea7fe28faf7aee18b005bb1
author: Jingning Han <jingning@google.com>
date: Tue Aug 21 07:12:48 EDT 2018
Safely swap the show frame buffer pointer in show_existing mode Point the current frame buffer towards the existing reference frame. In the meantime, release the original new_fb pointer. Change-Id: Ic83a698cac5cdaaabdf61acffb936ec130a84d1c
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -4839,8 +4839,10 @@
// current ARF will be directly used as the final reconstructed frame. This is
// an encoder control scheme. One could in principle explore other
// possibilities to arrange the reference frame buffer and their coding order.
- if (cm->show_existing_frame)
- cm->new_fb_idx = cm->ref_frame_map[cpi->alt_fb_idx];
+ if (cm->show_existing_frame) {
+ ref_cnt_fb(cm->buffer_pool->frame_bufs, &cm->new_fb_idx,
+ cm->ref_frame_map[cpi->alt_fb_idx]);
+ }
cpi->last_frame_dropped = 0;
cpi->svc.last_layer_dropped[cpi->svc.spatial_layer_id] = 0;