aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2019-04-15 17:50:01 -0300
committerJames Almer <jamrial@gmail.com>2019-07-21 01:04:23 -0300
commita2132139852c57e71c731d10e5dc20e97342c289 (patch)
treeaaff7fda6216c15ec4c139ec1141436c01c9d55b
parent94b1630b7ca34964aa873a59540ecd895a1bf9e6 (diff)
downloadffmpeg-a2132139852c57e71c731d10e5dc20e97342c289.tar.gz
avcodec/cbs_h264: fix storage type for time_offset in Pic Timing SEI
The spec defines it as a signed value. Reviewed-by: Mark Thompson <sw@jkqxz.net> Signed-off-by: James Almer <jamrial@gmail.com> (cherry picked from commit 9bf520d04d6137d0772e019356356614bbf7ca82)
-rw-r--r--libavcodec/cbs_h264.h2
-rw-r--r--libavcodec/cbs_h264_syntax_template.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/libavcodec/cbs_h264.h b/libavcodec/cbs_h264.h
index 92277e4750..b5eee7c370 100644
--- a/libavcodec/cbs_h264.h
+++ b/libavcodec/cbs_h264.h
@@ -253,7 +253,7 @@ typedef struct H264RawSEIPicTimestamp {
uint8_t minutes_value;
uint8_t hours_flag;
uint8_t hours_value;
- uint32_t time_offset;
+ int32_t time_offset;
} H264RawSEIPicTimestamp;
typedef struct H264RawSEIPicTiming {
diff --git a/libavcodec/cbs_h264_syntax_template.c b/libavcodec/cbs_h264_syntax_template.c
index 4da4c5da67..07b4cddb5e 100644
--- a/libavcodec/cbs_h264_syntax_template.c
+++ b/libavcodec/cbs_h264_syntax_template.c
@@ -592,8 +592,9 @@ static int FUNC(sei_pic_timestamp)(CodedBitstreamContext *ctx, RWContext *rw,
time_offset_length = 24;
if (time_offset_length > 0)
- u(time_offset_length, time_offset,
- 0, MAX_UINT_BITS(time_offset_length));
+ i(time_offset_length, time_offset,
+ MIN_INT_BITS(time_offset_length),
+ MAX_INT_BITS(time_offset_length));
else
infer(time_offset, 0);