* * rocDecode: Added error handling of missing headers in cases where they are not parsed but referred in the frame decode process. One example is when frame seek is performed and the target picture is not a random access point.
* * rocDecode/HEVC: Added some missing error handlings.
---------
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
* * rocDecode/AVC: Added initial field picture decode support.
- 7 conformance streams pass.
* * rocDecode/AVC: Minor change based on review comment.
* * rocDecode/AVC: Fixed an issue with getting the decoded frame buffer index for the second field.
- 10 more field conformance streams now pass.
* * rocDecode/AVC: Added support for picture adaptive frame-field feature.
- 10 more field conformance streams now pass.
* * rocDecode/AVC: Added a missing change during last merge.
* * rocDecode/AVC: Added initial field picture decode support.
- 7 conformance streams pass.
* * rocDecode/AVC: Minor change based on review comment.
* * rocDecode/AVC: Fixed an issue with getting the decoded frame buffer index for the second field.
- 10 more field conformance streams now pass.
* * rocDecode/AVC: Changed from C type cast to C++ type cast.
* * rocDecode/AVC: Fixed the decode failure of conformance stream MR2_TANDBERG_E.264.
- Fixed a bug in memory management control operation 4 process.
* * rocDecode/AVC: Added the missing assignment of top/bottom POC of ref_pic_list_1 in VAAPI slice parameter struct. This change did not make any effective functional changes.
* added frame rate calculation to AVC parser
* fixed typo in avc_parser.h and removed cout debug statements from avc_parser.cpp
* made all changes discussed with Jeff
---------
Co-authored-by: jeffqjiangNew <142832361+jeffqjiangNew@users.noreply.github.com>
* * rocDecode/AVC: Added two decode error handlings.
- Exit with error when the stream is coded field pictures.
- Exit with error when the stream has multiple slice groups. VCN HW does not support it.
* * rocDecode/AVC: Added a missing error return from the last commit.
---------
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
- At the end of some streams, the demuxer sends a picture payload of NAL units that do not contain slice data. In such cases, we return gracefully without causing a decoder error.
* * rocDecode/AVC: Added adaptive memory control decoded reference picture marking process. Other changes include:
- Replaced part of reference list modification implementation with a cleaner and more correct logic. It was found that the steps suggested
in the spec resulted errors on some streams.
- Fixed an issue in reference picture list construction. We still need to do picture number calculation (8.2.4.1) for I pictures.
- Fixed a bug in VAAPI slice parameter setup for ref list 1 for B pictures.
* * rocDecode/AVC: Fixed the scaling list setup for VAAPI.
- Put the scaling list in zig-zag scan order.
* * rocDecode/AVC: Added adaptive memory control decoded reference picture marking process. Other changes include:
- Replaced part of reference list modification implementation with a cleaner and more correct logic. It was found that the steps suggested
in the spec resulted errors on some streams.
- Fixed an issue in reference picture list construction. We still need to do picture number calculation (8.2.4.1) for I pictures.
- Fixed a bug in VAAPI slice parameter setup for ref list 1 for B pictures.
* * rocDecode/AVC: Fixed the scaling list setup for VAAPI.
- Put the scaling list in zig-zag scan order.
* * rocDecode/AVC: Replaced Todo comments with error messages, based on code review.
* * rocDecode/AVC: Added display callback implementation.
* *rocDecode/AVC: Fixed a few issues with decoded buffer output and bumping from DPB.
* * rocDecode: Name changes based on code review.
---------
Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
* * rocDecode: Implemented proper slice parameter buffer submission for multiple slice streams.
- We were submitting single slice parameter buffer for multiple slice streams. This works for other APIs but not for VAAPI, which requires to send slice parameter buffer once per slice.
- At step 1, all the multi-slice structures are fixed sized (256). Will make them dynamic in the next step.
- With this change, all 135 HEVC conformance streams now pass.
* * rocDecode: Multiple slice change step 2: make the fixed size slice info structure lists dynamic.
* * rocDecode: Minor changes in comments. No functional changes.
* *rocDecode: Changed INIT_SLICE_PARAM_LIST_NUM from 256 back to 16. 256 was set during debug process.
* * rocDecode: Add suggest changes from code review.
* * rocDecode: Moved slice_params_buf_id_ initialization to class VaapiVideoDecoder declaration, as suggested by code review.
- Moved decoded reference picture marking after decode picture submission, according to the spec.
- Fixed several errors in the decoding process.
- Added two debug functions to log out DPB content and VAAPI buffer info.
- P frames look good now.
* * rocDecode: Changed rocDecode API header variable naming to Google C++ style.
* * rocDecode: Unified AVC/H264 naming to AVC. Minor naming changes on HEVC related names.
* * rocDecode: Minor comment fix based on code review.
* * rocDecode/AVC: Added decode picture callback from parser to decoder and VAAPI decode submission.
* * rocDecode/AVC: Minor changes based on code review comments.
* * rocDecode/AVC: Removed a redundant line.
* * rocDecode/AVC: Condensed several lines based on code review feedback.
* * rocDecode: Fixed display aspect ratio calculation.
- We were assigning sample aspect ration (SAR) from VUI directly to display aspect ratio (DAR). Now we follow the correct procedure.
* * rocDecode: Fixed an error in display aspect ratio calculation. Should include sample aspect ratio in the final step.
* * rocDecode/AVC: Added new sequence notification callback.
* * rocDecode/AVC: Removed the commented out code.
* * rocDecode/AVC: Changed function name to better describe the operation.
* * rocDecode/AVC: Minor formatting change.
* * rocDecode/AVC: Added initial AVC parser.
- Added AVC SPS, PPS and slice header parsing functions.
- Merged common parsing code from AVC and HEVC parsers to their super class.
* * rocDecode/AVC: Formating changes. No functional changes.