* * rocDecode: Added a command option "-md5_check" to compare the MD5 of the decoded YUV to the reference MD5. This ficilitates decoder conformance test automation.
* * rocDecode/HEVC: Changed file and string operation from C code to C++ code.
* * rocDecode/HEVC: Updated README.md for videoDecode sample.
- Re-wrote short term RPS parsing function. The previous code generates incorrect results on some conformance streams.
- No longer skip the additional buffer bumping specified in process C.5.2.2. This avoids the situation where the current frame overwrites the previously decoded buffer that is being output/displayed.
* * rocDecode/HEVC: Added support for MD5 message digest generation.
- Command option "-md5" triggers MD5 calculation and output.
* * rocDecode/HEVC: Changed C type casting to C++ type casting.
- It appears that the root cause of the corruption is the loss of some reference info of the RASL pictures at VA-API driver level.
- For reasons that are not documented in VA-API, or simply implementation limitations, the DPB buffer status when a CRA picture is decoded, needs to be sent to VA-API driver to the correct decoding of the associated RASL pictures. The info is stored in PocStFoll and PocLtFoll and is not needed for CRA picture decode, which is an intra picture. Without this info, the following RASL picture decode will run into problem even when its reference picture info is correctly specified.
- Note this appears to be a VA-API specific issue because it did not occur on other platforms.
- When we hit IRAP (Intra Random Access Point) picture and need to bump all remaining decoded pictures from DPB, call display callback immediately, instead of delaying the callback to the IRAP decode process.
* * rocDecode/HEVC: Added picture output operation in DPB and display callback function.
- To avoid serialization of decode submissions and/or display callback in certain cases, increased DPB buffer size by 1 and tweaked picture bumping procedure.
* * rocDecode/HEVC: Added flushing of the remaining pictures from DPB at the end of decode session.
* * rocDecode/HEVC: Changed output_pic_num to num_output_pics to void some confusion. Set top_field_first to 1.
* * rocDecode/HEVC: Added a few return error checks.
* * rocDecode/HEVC: Added picture output operation in DPB and display callback function.
- To avoid serialization of decode submissions and/or display callback in certain cases, increased DPB buffer size by 1 and tweaked picture bumping procedure.
* * rocDecode/HEVC: Added a few error checks and minor format changes.
* * rocDecode/HEVC: Re-enabled SEI message processing.
- Added "-sei" command option to extract SEI messages from stream.
- Added support for SEI info parsing for multiple SEI NAL units with multiple payloads.
- Fixed a SEI syntax parsing issue and several procssing issues.
- Fixed a double free memory issue in SEI data buffer handling in HandlePictureDisplay().
* * rocDecode/HEVC: Coding format changes.
* * rocDecode/HEVC: Minor format changes.
* commending out ParseSeiMessage because it is causing segfault
* CMake changes for valgrind
* added function pointer validity for sei callback
* fix review comments
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.