diff --git a/external/libhevc/decoder/ihevcd_parse_headers.c b/external/libhevc/decoder/ihevcd_parse_headers.c index 2f84d12166..00fc9cb63c 100644 --- a/external/libhevc/decoder/ihevcd_parse_headers.c +++ b/external/libhevc/decoder/ihevcd_parse_headers.c @@ -1257,6 +1257,12 @@ IHEVCD_ERROR_T ihevcd_parse_sps(codec_t *ps_codec) if((0 >= ps_sps->i2_pic_width_in_luma_samples) || (0 >= ps_sps->i2_pic_height_in_luma_samples)) return IHEVCD_INVALID_PARAMETER; + /* i2_pic_width_in_luma_samples and i2_pic_height_in_luma_samples + should be multiples of min_cb_size. Here these are aligned to 8, + i.e. smallest CB size */ + ps_sps->i2_pic_width_in_luma_samples = ALIGN8(ps_sps->i2_pic_width_in_luma_samples); + ps_sps->i2_pic_height_in_luma_samples = ALIGN8(ps_sps->i2_pic_height_in_luma_samples); + if((ps_sps->i2_pic_width_in_luma_samples > ps_codec->i4_max_wd) || (ps_sps->i2_pic_width_in_luma_samples * ps_sps->i2_pic_height_in_luma_samples > ps_codec->i4_max_wd * ps_codec->i4_max_ht) ||