Root cause: num_entry_point_offsets in the slice header of frame #2164 is 674, exceeding the entry_point_offset_minus1[440] array size. Parser writes beyond the array boundary, corrupting memory. Frame #2164 is not in conformance of the HEVC spec.
We need to put the constraint from the spec on the num_entry_point_offsets parsed from the stream. Also need to change the array size to the max possible for 8K.
[ROCm/rocdecode commit: b6d0c41a59]
* Add additional debug info if we couldn't find the matching pic in refrence list and return error
* Correct the debug info message
[ROCm/rocdecode commit: 5d5db9a017]
* * rocDecode/HEVC: Fixed a bug in IRAP picture order count calculation. Added a few picture type check utilities.
* * rocDecode/HEVC: Minor coding style changes. No functional changes.
[ROCm/rocdecode commit: 69c2243c9c]
* code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change
* rename SaveSurfToFile to SaveFrameToFile
[ROCm/rocdecode commit: 851c537904]
* * rocDecode/HEVC: Do not set up slice ref list for intra frames.
* *rocDecode/HEVC: Condensed slice type check code. No functionaly changes.
[ROCm/rocdecode commit: 1d4f038695]
* * rocDeocde/HEVC: Added several "reserved" fields to structs to match the corresponding VA-API structs.
* * rocDecode/HEVC: Added decode submission to VA-API driver.
* * rocDecode/HEVC: Corrected data buffer id type.
[ROCm/rocdecode commit: 3c7f29dab4]
* * rocDecode/HEVC: Filled HEVC picture parameter structures for decode callback. Added some missing inferences in tile size and weighted prediction table parsing.
* * rocDecode/HEVC: Changed CurrPicIdx assignment from POC to pic_idx.
* * rocDecode/HEVC: Rmoved one TODO comment, which has been done.
* * rocDecode/HEVC: Corrected two typos in comment.
* * rocDecode/HEVC: No need to set up scaling lists in decode callback when scaling list is not enabled.
[ROCm/rocdecode commit: 8ed03b5ad0]
* rocDecode/HEVC parsing: Implemented correct logic to set active VPS, SPS and PPS: start from slice header and up. Added video image size change detection. Fixed slice_segment_address bits calculation in slice segment header parsing.
* rocDecode/HEVC: Changed variable naming to Google style.
* rocDecode/HEVC: Added VPS, SPS, PPS, and slice segment header content logging functions for debug purposes.
* rocDecode/HEVC: Compacted opening bracket lines to keep coding style consistency.
* * rocDecode/HEVC: Fixed an issue in profile-tier-level parsing where 44 bits are skipped in an incorrect way using ReadBits() which can only consume 32 bits max. Also formated SPS parsing code by using pointer instead of array element.
* * rocDecode/HEVC: Fixed the incorrect array size for sps_max_dec_pic_buffering_minus1, sps_max_num_reorder_pics and sps_max_num_reorder_pics in SPS structure define.
* * rocDecode/HEVC: Modified scaling list parsing to make sure we explicitly follow the spec.
* * rocDecode/HEVC: Added a few syntax elements to short team RPS structure, updated RPS parsing function and logging function.
* * rocDecode/HEVC: In PPS parsing function, use structure pointer instead of structure array element to improve coding clarity.
* * rocDecode/HEVC: Compacted the opening bracket lines. No functional changes.
* * rocDecode/HEVC: Added full parsing of slice segment header. Added PPS range extension parsing.
* * rocDecode/HEVC: Fixed a build error in debug mode due to merging from master branch: removing a redundant debug function.
* * rocDecode/HEVC: Changed the condition for sequence call back from picture size change to more general case where a new SPS is activated. Also moved the call from slice header parsing to upper level where frame data is processed.
* * rocDecode: Compacted opening bracket line. No functional changes.
* * rocDecode/HEVC: Moved POC calculation from slice header parsing to picture level, since we only need to do the calculation once per picture.
* * rocDecode/HEVC: Added RPS decode function.
* *rocDecode/HEVC: Added reference picture list construction.
* * rocDecode/HEVC: Added current picture marking in DPB.
* * rocDecode/HEVC: Removed VA surface id from DPB buffer info structure.
* * rocDecode/HEVC: Do not construct ref list for I pictures.
[ROCm/rocdecode commit: 7a537bbb88]
* Add support for rocDecCreateDecoder API
* check the decoder config support before initializing the vaapi
* rename RocdecDecoderCreateInfo to RocDecoderCreateInfo
* fix a typo
[ROCm/rocdecode commit: 32f854c159]
* rocDecode/HEVC parsing: Implemented correct logic to set active VPS, SPS and PPS: start from slice header and up. Added video image size change detection. Fixed slice_segment_address bits calculation in slice segment header parsing.
* rocDecode/HEVC: Changed variable naming to Google style.
* rocDecode/HEVC: Added VPS, SPS, PPS, and slice segment header content logging functions for debug purposes.
* rocDecode/HEVC: Compacted opening bracket lines to keep coding style consistency.
* * rocDecode/HEVC: Fixed an issue in profile-tier-level parsing where 44 bits are skipped in an incorrect way using ReadBits() which can only consume 32 bits max. Also formated SPS parsing code by using pointer instead of array element.
* * rocDecode/HEVC: Fixed the incorrect array size for sps_max_dec_pic_buffering_minus1, sps_max_num_reorder_pics and sps_max_num_reorder_pics in SPS structure define.
* * rocDecode/HEVC: Modified scaling list parsing to make sure we explicitly follow the spec.
* * rocDecode/HEVC: Added a few syntax elements to short team RPS structure, updated RPS parsing function and logging function.
* * rocDecode/HEVC: In PPS parsing function, use structure pointer instead of structure array element to improve coding clarity.
* * rocDecode/HEVC: Compacted the opening bracket lines. No functional changes.
* * rocDecode/HEVC: Added full parsing of slice segment header. Added PPS range extension parsing.
* * rocDecode/HEVC: Fixed a build error in debug mode due to merging from master branch: removing a redundant debug function.
* * rocDecode/HEVC: Changed the condition for sequence call back from picture size change to more general case where a new SPS is activated. Also moved the call from slice header parsing to upper level where frame data is processed.
* * rocDecode: Compacted opening bracket line. No functional changes.
[ROCm/rocdecode commit: 88a34e4db0]
* rocDecode/HEVC parsing: Implemented correct logic to set active VPS, SPS and PPS: start from slice header and up. Added video image size change detection. Fixed slice_segment_address bits calculation in slice segment header parsing.
* rocDecode/HEVC: Changed variable naming to Google style.
* rocDecode/HEVC: Added VPS, SPS, PPS, and slice segment header content logging functions for debug purposes.
* rocDecode/HEVC: Compacted opening bracket lines to keep coding style consistency.
* * rocDecode/HEVC: Fixed an issue in profile-tier-level parsing where 44 bits are skipped in an incorrect way using ReadBits() which can only consume 32 bits max. Also formated SPS parsing code by using pointer instead of array element.
* * rocDecode/HEVC: Fixed the incorrect array size for sps_max_dec_pic_buffering_minus1, sps_max_num_reorder_pics and sps_max_num_reorder_pics in SPS structure define.
* * rocDecode/HEVC: Modified scaling list parsing to make sure we explicitly follow the spec.
* * rocDecode/HEVC: Added a few syntax elements to short team RPS structure, updated RPS parsing function and logging function.
* * rocDecode/HEVC: In PPS parsing function, use structure pointer instead of structure array element to improve coding clarity.
* * rocDecode/HEVC: Compacted the opening bracket lines. No functional changes.
* * rocDecode/HEVC: Added full parsing of slice segment header. Added PPS range extension parsing.
* * rocDecode/HEVC: Fixed a build error in debug mode due to merging from master branch: removing a redundant debug function.
[ROCm/rocdecode commit: 298d8e3a8f]