diff options
author | Jingning Han <jingning@google.com> | 2018-08-21 11:12:48 -0700 |
---|---|---|
committer | Jingning Han <jingning@google.com> | 2018-08-21 11:14:24 -0700 |
commit | c87895b14495d199738bc2368f15a2cff6bb6463 (patch) | |
tree | 6ed963096594c5f98cf3d35a4c5a74c0bb599906 /vp9/encoder | |
parent | 28cd84af76f0bee64ea7fe28faf7aee18b005bb1 (diff) | |
download | libvpx-c87895b14495d199738bc2368f15a2cff6bb6463.tar libvpx-c87895b14495d199738bc2368f15a2cff6bb6463.tar.gz libvpx-c87895b14495d199738bc2368f15a2cff6bb6463.tar.bz2 libvpx-c87895b14495d199738bc2368f15a2cff6bb6463.zip |
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
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 0151e1ba1..d9d38b766 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -4839,8 +4839,10 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, size_t *size, // 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; |