* * rocDecode: Experiment per decode instance va display.
* * rocDecode/Perf: Removed comments.
* * rocDecode/VA context: Minor changes based on review comment.
* * rocDecode: Removed the hard coded HW decoder capability info.
- We now probe HW decoder capabilities through VA-API from the driver.
* * rocDecode: Added number of decoder prob and a few missing tear down calls.
* * rocDecode/HW cap change: Added a new singleton class, GpuVaContext, to handle HIP and VA initialization and VA attributes probe for both HW capability check and decoder initialization.
* * rocDecode/HW caps: Removed GpuVaContext class out of vaapi_videodecoder.h and into a new file. Removed debug logs. Removed roc_decoder_caps.h.
* * rocDecode/HW caps: Fixed a crash issue with multi-thread cases. Called to vaInitialize() and vaTerminte() should be paired.
* * rocDecode/HW caps: Added multi-GPU support.
* * rocDecode/HW cap: Moved GpuVaContext class implementation back to VAAPI layer.
* * rocDecode/HW cap: Added changed based on review comments.
* * rocDecode/HW cap: Added changes based on review comments.
* * rocDecode/HW cap: GPU VA context class name change based on review comment.
---------
Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
* * rocDecode/VP9: Initial code for VP9.
- Added structures for VA-API.
- Added defines for uncompressed header and parsing functions.
* * rocDecode/VP9: Added decode frame call to VA-API.
* * rocDecode/VP9: Added new sequence notification function.
* * rocDecode/VP9: Intra decode started to work.
* * rocDecode/VP9: Minor changes based on review comments.
---------
Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
* added new API to release video frame for decoder and parser
* removed ReleseFrame() from low level parser classes
* Removed rocDecReleaseFrame() from decoder and added in parser
* address review comments
* revert un-necessary files
* minor fix
* remove unused function
* minor formatting fix
* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.
* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.
* * rocDecode/AV1: Set VA profile for AV1 for older VAAPI versions where it is not defined.
* * rocDecode/AV1: Made rocDeocde AV1 built on VAAPI versions below 1.6.0 runnable with newer versions, to be able to test under RHEL8.
- Added film grain parameter saving and loading procedures.
- Added buffer management for film grain synthesis output.
- Fixed the corruption issue with 10-bit film grain streams. We need to see surface attibutes based on pixel format when creating VAAPI surfaces.
- Added missing global motion, loop filter and segmentation parameter loading in load reference frame procedure.
- Fixed an issue with one tile streams.
- Fixed an issue with un-initialized frame header structure after frame decode.
- Fixed a bug with decode buffer status update.
- No functional changes as surface format does not affect the actual allocation of the VA surface in this call due to IHV specific implementation. The app still needs to set the format correctly.
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
* Use the correct offset when creating render nodes on each partition mode on MI300
* Use the correct offset when creating render nodes on each partition mode on MI300
* code clean up
* * 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.
* Fix the performance issue introduced after PR#192
* Destroy the current interop memories before reconfiguration
* initialize the interop to 0 after unmapping a surface
* code clean up
* check the mapped device mem/ext mem to be valid before destrying them
* code cleanup - add some comments
* make changes based on the reviewer comments
- Needed to take care of time out case. Current implementation of vaSyncSurface() does not block indefinitely (contrary to VA-API spec), it returns VA_STATUS_ERROR_TIMEDOUT error when it blocks for a certain amount of time. Although time out can come from various reasons, we treat it as non-fatal and contiue waiting.
* * 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.