Revīziju grafs

80 Revīzijas

Autors SHA1 Ziņojums Datums
Rajy Rawther 012f96c8c5 Rr/check sei function pointer (#78)
* commending out ParseSeiMessage because it is causing segfault

* CMake changes for valgrind

* added function pointer validity for sei callback

* fix review comments
2023-11-21 11:23:47 -05:00
Rajy Rawther 628e1d2610 rr: Add debug flags for valgrind (#77)
* commending out ParseSeiMessage because it is causing segfault

* CMake changes for valgrind
2023-11-20 12:07:13 -05:00
Rajy Rawther 210976616f commending out ParseSeiMessage because it is causing segfault (#76) 2023-11-17 20:56:05 -05:00
Rajy Rawther cbf6857f74 Rr/parser clean up (#75)
* minor clean_up on parser struct allocation

* minor clean_up

* address review comments
2023-11-17 20:55:53 -05:00
Rajy Rawther 81abe58fb4 Rr/vaapi decoder mem check (#74)
* add some checks for buffer requirements

* address review comments
2023-11-17 17:33:12 -05:00
jeffqjiangNew c528f46843 * rocDecode/HEVC: Removed parsing of entry_point_offset_minus1[] and beyond in slice header since these syntax elements are not used by HW decode. (#73) 2023-11-17 15:59:29 -05:00
jeffqjiangNew b6d0c41a59 * rocDecode/HEVC: Fixed the segmentation fault at the end of decode session on stream chimei_demo_1080p_h265_60fps.mp4 or similar streams. (#72)
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.
2023-11-17 12:57:19 -05:00
Aryan Salmanpour 071b37b3bd Code clean up - remove unused headers from demuxer, unused ffmpeg dependencies, and redundent info from videodecode sample (#71) 2023-11-17 12:46:27 -05:00
Kiriti Gowda b94b4f7947 Dev Package - Add FFMPEG Deps (#70)
* Dev Package - Add FFMPEG Deps

* Print Deps

* Deps Fix

* CI - Package Details
2023-11-16 16:34:47 -05:00
Aryan Salmanpour 5d5db9a017 Add additional debug info if we couldn't find the matching pic in reference list and return error (#69)
* Add additional debug info if we couldn't find the matching pic in refrence list and return error

* Correct the debug info message
2023-11-16 12:39:23 -05:00
Aryan Salmanpour 28c86ba813 update the videodecode sample to call GetFrame/ReleaseFrame regradless of dumping frames (#68) 2023-11-16 12:08:15 -05:00
Kiriti Gowda f67f9033c8 rocDecode - runtime, dev, ASAN package (#52)
* rocDecode - runtime, dev, ASAN

* Package - Updates & cleanup

* Package - Fix

* Package - Deps Info

* rocDecode - Package Depends Cleanup

* CI - Verify Runtime & Dev Packages

* Jenkins - Save all built packages

* Jenkins - Groovy Updates

* Package - Cleanup

* CMakeList - updates

* CI - save all packages

* CI - Save Test Logs
2023-11-15 21:32:10 -05:00
jeffqjiangNew 69c2243c9c IRAP POC calculation fix. (#66)
* * rocDecode/HEVC: Fixed a bug in IRAP picture order count calculation. Added a few picture type check utilities.

* * rocDecode/HEVC: Minor coding style changes. No functional changes.
2023-11-15 16:07:18 -05:00
Aryan Salmanpour 851c537904 code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change (#65)
* code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change

* rename SaveSurfToFile to SaveFrameToFile
2023-11-15 15:49:16 -05:00
Rajy Rawther a4652d6a53 Rr/fix output surface dims (#64)
* fix output surface dimensions

* fix bug
2023-11-15 13:46:37 -05:00
Aryan Salmanpour c44a000c73 Update the make test and Readme by removing the H.264 (#63) 2023-11-15 10:57:55 -05:00
jeffqjiangNew 1d4f038695 Do not set up slice ref list for intra frames for VAAPI calls. (#62)
* * rocDecode/HEVC: Do not set up slice ref list for intra frames.

* *rocDecode/HEVC: Condensed slice type check code. No functionaly changes.
2023-11-14 15:44:35 -05:00
jeffqjiangNew 3357aba104 * rocDecode/HEVC: Fixed a few issues in reference list setup. Also looks like we need to use VA surface IDs on all buffers including the reference (need to confirm with VA driver team). (#61) 2023-11-14 11:42:13 -05:00
Aryan Salmanpour 592426595e Fix a seg fault when saving a frame in SaveSurfToFile (#60) 2023-11-13 14:38:29 -05:00
Rajy Rawther d163eb1764 Rr/add low latency (#59)
* added picture_index associated with frame and fixed bug

* added option to force low_latency display

* add force_zero_latency option for videodecode sample
2023-11-13 13:53:19 -05:00
Aryan Salmanpour eb5614d250 Add support for the rocDecUnMapVideoFrame API (#58) 2023-11-13 12:54:32 -05:00
Rajy Rawther ddded3a6d2 added picture_index associated with frame and fixed bug (#56) 2023-11-13 12:22:22 -05:00
Aryan Salmanpour 730b80b600 Close fds after importing the surVAAPI face to HIP memory (#55) 2023-11-10 18:24:21 -05:00
jeffqjiangNew 3c7f29dab4 Added picture decode submission to VA-API driver. (#54)
* * rocDeocde/HEVC: Added several "reserved" fields to structs to match the corresponding VA-API structs.

* * rocDecode/HEVC: Added decode submission to VA-API driver.

* * rocDecode/HEVC: Corrected data buffer id type.
2023-11-10 17:15:47 -05:00
Aryan Salmanpour 7a90c0c054 Add support for rocDecMapVideoFrame API (#53) 2023-11-10 17:02:57 -05:00
Rajy Rawther 55ebf353cc fix exception handling to gracefully exit (#49)
* fix exception handling to gracefully exit

* addressed review comments
2023-11-10 15:44:40 -05:00
Lakshmi Kumar 146d243f69 Add a sample for measuring the video decoding performance using multi-forks (#51)
* fork example

* review comments

* change logic to find vcn
2023-11-10 11:28:24 -05:00
Lakshmi Kumar 5bac02fab3 Add a sample for measuring the video decoding performance using multi-threads (#50)
* introducing perf example

* chnages for google standards

* adding exception handling

* review comments

* change logic to find vcn devices

* adding comments
2023-11-10 11:23:44 -05:00
jeffqjiangNew 80845837af * rocDecode/HEVC: Fixed a regression introduced by PR#30. We should not abort parsing when we see NAL unit types that we are not interested in. Instead, we should just ignore and continue. (#48) 2023-11-09 14:57:22 -05:00
jeffqjiangNew 8ed03b5ad0 Decode callback implementation step 3: completion. (#47)
* * rocDecode/HEVC: Filled HEVC picture parameter structures for decode callback. Added some missing inferences in tile size and weighted prediction table parsing.

* * rocDecode/HEVC: Changed CurrPicIdx assignment from POC to pic_idx.

* * rocDecode/HEVC: Rmoved one TODO comment, which has been done.

* * rocDecode/HEVC: Corrected two typos in comment.

* * rocDecode/HEVC: No need to set up scaling lists in decode callback when scaling list is not enabled.
2023-11-09 13:52:02 -05:00
Aryan Salmanpour 6ab31ce40e Add support for rocDecGetDecodeStatus API (#46) 2023-11-09 08:47:58 -05:00
Aryan Salmanpour 9afec26af0 Return an error if the video parser creation fails (#45) 2023-11-08 11:54:35 -05:00
Aryan Salmanpour 3a5fc3608b Add support to GetDecoderCaps to correctly return decoder caps for gfx arch names with a suffix (#43) 2023-11-08 10:25:45 -05:00
Aryan Salmanpour ecbd787e4a Add nullptr check for parser APIs before dereferencing the parser's handle (#44) 2023-11-08 10:18:17 -05:00
Aryan Salmanpour 2c940dd9d0 Add support for creating a vaapi context and surfaces for decoding (#41) 2023-11-07 13:47:53 -05:00
Aryan Salmanpour ba484a91a9 Create the correct render node names on MI300A/MI300X (#38) 2023-11-07 11:08:20 -05:00
jeffqjiangNew 2f64a10c5a * rocDecode/HEVC: Updated RocdecPicParams structure to align with VA-API. (#40) 2023-11-06 22:06:03 -05:00
jeffqjiangNew f56a64d832 Decode callback step 1: Added skeleton decode callback to get the flow going. (#39)
* * rocDecode/HEVC: Added skeleton decode callback to get the flow going.

* *rocDecode/HEVC: Added error handling for decode call.
2023-11-06 22:04:25 -05:00
Kiriti Gowda b351972fb0 Documentation - readme updates
Update README
2023-11-06 10:49:10 -08:00
Aryan cefdfb7405 Update README 2023-11-06 12:10:12 -05:00
Kiriti Gowda d34d85027c FFMPEG - Updates (#33)
* FFMPEG - Updates

* Readme - Updates

* Sample - Install

* Install Sample Deps

* Samples - Updates

* Sample - Added missing header
2023-11-06 11:51:47 -05:00
Lakshmi Kumar 213ffc517e Parser - sei message (#30)
* sei mesaage aprser

* sei callback fn

* copy payload and add condition for callback

* compile error fix

* review comments

* review  comment
2023-11-06 09:25:09 -05:00
jeffqjiangNew f5e5d981e1 * rocDecode/HEVC: Fixed a bug in slice header parsing where short term RPS is not properly assigned when SPS short term RPS is referred and the number of these RPSs are 1. Also added error handling in ref list construction to avoid infinite looping. (#36) 2023-11-06 08:22:31 -05:00
Aryan Salmanpour 0d9b056ee5 Fix a bug in GetVideoCodecString function where it didn't return the correct codec string (#35) 2023-11-06 08:20:53 -05:00
Aryan Salmanpour f47fd89f62 Add support for gfx1100 - update the vcn lookup table (#34) 2023-11-02 22:05:17 -04:00
jeffqjiangNew 7a537bbb88 Added all preparing steps in decode process before calling VA-API. (#32)
* rocDecode/HEVC parsing: Implemented correct logic to set active VPS, SPS and PPS: start from slice header and up. Added video image size change detection. Fixed slice_segment_address bits calculation in slice segment header parsing.

* rocDecode/HEVC: Changed variable naming to Google style.

* rocDecode/HEVC: Added VPS, SPS, PPS, and slice segment header content logging functions for debug purposes.

* rocDecode/HEVC: Compacted opening bracket lines to keep coding style consistency.

* * rocDecode/HEVC: Fixed an issue in profile-tier-level parsing where 44 bits are skipped in an incorrect way using ReadBits() which can only consume 32 bits max. Also formated SPS parsing code by using pointer instead of array element.

* * rocDecode/HEVC: Fixed the incorrect array size for sps_max_dec_pic_buffering_minus1, sps_max_num_reorder_pics and sps_max_num_reorder_pics in SPS structure define.

* * rocDecode/HEVC: Modified scaling list parsing to make sure we explicitly follow the spec.

* * rocDecode/HEVC: Added a few syntax elements to short team RPS structure, updated RPS parsing function and logging function.

* * rocDecode/HEVC: In PPS parsing function, use structure pointer instead of structure array element to improve coding clarity.

* * rocDecode/HEVC: Compacted the opening bracket lines. No functional changes.

* * rocDecode/HEVC: Added full parsing of slice segment header. Added PPS range extension parsing.

* * rocDecode/HEVC: Fixed a build error in debug mode due to merging from master branch: removing a redundant debug function.

* * rocDecode/HEVC: Changed the condition for sequence call back from picture size change to more general case where a new SPS is activated. Also moved the call from slice header parsing to upper level where frame data is processed.

* * rocDecode: Compacted opening bracket line. No functional changes.

* * rocDecode/HEVC: Moved POC calculation from slice header parsing to picture level, since we only need to do the calculation once per picture.

* * rocDecode/HEVC: Added RPS decode function.

* *rocDecode/HEVC: Added reference picture list construction.

* * rocDecode/HEVC: Added current picture marking in DPB.

* * rocDecode/HEVC: Removed VA surface id from DPB buffer info structure.

* * rocDecode/HEVC: Do not construct ref list for I pictures.
2023-11-02 18:08:24 -04:00
Aryan Salmanpour 874bd59d89 Fix a bug for the video sequence callback function (#31) 2023-11-02 14:34:52 -04:00
Rajy Rawther 89a278bd1b roc_video_decode class update (#29)
* WIP: class implementation

* add more definitions

* rocvideodecode implementation

* formatting fixes

* address review comments

* rocvideodecode class update

* videodec sample app-enable all apis
2023-11-01 21:16:02 -04:00
Aryan Salmanpour 32f854c159 Add support for rocDecCreateDecoder API (#28)
* Add support for rocDecCreateDecoder API

* check the decoder config support before initializing the vaapi

* rename RocdecDecoderCreateInfo to RocDecoderCreateInfo

* fix a typo
2023-11-01 09:22:46 -04:00
jeffqjiangNew 88a34e4db0 HEVC: Sequence call back changes. (#27)
* rocDecode/HEVC parsing: Implemented correct logic to set active VPS, SPS and PPS: start from slice header and up. Added video image size change detection. Fixed slice_segment_address bits calculation in slice segment header parsing.

* rocDecode/HEVC: Changed variable naming to Google style.

* rocDecode/HEVC: Added VPS, SPS, PPS, and slice segment header content logging functions for debug purposes.

* rocDecode/HEVC: Compacted opening bracket lines to keep coding style consistency.

* * rocDecode/HEVC: Fixed an issue in profile-tier-level parsing where 44 bits are skipped in an incorrect way using ReadBits() which can only consume 32 bits max. Also formated SPS parsing code by using pointer instead of array element.

* * rocDecode/HEVC: Fixed the incorrect array size for sps_max_dec_pic_buffering_minus1, sps_max_num_reorder_pics and sps_max_num_reorder_pics in SPS structure define.

* * rocDecode/HEVC: Modified scaling list parsing to make sure we explicitly follow the spec.

* * rocDecode/HEVC: Added a few syntax elements to short team RPS structure, updated RPS parsing function and logging function.

* * rocDecode/HEVC: In PPS parsing function, use structure pointer instead of structure array element to improve coding clarity.

* * rocDecode/HEVC: Compacted the opening bracket lines. No functional changes.

* * rocDecode/HEVC: Added full parsing of slice segment header. Added PPS range extension parsing.

* * rocDecode/HEVC: Fixed a build error in debug mode due to merging from master branch: removing a redundant debug function.

* * rocDecode/HEVC: Changed the condition for sequence call back from picture size change to more general case where a new SPS is activated. Also moved the call from slice header parsing to upper level where frame data is processed.

* * rocDecode: Compacted opening bracket line. No functional changes.
2023-10-27 15:13:12 -04:00