Wykres commitów

171 Commity

Autor SHA1 Wiadomość Data
jeffqjiangNew 3eb6bc2192 Added initial code for VP9 support. (#442)
* * 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>
2024-11-14 10:17:46 -05:00
jeffqjiangNew b3f8fec41b * rocDecode/HEVC: Added empty NAL detection. (#452) 2024-11-13 13:28:29 -05:00
Rajy Rawther 69ec7af8bd Added bitstream validation code for HEVC parser (#450)
* fix for while loop hang

* fix for while loop hang

* add more data validation code in parser

* minor change

* addressed review comments

* fix conformance failures with new code

* added more checks
2024-11-11 17:33:17 -05:00
Kiriti Gowda 69eb625d2d GPU Arch Updates (#448) 2024-11-06 20:37:07 -05:00
Rajy Rawther 5820f38592 fix for while loop hang (#447) 2024-11-06 14:41:57 -05:00
jeffqjiangNew d9b235db5a * rocDecode/AV1: Fixed an errror in get Q index function during code inspection. (#438) 2024-10-24 11:51:22 -04:00
Rajy Rawther 29bfe5e3bd Add new API rocDecParserMarkFrameForReuse() for Parser (#430)
* 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
2024-10-09 13:29:08 -04:00
Kiriti Gowda eb5f2da4ae Support GFX12 (#423) 2024-09-17 10:47:17 -04:00
jeffqjiangNew 6253248188 Added real decode speed report to set it apart from the current output speed report in sample apps (#409)
* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode/Sample script: Added missing changes for sample_mode 0 case.
2024-08-20 17:43:33 -04:00
jeffqjiangNew a863ee26a9 * rocDecode/AV1: Performance improvement: prevent synchronous decode submissions. (#406)
- Set the display delay to DECODE_BUF_POOL_EXTENSION (2) to avoid immediate output/display of a decoded frame.
2024-08-12 10:29:43 -04:00
jeffqjiangNew 30ee6787b2 AV1: Fixed an issue with multiple tile group OBUs per picture cases. (#404)
* * rocDecode/AV1: Fixed an issue with multiple tile group OBUs per picture cases.
 - We now use the single base pointer for all tiles in all tile group OBUs and submit them once per picture.

* * rocDecode/AV1: Fixed a typo.
2024-08-07 10:16:17 -04:00
jeffqjiangNew 6a75dc4dcf * rocDecode/AV1: Fixed a bug in set frame refs process that triggers a conformance error check later. (#400) 2024-07-29 17:16:21 -04:00
jeffqjiangNew d0924490a8 * rocDecode/AV1: Fixed a surface size issue in upscaling cases. (#399) 2024-07-26 12:24:32 -04:00
jeffqjiangNew 4f8191edc0 Added the missing presentation time stamp (pts) to decode return info for displayed pictures. (#398)
* * rocDecode: Added the missing pts to decode return info for decoded pictures.

* * rocDecode: Added the missing pts to decode return info for decoded pictures.
2024-07-25 16:53:20 -04:00
jeffqjiangNew 96944030aa * rocDecode/AV1: Added support for getting frame size from reference frames case. Fixed the data type of several quantization parameters. (#397) 2024-07-25 14:55:14 -04:00
Lakshmi Kumar 69dead95cd va version bug fix for ub20 (#396) 2024-07-23 18:19:55 -04:00
Aryan Salmanpour d2ef14606c Fix a compilation issue in RHEL8 (#394) 2024-07-23 10:48:15 -04:00
jeffqjiangNew 96c65d74a6 Enabled AV1 decode by default. (#391)
* * rocDecode/AV1: Enabled AV1 decode by default.

* * rocDecode/AV1: Added changes suggested in code review.
 - Bumped up rocDecode version to 0.7.0.
 - Added AV1 support statement in readme file.
2024-07-22 12:32:12 -04:00
jeffqjiangNew 1e5e9dacac AV1: Fixed build error on RHEL8 due to older VAAPI version. (#392)
* * 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.
2024-07-22 12:29:41 -04:00
jeffqjiangNew ac82d17e9f * rocDecode/AV1: Added support for film grain synthesis and several other fixes. (#389)
- 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.
2024-07-19 21:01:36 -04:00
jeffqjiangNew a36dd186df AV1: Added a few changes to enable general testing (non-film-grain). (#383)
* * rocDecode/AV1: Added a few changes to enable general testing (non-film-grain).
 - Added show existing frame support.
 - Added load_previous() function.
 - Added more operations to reference frame update process.
 - Added reference frame loading process.
 - Added decode frame wrapup process.
 - Added DPB recycling.
 - Added DPB content logging funcion for debugging purposes.

* * rocDecode/AV1: Removed a line which was added accidentally in the previous commit.
2024-07-15 10:40:59 -04:00
jeffqjiangNew a91dcdc72f * rocDecode/AV1: Fixed the decoded image surface size issue with 10-bit streams. (#378)
- The root cause is that the bit depth idx parameter setup is missing in VA-API picture parameter setup.
2024-06-28 13:52:36 -04:00
jeffqjiangNew 54419dcca3 * rocDecode/AV1: Basic inter decode is up and running. (#376)
- Added initial support for DPB and decode/display buffer management.
 - Added initial display support.
 - Added reference frame set up.
 - Fixed an issue with cdef_y_sec_strength/cdef_uv_sec_strength parsing. We should leave the conditional increment to VA-API driver or below due to VA-API formatting.
2024-06-27 10:26:21 -04:00
jeffqjiangNew 2be11821fc AV1: Intra decode started to be up and running. (#372)
* * rocDecode/AV1: Added new sequence callback and submit decode calls.

* * rocDecode/AV1: Intra decode started to work.

* * rocDecode/AV1: Do not build PrintVaapiParams() in normal (non-debug) mode.
2024-06-26 12:46:11 -04:00
jeffqjiangNew ac272886b1 * rocDecode/AV1: Fixed a bug in the calculation of the floor of the base 2 logarithm. (#367) 2024-06-10 14:02:10 -04:00
jeffqjiangNew 63d3245176 AV1: Added OBU parsing and frame data parsing. (#364)
* * rocDecode/AV1: Added OBU parsing at picture level.

* * rocDecode/AV1: Added a few todos and fixed a few issues in frame header parsing.

* * rocDecode/AV1: Minor changes based on code review.

* * rocDecode/AV1: Removed more empty lines.
2024-06-10 12:07:23 -04:00
Lakshmi Kumar 4f8506daec RHEL - va version check for av1 (#365)
* rhel va version check for av1

* remove #else case
2024-06-10 11:09:29 -04:00
Lakshmi Kumar c70e98abb6 AV1: VA-API submission (#362)
* av1 va-api submission

* adding check for anchor_frames and current_diplay_picture

* check limits for memory errors

* review comment - remove unnecessary check
2024-06-05 16:23:47 -04:00
jeffqjiangNew 61c8661b9c rocDecode: Added decode buffer pool implementation for AVC and HEVC. (#355)
* * 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.
2024-05-31 13:14:02 -04:00
Aryan Salmanpour 04a19c0aa9 Add support for handling exceptions while using the std::filesystem::recursive_directory_iterator (#358)
* FAdd support for handling exceptions while using the filesystem::recursive_directory_iterator

* use a common namesapce
2024-05-29 16:32:51 -04:00
jeffqjiangNew 1ac4cf7f52 * rocDecode/HEVC: Added error handling for the cases where there is no slice data in the decode payload. (#354) 2024-05-14 14:07:23 -04:00
Aryan Salmanpour bdb08ab644 Fix compilation issues on distro without std::filesystem (#348) 2024-05-08 14:45:32 -04:00
Aryan Salmanpour 1943aad663 Fix compilation issues on RHEL8 and SLES15.5 related to using std::filesystem (#342) 2024-05-06 21:12:23 -04:00
jeffqjiangNew 3ade0f31ff * rocDecode: Removed the workaround for the previous non-blocking implementation of vaSyncSurface() in the driver, since the correct implementation has been put into the driver already. (#340) 2024-05-06 17:40:15 -04:00
jeffqjiangNew 21ae1d010a * rocDecode: Set the correct surface format for high bit depths. (#339)
- 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>
2024-05-06 08:09:23 -04:00
jeffqjiangNew ba36534f1f 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. (#335)
* * 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>
2024-05-03 15:18:08 -04:00
jeffqjiangNew 0f905f527c * rocDecode/AVC: Added field picture support in reference list modification and adaptive referecne picture marking. (#332)
- 4 more conformance streams now pass.

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
2024-05-02 08:46:47 -04:00
jeffqjiangNew d2b742ab4b AVC: Added support for picture adaptive frame-field (PICAFF) feature. (#325)
* * 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.
2024-05-01 08:29:26 -04:00
jeffqjiangNew bd4e410a8d AVC: Added initial field picture decode support. (#323)
* * 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.
2024-04-30 21:21:05 -04:00
jeffqjiangNew a8bcc1e62f * rocDecode/AVC: Added support for gaps in frame_num. (#319)
- Fixed decode failure of conformance stream MR3_TANDBERG_B.264.
2024-04-19 16:51:41 -04:00
jeffqjiangNew 4188000079 AVC: Fixed the decode failure of conformance stream MR2_TANDBERG_E.264. (#314)
* * 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.
2024-04-15 08:32:03 -04:00
jeffqjiangNew 6b03950181 AV1: Added frame header and tile group OBU parsing. (#312)
* * rocDecode/AV1: Added frame header OBU parsing.

* * rocDecode/AV1: Added a missing function description.

* * rocDecode/AV1: Added tile group OBU parsing.
2024-04-11 09:01:54 -04:00
Aryan Salmanpour f2d1ad75eb Use the correct offset when creating render nodes on each partition mode on MI300 (#310)
* 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
2024-04-09 18:17:02 -04:00
Pavel Tcherniaev f8bf587f92 added frame rate calculation to AVC parser (#307)
* 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>
2024-04-05 08:15:15 -04:00
Aryan Salmanpour 2d877cd357 Enable decoding AVC (H.264) codec by default and enable CTest for it (#309) 2024-04-04 19:47:35 -04:00
jeffqjiangNew e96b782dcf * rocDecode/AV1: Added stream syntax defines and sequence header parsing. (#306) 2024-04-03 15:04:18 -04:00
jeffqjiangNew d38931ddae * rocDecode/AVC: Added support for memory management control operation equal to 5 and fixed an issue in reference picture list modification. (#304)
Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2024-04-01 20:58:31 -04:00
Aryan Salmanpour 30790842f1 Add support for various partition modes on MI300 (#302)
* Add support for various partition modes on MI300

* code clean up
2024-03-28 21:40:45 -04:00
Lakshmi Kumar 6265f675c1 av1 initial commit (#298) 2024-03-26 18:59:15 -04:00
jeffqjiangNew 7cf22e5920 * rocDecode/AVC: Fixed the decode failure of the conformance stream MR2_MW_A.264. (#297)
- We should always clear the number of short term and long term references in DPB buffer structure when IDR occurs.
2024-03-26 18:53:42 -04:00