* * rocDecode: Initial check in for decode buffer pool.
* * rocDecode: All 135 streams pass.
* * rocDecode: Fixed a build error in debug mode.
* * rocDecode/HEVC: Removed two workaround in HEVC DPB management, after decode buffer pool implementa
tion.
- WR 1: Conditional bumping (when max_num_reorder_pics > 0) to avoid synchronous job submission in
C.5.2.3.
- WR 2: Add two more buffers in DPB to avoid buffer over-writing.
* * rocDecode/HEVC: Added display delay feature.
* * rocDecode/HEVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.
* * rocDecode/HEVC: Removed redundent code.
* * rocDecode/AVC: Added decode buffer pool implementation for AVC.
* * rocDecode: Added a few changes.
- Added display delay feature to AVC.
- Removed a workaround for AVC: AVC_MAX_DPB_FRAMES was increased to 18. Now it is back to 16.
- Removed a workaround for AVC: increased DPB buffer size by 2. Now it is back to normal.
- Code format changes for HEVC.
* * rocDecode/AVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.
* * rocDecode: Merged OutputDecodedPictures() method to upper class RocVideoParser.
* * rocDecode: Code cleanup. No functional changes.
* * rocDecode: Made decode buffer pool size adaptive.
- Removed the hard coded decode buffer pool size set in the decoder.
- Exposed the display delay parameter from RocVideoDecoder class to the user.
- Now the decoder buffer pool size is determined from the DPB buffer size and display delay parameter.
* * rocDecode: Several changes based on code review.
- Merged decode and display use status into one parameter.
- Removed the surface index from DecodeFrameBuffer, which is now implicitly referred by the array index.
- Changed a function name for better clarity.
* * rocDecode: Added a comment.
[ROCm/rocdecode commit: 61c8661b9c]
* adds seek to videodecode and seek bug fixes
* fixes both frames & timestamp with prev_key_frame option
* switch to exact key frame and bug fix
* fix decoded_frame_number from seek
* fix out_frame_duration
* clean up + exact fram fix
[ROCm/rocdecode commit: 2d50d685f7]
* * rocDecode: Fixed several issues with cropping.
- Fixed the pixel start offset error on streams with non-zero top/left cropping in MD5 calculation.
- Fixed the pixel start offset error on streams with non-zero top/left cropping, and/or with user specified cropping in YUV frame output.
- Sorted out code which deals with cropping area specifiied by the bitstream, and cropping area specified by the user.
* * rocDecode: Additional changes after discussion.
- Set display rect for decoder create/reconfig to displayable area or user specified ROI area.
- Do not set target rect for decoder create/reconfig. Leave it for future use.
- Unified naming of display rect in decoder create/reconfig structs.
* * rocDecode: Put back the extra rounding to target width/height specifiied by the coded stream, for peace of mind, based on code review.
* * rocDecode: Added the missing stream specified cropping offset to the starting pixel pointer for none-internal memory modes.
---------
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
[ROCm/rocdecode commit: e4614de461]
* Fix a segmentation fault on some samples when the memory type is 3 (OUT_SURFACE_MEM_NOT_MAPPED) and attempting to save the output (which is not supported)
* update the videoDecodeMultiFiles sample
* update the readme for videoDecodeMultiFiles
* add comments
* use OUT_SURFACE_MEM_NOT_MAPPED instead of integer number 3
[ROCm/rocdecode commit: 31c7c7c104]
* * rocDecode/HEVC: Fixed a couple of issues with reconfiguration of decoder when video size is changed.
- Picture width and height variables were interchangeably used to represent coded picture size and display size, resulting reconfiguration errors. Now we use different variables to represent coded and display sizes.
- Fixed a file overwriting issue in video size change case, where the display size can remain the same when coded size changes with specific cropping offsets.
* * rocDecode/HEVC: Added some fixes to decoder reconfiguration.
- Added support for MD5 calculation in reconfigure flush callback. This fixed MD5 check failure on conformance streams with size changes.
- Fixed total decoded frame number report with reconfigure when file dump or MD5 is not enabled. We need to call flush with reconfigure unconditionally (but with different actions).
- Added the missing reconfigure flush when coded size is not changed but display size is changed.
* * rocDecode/HEVC: Corrected an error in GetDecodedWidth() method. Should use coded_width_, instead of disp_width_.
[ROCm/rocdecode commit: ccd813a2da]
* * rocDecode/HEVC: Fixed the random crash associated with undecodable RASL pictures.
- When a CRA picutre occurs, all the pictures in the DPB are emptied. However, the following RASL (Random Access Skipped Leading) picture can still reference these emptied pictures, making them undecodeble.
- We initialized the reference picture lists with (0xFF), representing invalid picture index. Normally these invalid indices are replaced by valid values during RPS decoding. However, on undecodable RASL pictures, we can not find an existing reference picture in DPB, leaving the invalid index untouched and resulting invalid indexing later on.
- Now we initialize the reference picture lists with a valid value 0. Also we add index range check on reference buffer at VA-API layer to avoid invalid memory access.
* * rocDecode/HEVC: Fixed a typo in sampel app message.
[ROCm/rocdecode commit: 0fbd030b5d]
* * 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.
[ROCm/rocdecode commit: 583e72720a]
* * 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.
[ROCm/rocdecode commit: ad20961c4a]
* adding surface mem type as user arg
* adding mem type user arg for all apps
* readme update
* readme updates on all apps
[ROCm/rocdecode commit: 449572f9bf]
* * 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.
[ROCm/rocdecode commit: 624c3c0f09]
* * 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.
[ROCm/rocdecode commit: ad186a90da]
* code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change
* rename SaveSurfToFile to SaveFrameToFile
[ROCm/rocdecode commit: 851c537904]