summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_onyxd_if.c
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2014-01-02 09:27:28 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2014-01-02 09:27:28 -0800
commit8458c8c45036d651612160eb7baf49bcefc471d2 (patch)
tree468b9fdf93f1ae619ae24dbcb440954c77421efd /vp9/decoder/vp9_onyxd_if.c
parentcdc933ca0043b7944a4a45edb85d4c142f63fc56 (diff)
parent047b0b01bbe8668c02438532520ea3c92b87f2f3 (diff)
downloadlibvpx-8458c8c45036d651612160eb7baf49bcefc471d2.tar
libvpx-8458c8c45036d651612160eb7baf49bcefc471d2.tar.gz
libvpx-8458c8c45036d651612160eb7baf49bcefc471d2.tar.bz2
libvpx-8458c8c45036d651612160eb7baf49bcefc471d2.zip
Merge "Fix show existing frame"
Diffstat (limited to 'vp9/decoder/vp9_onyxd_if.c')
-rw-r--r--vp9/decoder/vp9_onyxd_if.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/vp9/decoder/vp9_onyxd_if.c b/vp9/decoder/vp9_onyxd_if.c
index e24ba4279..d585b9120 100644
--- a/vp9/decoder/vp9_onyxd_if.c
+++ b/vp9/decoder/vp9_onyxd_if.c
@@ -389,23 +389,25 @@ int vp9_receive_compressed_data(VP9D_PTR ptr,
cm->last_show_frame = cm->show_frame;
if (cm->show_frame) {
- // current mip will be the prev_mip for the next frame
- MODE_INFO *temp = cm->prev_mip;
- MODE_INFO **temp2 = cm->prev_mi_grid_base;
- cm->prev_mip = cm->mip;
- cm->mip = temp;
- cm->prev_mi_grid_base = cm->mi_grid_base;
- cm->mi_grid_base = temp2;
-
- // update the upper left visible macroblock ptrs
- cm->mi = cm->mip + cm->mode_info_stride + 1;
- cm->prev_mi = cm->prev_mip + cm->mode_info_stride + 1;
- cm->mi_grid_visible = cm->mi_grid_base + cm->mode_info_stride + 1;
- cm->prev_mi_grid_visible = cm->prev_mi_grid_base + cm->mode_info_stride + 1;
-
- pbi->mb.mi_8x8 = cm->mi_grid_visible;
- pbi->mb.mi_8x8[0] = cm->mi;
-
+ if (!cm->show_existing_frame) {
+ // current mip will be the prev_mip for the next frame
+ MODE_INFO *temp = cm->prev_mip;
+ MODE_INFO **temp2 = cm->prev_mi_grid_base;
+ cm->prev_mip = cm->mip;
+ cm->mip = temp;
+ cm->prev_mi_grid_base = cm->mi_grid_base;
+ cm->mi_grid_base = temp2;
+
+ // update the upper left visible macroblock ptrs
+ cm->mi = cm->mip + cm->mode_info_stride + 1;
+ cm->prev_mi = cm->prev_mip + cm->mode_info_stride + 1;
+ cm->mi_grid_visible = cm->mi_grid_base + cm->mode_info_stride + 1;
+ cm->prev_mi_grid_visible = cm->prev_mi_grid_base +
+ cm->mode_info_stride + 1;
+
+ pbi->mb.mi_8x8 = cm->mi_grid_visible;
+ pbi->mb.mi_8x8[0] = cm->mi;
+ }
cm->current_video_frame++;
}