From f70c905b824207da9c5b01902cec429335d05674 Mon Sep 17 00:00:00 2001 From: Takeru Ohta Date: Thu, 10 Oct 2024 15:02:38 +0900 Subject: [PATCH] Fix a bug where `ISVCDecoder::DecodeFrameNoDelay()` could fail when decoding an H.264 stream encoded by the Apple HWA encoder. (#3787) * Fix to use `max_num_ref_frames` to check `max_long_term_frame_idx_plus1` value * Remove unnecessary cast --- codec/decoder/core/src/decoder_core.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/codec/decoder/core/src/decoder_core.cpp b/codec/decoder/core/src/decoder_core.cpp index 7f0366c779..dd5d5888f8 100644 --- a/codec/decoder/core/src/decoder_core.cpp +++ b/codec/decoder/core/src/decoder_core.cpp @@ -544,7 +544,7 @@ int32_t ParseDecRefPicMarking (PWelsDecoderContext pCtx, PBitStringAux pBs, PSli bMmco4Exist = true; WELS_READ_VERIFY (BsGetUe (pBs, &uiCode)); //max_long_term_frame_idx_plus1 int32_t iMaxLongTermFrameIdx = -1 + uiCode; - if (iMaxLongTermFrameIdx > int32_t (pSps->uiLog2MaxFrameNum)) { + if (iMaxLongTermFrameIdx > pSps->iNumRefFrames) { //ISO/IEC 14496-10:2009(E) 7.4.3.3 Decoded reference picture marking semantics page 96 return GENERATE_ERROR_NO (ERR_LEVEL_SLICE_HEADER, ERR_INFO_INVALID_REF_MARKING); }