diff options
author | James Almer <jamrial@gmail.com> | 2018-12-20 12:26:43 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2018-12-20 17:57:10 -0300 |
commit | 064f9505f49816650516c7afe93e43d8f547891a (patch) | |
tree | ca34074ec9c7699d35e40ace09d72512986cf9ad /libavcodec | |
parent | 1b4c01631b1a2019e392eaf011f1e3f15a97fb77 (diff) | |
download | ffmpeg-064f9505f49816650516c7afe93e43d8f547891a.tar.gz |
avcodec/cbs_av1: fix parsing delta_frame_id_minus1
delta_frame_id_minus1 is not a single value in the bitstream, and can
store values up to 17 bits wide.
Fixes parsing files with frame ids.
Reviewed-by: Mark Thompson <sw@jkqxz.net>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/cbs_av1.h | 2 | ||||
-rw-r--r-- | libavcodec/cbs_av1_syntax_template.c | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h index 84622ed189..71ceff9427 100644 --- a/libavcodec/cbs_av1.h +++ b/libavcodec/cbs_av1.h @@ -170,7 +170,7 @@ typedef struct AV1RawFrameHeader { uint8_t last_frame_idx; uint8_t golden_frame_idx; int8_t ref_frame_idx[AV1_REFS_PER_FRAME]; - uint8_t delta_frame_id_minus1; + uint32_t delta_frame_id_minus1[AV1_REFS_PER_FRAME]; uint8_t allow_high_precision_mv; uint8_t is_filter_switchable; diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c index 0da79b615d..48f4fab514 100644 --- a/libavcodec/cbs_av1_syntax_template.c +++ b/libavcodec/cbs_av1_syntax_template.c @@ -1323,8 +1323,8 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, if (!current->frame_refs_short_signaling) fbs(3, ref_frame_idx[i], 1, i); if (seq->frame_id_numbers_present_flag) { - fb(seq->delta_frame_id_length_minus_2 + 2, - delta_frame_id_minus1); + fbs(seq->delta_frame_id_length_minus_2 + 2, + delta_frame_id_minus1[i], 1, i); } } |