diff options
author | Deepa K G <deepa.kg@ittiam.com> | 2019-01-11 18:02:12 +0530 |
---|---|---|
committer | Deepa K G <deepa.kg@ittiam.com> | 2019-01-12 00:08:41 +0530 |
commit | 797ec1cd66c04fd335adba8ecc01dc93eab1898e (patch) | |
tree | 3d9dbf25e96800c29b976d22a14d903152c97fdd /vp9 | |
parent | 7205a52c28959a83f67dd2e1824c1b182bce3f7b (diff) | |
download | libvpx-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.c | 20 |
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++; } } |