diff options
author | James Almer <jamrial@gmail.com> | 2023-06-15 11:06:14 -0300 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2023-06-17 10:08:54 -0300 |
commit | 811460f5c2d32203aef1a6b7f15b3a5f831b107e (patch) | |
tree | 92145814c348add206d626cdb657a07a61f40e54 /libavcodec/evc_parse.c | |
parent | 44f26315c82b03988b4867b05cbfdba01627ca58 (diff) | |
download | ffmpeg-811460f5c2d32203aef1a6b7f15b3a5f831b107e.tar.gz |
avcodec/evc_parse: use the correct sps when parsing slice headers
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/evc_parse.c')
-rw-r--r-- | libavcodec/evc_parse.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libavcodec/evc_parse.c b/libavcodec/evc_parse.c index d45f703e1c..095598e940 100644 --- a/libavcodec/evc_parse.c +++ b/libavcodec/evc_parse.c @@ -441,7 +441,7 @@ static int evc_parse_slice_header(EVCParserContext *ctx, EVCParserSliceHeader *s if(!pps) return AVERROR_INVALIDDATA; - sps = ctx->sps[slice_pic_parameter_set_id]; + sps = ctx->sps[pps->pps_seq_parameter_set_id]; if(!sps) return AVERROR_INVALIDDATA; @@ -654,7 +654,8 @@ int ff_evc_parse_nal_unit(EVCParserContext *ctx, const uint8_t *buf, int buf_siz case EVC_IDR_NUT: // Coded slice of a IDR or non-IDR picture case EVC_NOIDR_NUT: { EVCParserSliceHeader sh; - EVCParserSPS *sps; + const EVCParserSPS *sps; + const EVCParserPPS *pps; int ret; ret = evc_parse_slice_header(ctx, &sh, data, nalu_size); @@ -685,9 +686,11 @@ int ff_evc_parse_nal_unit(EVCParserContext *ctx, const uint8_t *buf, int buf_siz // POC (picture order count of the current picture) derivation // @see ISO/IEC 23094-1:2020(E) 8.3.1 Decoding process for picture order count - sps = ctx->sps[sh.slice_pic_parameter_set_id]; + pps = ctx->pps[sh.slice_pic_parameter_set_id]; + sps = ctx->sps[pps->pps_seq_parameter_set_id]; + av_assert0(sps && pps); - if (sps && sps->sps_pocs_flag) { + if (sps->sps_pocs_flag) { int PicOrderCntMsb = 0; ctx->poc.prevPicOrderCntVal = ctx->poc.PicOrderCntVal; |