Fix ioc warnings related to sub8x8 reference frame
Access scaled reference frame in the sub8x8 rate-distortion optimization loop only when the current test mode is an inter mode. This prevents an ioc warning triggered by sending intra_frame index to fetch scaled reference frame. Change-Id: I6177ecc946651dd86c7ce362e3f65c4074444604
This commit is contained in:
parent
64677c7e99
commit
b6d71a308c
@ -3787,11 +3787,6 @@ void vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi,
|
||||
int64_t total_sse = INT_MAX;
|
||||
int early_term = 0;
|
||||
struct buf_2d backup_yv12[2][MAX_MB_PLANE];
|
||||
const YV12_BUFFER_CONFIG *scaled_ref_frame[2] = {
|
||||
vp9_get_scaled_ref_frame(cpi, vp9_ref_order[ref_index].ref_frame[0]),
|
||||
vp9_get_scaled_ref_frame(cpi, vp9_ref_order[ref_index].ref_frame[1])
|
||||
};
|
||||
int ref;
|
||||
|
||||
ref_frame = vp9_ref_order[ref_index].ref_frame[0];
|
||||
second_ref_frame = vp9_ref_order[ref_index].ref_frame[1];
|
||||
@ -3927,7 +3922,13 @@ void vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi,
|
||||
int pred_exists = 0;
|
||||
int uv_skippable;
|
||||
|
||||
YV12_BUFFER_CONFIG *scaled_ref_frame[2] = {NULL, NULL};
|
||||
int ref;
|
||||
|
||||
for (ref = 0; ref < 2; ++ref) {
|
||||
scaled_ref_frame[ref] = mbmi->ref_frame[ref] > INTRA_FRAME ?
|
||||
vp9_get_scaled_ref_frame(cpi, mbmi->ref_frame[ref]) : NULL;
|
||||
|
||||
if (scaled_ref_frame[ref]) {
|
||||
int i;
|
||||
// Swap out the reference frame for a version that's been scaled to
|
||||
@ -4089,14 +4090,14 @@ void vp9_rd_pick_inter_mode_sub8x8(VP9_COMP *cpi,
|
||||
skippable = skippable && uv_skippable;
|
||||
total_sse += uv_sse;
|
||||
}
|
||||
}
|
||||
|
||||
for (ref = 0; ref < 2; ++ref) {
|
||||
if (scaled_ref_frame[ref]) {
|
||||
// Restore the prediction frame pointers to their unscaled versions.
|
||||
int i;
|
||||
for (i = 0; i < MAX_MB_PLANE; ++i)
|
||||
xd->plane[i].pre[ref] = backup_yv12[ref][i];
|
||||
for (ref = 0; ref < 2; ++ref) {
|
||||
if (scaled_ref_frame[ref]) {
|
||||
// Restore the prediction frame pointers to their unscaled versions.
|
||||
int i;
|
||||
for (i = 0; i < MAX_MB_PLANE; ++i)
|
||||
xd->plane[i].pre[ref] = backup_yv12[ref][i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user