summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2014-01-11 03:20:45 +0100
committerLuca Barbato <lu_zero@gentoo.org>2014-01-21 11:57:51 +0100
commitb37e796082b2d787aff3cd5631bb89c4fd374708 (patch)
tree30724bdb9f8cd7a6efe2a0f5928f76c86334e16f
parentd5c15ebeaf1914ea5e3e0599d4316d7c4cf74434 (diff)
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
-rw-r--r--libavcodec/hevc.h8
-rw-r--r--libavcodec/hevc_ps.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/libavcodec/hevc.h b/libavcodec/hevc.h
index f623887c6e..6c99d9bc5c 100644
--- a/libavcodec/hevc.h
+++ b/libavcodec/hevc.h
@@ -513,10 +513,10 @@ typedef struct HEVCPPS {
uint8_t slice_header_extension_present_flag;
// Inferred parameters
- int *column_width; ///< ColumnWidth
- int *row_height; ///< RowHeight
- int *col_bd; ///< ColBd
- int *row_bd; ///< RowBd
+ unsigned int *column_width; ///< ColumnWidth
+ unsigned int *row_height; ///< RowHeight
+ unsigned int *col_bd; ///< ColBd
+ unsigned int *row_bd; ///< RowBd
int *col_idxX;
int *ctb_addr_rs_to_ts; ///< CtbAddrRSToTS
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index 1ce8d2ebcb..829294fc9c 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -1106,7 +1106,7 @@ int ff_hevc_decode_nal_pps(HEVCContext *s)
pps->uniform_spacing_flag = get_bits1(gb);
if (!pps->uniform_spacing_flag) {
- int sum = 0;
+ uint64_t sum = 0;
for (i = 0; i < pps->num_tile_columns - 1; i++) {
pps->column_width[i] = get_ue_golomb_long(gb) + 1;
sum += pps->column_width[i];