summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerome Jiang <jianj@google.com>2021-01-21 13:07:20 -0800
committerJerome Jiang <jianj@google.com>2021-01-21 17:09:02 -0800
commit7b93b56ab9b27f3c2a72e05b7ea3b5e85a06f5fa (patch)
tree04b484d9f01f68619004fdb8fcbaa2f293acdb32
parentb5d77a48d740e211a130c8e45d9353ef8c154a47 (diff)
downloadlibvpx-7b93b56ab9b27f3c2a72e05b7ea3b5e85a06f5fa.tar.gz
Do not reuse mv in base spatial layer if curr buf same as prev.
Bug: b/154890543 Change-Id: Iad5791912f781d225e610a61bc13f3dbaef81bb9
-rw-r--r--vp9/encoder/vp9_encoder.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c
index f4587d42d..4823d5f0f 100644
--- a/vp9/encoder/vp9_encoder.c
+++ b/vp9/encoder/vp9_encoder.c
@@ -7861,9 +7861,12 @@ int vp9_get_compressed_data(VP9_COMP *cpi, unsigned int *frame_flags,
cm->new_fb_idx = get_free_fb(cm);
if (cm->new_fb_idx == INVALID_IDX) return -1;
-
cm->cur_frame = &pool->frame_bufs[cm->new_fb_idx];
-
+ // If the frame buffer for current frame is the same as previous frame, MV in
+ // the base layer shouldn't be used as it'll cause data race.
+ if (cm->cur_frame == cm->prev_frame) {
+ cpi->svc.use_base_mv = 0;
+ }
// Start with a 0 size frame.
*size = 0;