Merge "Ensure CTB size > 16 for clips with tiles and width/height >= 4096" into lmp-dev am: db15dd7102 am: 419fd4b745 am: 8e6cf47bf1
am: 61f3fbfe13
Change-Id: I640c619d9c69774e716ce43cb77b1bc1bb8869e7
diff --git a/decoder/ihevcd_parse_headers.c b/decoder/ihevcd_parse_headers.c
index a33a382..06f5ef1 100644
--- a/decoder/ihevcd_parse_headers.c
+++ b/decoder/ihevcd_parse_headers.c
@@ -1811,6 +1811,19 @@
BITS_PARSE("tiles_enabled_flag", value, ps_bitstrm, 1);
ps_pps->i1_tiles_enabled_flag = value;
+ /* When tiles are enabled and width or height is >= 4096,
+ * CTB Size should at least be 32. 16x16 CTBs can result
+ * in tile position greater than 255 for 4096,
+ * which decoder does not support.
+ */
+ if((ps_pps->i1_tiles_enabled_flag) &&
+ (ps_sps->i1_log2_ctb_size == 4) &&
+ ((ps_sps->i2_pic_width_in_luma_samples >= 4096) ||
+ (ps_sps->i2_pic_height_in_luma_samples >= 4096)))
+ {
+ return IHEVCD_INVALID_HEADER;
+ }
+
BITS_PARSE("entropy_coding_sync_enabled_flag", value, ps_bitstrm, 1);
ps_pps->i1_entropy_coding_sync_enabled_flag = value;