Commit b37e7960 authored by Luca Barbato's avatar Luca Barbato

hevc: Use uint64 to check for tile dimensions

And use unsigned datatypes.

Otherwise it would overflow.

Sample-Id: 00001315-google
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
parent d5c15ebe
...@@ -513,10 +513,10 @@ typedef struct HEVCPPS { ...@@ -513,10 +513,10 @@ typedef struct HEVCPPS {
uint8_t slice_header_extension_present_flag; uint8_t slice_header_extension_present_flag;
// Inferred parameters // Inferred parameters
int *column_width; ///< ColumnWidth unsigned int *column_width; ///< ColumnWidth
int *row_height; ///< RowHeight unsigned int *row_height; ///< RowHeight
int *col_bd; ///< ColBd unsigned int *col_bd; ///< ColBd
int *row_bd; ///< RowBd unsigned int *row_bd; ///< RowBd
int *col_idxX; int *col_idxX;
int *ctb_addr_rs_to_ts; ///< CtbAddrRSToTS int *ctb_addr_rs_to_ts; ///< CtbAddrRSToTS
......
...@@ -1106,7 +1106,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s) ...@@ -1106,7 +1106,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
pps->uniform_spacing_flag = get_bits1(gb); pps->uniform_spacing_flag = get_bits1(gb);
if (!pps->uniform_spacing_flag) { if (!pps->uniform_spacing_flag) {
int sum = 0; uint64_t sum = 0;
for (i = 0; i < pps->num_tile_columns - 1; i++) { for (i = 0; i < pps->num_tile_columns - 1; i++) {
pps->column_width[i] = get_ue_golomb_long(gb) + 1; pps->column_width[i] = get_ue_golomb_long(gb) + 1;
sum += pps->column_width[i]; sum += pps->column_width[i];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment