Commit Graph

17 Commits

Author SHA1 Message Date
Aryan Salmanpour c597fb2a4c Update Copyright year to 2025 (#486)
* Update Copyright year to 2025

* update year to 2025

[ROCm/rocdecode commit: 3624040ce7]
2025-01-05 16:25:39 -05:00
jeffqjiangNew 3230cca447 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.

[ROCm/rocdecode commit: 61c8661b9c]
2024-05-31 13:14:02 -04:00
jeffqjiangNew 5faecc9c59 * 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>

[ROCm/rocdecode commit: 0f905f527c]
2024-05-02 08:46:47 -04:00
jeffqjiangNew 3e74cd919b 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.

[ROCm/rocdecode commit: d2b742ab4b]
2024-05-01 08:29:26 -04:00
jeffqjiangNew 86ad715056 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.

[ROCm/rocdecode commit: bd4e410a8d]
2024-04-30 21:21:05 -04:00
jeffqjiangNew 5a4735ea87 * rocDecode/AVC: Added support for gaps in frame_num. (#319)
- Fixed decode failure of conformance stream MR3_TANDBERG_B.264.

[ROCm/rocdecode commit: a8bcc1e62f]
2024-04-19 16:51:41 -04:00
jeffqjiangNew 036a24f829 * 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>

[ROCm/rocdecode commit: d38931ddae]
2024-04-01 20:58:31 -04:00
jeffqjiangNew 6ef0d46f4a AVC: Added two decode error handlings. (#280)
* * 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>

[ROCm/rocdecode commit: 5c18444bcc]
2024-03-07 21:35:19 -05:00
jeffqjiangNew 513ad63637 AVC: Added reference picture list modification. (#254)
* * rocDecode/AVC: Added reference picture list modification.

* * rocDecode/AVC: Removed a debug log.

---------

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: 4709c0981f]
2024-02-22 08:53:29 -05:00
jeffqjiangNew 4c68b8c1fd * rocDecode/AVC: Added SEI message extraction support. Also merged common AVC and HEVC SEI support code to super class. (#250)
[ROCm/rocdecode commit: 9b006616ed]
2024-02-15 08:42:51 -05:00
jeffqjiangNew 11450f86ef AVC: Added DPB management, decoded picture output and display callback. (#244)
* * 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>

[ROCm/rocdecode commit: ca3333f7b9]
2024-02-14 18:06:43 -05:00
jeffqjiangNew c919735380 * rocDecode/AVC: Added support for multiple slice parameter buffer submission for AVC multi-slice streams. (#234)
[ROCm/rocdecode commit: c496dfd3f2]
2024-02-12 10:22:42 -05:00
jeffqjiangNew 031c28105c * rocDecode/AVC: Fixed a few issues with P frame. (#212)
- 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.

[ROCm/rocdecode commit: 90cddfe655]
2024-01-31 09:10:41 -05:00
jeffqjiangNew e140ba1249 AVC: Added several steps in slice decoding process (8.2) (#208)
* * 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: Added picture order count calculation.

* * rocDecode/AVC: Added initial implementation of reference list setup.

* * rocDecode/AVC: Added decoded reference picture marking.

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

[ROCm/rocdecode commit: 6bd8509bec]
2024-01-29 12:09:36 -05:00
jeffqjiangNew fd2b762fab AVC: Added decode picture callback from parser to decoder and VAAPI decode submission. (#190)
* * 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.

[ROCm/rocdecode commit: 426067898c]
2024-01-23 17:30:29 -08:00
jeffqjiangNew e416b5a192 Added new sequence notification callback for AVC. (#184)
* * 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.

[ROCm/rocdecode commit: a7bb9953c6]
2024-01-17 14:24:58 -05:00
jeffqjiangNew 40408ce2b3 Added initial AVC parser. (#176)
* * 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.

[ROCm/rocdecode commit: 395a1249c1]
2024-01-16 20:57:40 -05:00