summaryrefslogtreecommitdiff
path: root/vp9
diff options
context:
space:
mode:
authorDeepa K G <deepa.kg@ittiam.com>2019-01-11 18:02:12 +0530
committerDeepa K G <deepa.kg@ittiam.com>2019-01-12 00:08:41 +0530
commit797ec1cd66c04fd335adba8ecc01dc93eab1898e (patch)
tree3d9dbf25e96800c29b976d22a14d903152c97fdd /vp9
parent7205a52c28959a83f67dd2e1824c1b182bce3f7b (diff)
downloadlibvpx-797ec1cd66c04fd335adba8ecc01dc93eab1898e.tar
libvpx-797ec1cd66c04fd335adba8ecc01dc93eab1898e.tar.gz
libvpx-797ec1cd66c04fd335adba8ecc01dc93eab1898e.tar.bz2
libvpx-797ec1cd66c04fd335adba8ecc01dc93eab1898e.zip
Fix segmentation fault in hbd path
When CONFIG_VP9_HIGHBITDEPTH is enabled, lowbd modules were called in the hbd path. This patch fixes the issue. Change-Id: I59820180fbed120697b6ef1fc1a02be0d35ac1d5
Diffstat (limited to 'vp9')
-rw-r--r--vp9/encoder/vp9_temporal_filter.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_temporal_filter.c b/vp9/encoder/vp9_temporal_filter.c
index db23b8e6f..cd340c394 100644
--- a/vp9/encoder/vp9_temporal_filter.c
+++ b/vp9/encoder/vp9_temporal_filter.c
@@ -110,11 +110,16 @@ static void temporal_filter_predictors_mb_c(
CONVERT_TO_SHORTPTR(y_mb_ptr + y_offset), stride,
CONVERT_TO_SHORTPTR(&pred[p_offset]), BW, &mv, scale, xs, ys,
which_mv, kernel, MV_PRECISION_Q3, x, y, xd->bd);
+ } else {
+ vp9_build_inter_predictor(y_mb_ptr + y_offset, stride, &pred[p_offset],
+ BW, &mv, scale, xs, ys, which_mv, kernel,
+ MV_PRECISION_Q3, x, y);
}
-#endif // CONFIG_VP9_HIGHBITDEPTH
+#else
vp9_build_inter_predictor(y_mb_ptr + y_offset, stride, &pred[p_offset],
BW, &mv, scale, xs, ys, which_mv, kernel,
MV_PRECISION_Q3, x, y);
+#endif // CONFIG_VP9_HIGHBITDEPTH
k++;
}
}
@@ -143,8 +148,18 @@ static void temporal_filter_predictors_mb_c(
CONVERT_TO_SHORTPTR(&pred[(BLK_PELS << 1) + p_offset]),
uv_block_width, &mv, scale, xs, ys, which_mv, kernel,
mv_precision_uv, x, y, xd->bd);
+ } else {
+ vp9_build_inter_predictor(u_mb_ptr + uv_offset, uv_stride,
+ &pred[BLK_PELS + p_offset], uv_block_width,
+ &mv, scale, xs, ys, which_mv, kernel,
+ mv_precision_uv, x, y);
+
+ vp9_build_inter_predictor(v_mb_ptr + uv_offset, uv_stride,
+ &pred[(BLK_PELS << 1) + p_offset],
+ uv_block_width, &mv, scale, xs, ys, which_mv,
+ kernel, mv_precision_uv, x, y);
}
-#endif // CONFIG_VP9_HIGHBITDEPTH
+#else
vp9_build_inter_predictor(u_mb_ptr + uv_offset, uv_stride,
&pred[BLK_PELS + p_offset], uv_block_width, &mv,
scale, xs, ys, which_mv, kernel,
@@ -154,6 +169,7 @@ static void temporal_filter_predictors_mb_c(
&pred[(BLK_PELS << 1) + p_offset],
uv_block_width, &mv, scale, xs, ys, which_mv,
kernel, mv_precision_uv, x, y);
+#endif // CONFIG_VP9_HIGHBITDEPTH
k++;
}
}