Commit Graph

124 Commits

Author SHA1 Message Date
Aryan Salmanpour bbd2fa5916 Don't save frames into a single file if decoder reconfigure is detected for resolution changes - save into separate files for each resolution (#123) 2023-12-06 14:35:10 -05:00
jeffqjiangNew 4ca51e3314 * rocDecode/HEVC: Added formating of the MD5 digest output. (#122) 2023-12-06 10:54:41 -05:00
Lakshmi Kumar 4de634cfd0 Multi Files Sample - Add reconfigure option (#118)
* Add support for rocDecReconfigureDecoder API

* adrress reviewer's comemnts

* add reconfigure to multifile

* update readme

* Update videodecodemultifiles.cpp

* Update README.md

---------

Co-authored-by: Aryan <aryan.salmanpour@amd.com>
2023-12-06 10:32:39 -05:00
jeffqjiangNew fcd63b9358 * rocDecode/HEVC: In flush DPB function, added a check for any buffers that need for output before any actions. This prevents any potential issues. (#121) 2023-12-06 09:39:49 -05:00
Aryan Salmanpour 9257cd6fcf Add nullptr parameters check for all decoder/parser APIs and some code clean up (#120) 2023-12-05 13:06:34 -05:00
Aryan Salmanpour f008b52403 Fix a build error in videodecode sample (#119) 2023-12-05 12:01:17 -05:00
jeffqjiangNew 583e72720a Added the command option "-md5_check" to compare the MD5 of the decoded YUV to the reference MD5. This facilitates decoder conformance test automation. (#117)
* * rocDecode: Added a command option "-md5_check" to compare the MD5 of the decoded YUV to the reference MD5. This ficilitates decoder conformance test automation.

* * rocDecode/HEVC: Changed file and string operation from C code to C++ code.

* * rocDecode/HEVC: Updated README.md for videoDecode sample.
2023-12-05 11:40:39 -05:00
Aryan Salmanpour 875994bb4f Add support for rocDecReconfigureDecoder API (#116)
* Add support for rocDecReconfigureDecoder API

* adrress reviewer's comemnts

* Add doxygen comment for ReconfigureDecoder function
2023-12-05 11:16:32 -05:00
Lakshmi Kumar 69a2afd341 Adding Test script (#113)
* test script

* code clean up + csv file

* add readme

* deleting unnecesasry files

* spelling correction

* moving tests to smaples

* Delete tests directory

* review comments
2023-12-05 08:43:33 -05:00
jeffqjiangNew 5e65788bdd * rocDecode/HEVC: Fix for decode errors on a few conformance streams. (#114)
- Re-wrote short term RPS parsing function. The previous code generates incorrect results on some conformance streams.
  - No longer skip the additional buffer bumping specified in process C.5.2.2. This avoids the situation where the current frame overwrites the previously decoded buffer that is being output/displayed.
2023-12-04 11:53:26 -05:00
Aryan Salmanpour ae63fbacab Chamne the return type of FillSeqCallbackFn to int and check to see if it returns any error (#112) 2023-12-01 14:50:33 -05:00
Rajy Rawther 15fb3e0b91 Samples - Add a sample for decoding a video and converting the raw decoded YUV frames to RGB format using HIP kernels (#108)
* WIP: class implementation

* add more definitions

* rocvideodecode implementation

* formatting fixes

* address review comments

* rocvideodecode class update

* videodec sample app-enable all apis

* video_dec_rgb_sample implementation

* fix issue with release mode execution and other clean_up

* add copyright block

* address review comments

* sync with tot and addressed review comments

* convert to snake_case
2023-12-01 13:26:30 -05:00
Aryan Salmanpour e001d78859 remove the b_low_latency_ from the RocVideoDecoder class (#111) 2023-11-30 22:09:13 -05:00
jeffqjiangNew a878a106fb * rocDecode/HEVC: When video size changes, set new SPS activation flag. This takes care of the case where a new SPS replaces the old SPS with the same id but with different dimensions. (#110) 2023-11-30 18:32:25 -05:00
jeffqjiangNew ad20961c4a MD5 digest generation support (#109)
* * rocDecode/HEVC: Added support for MD5 message digest generation.
  - Command option "-md5" triggers MD5 calculation and output.

* * rocDecode/HEVC: Changed C type casting to C++ type casting.
2023-11-30 17:40:45 -05:00
dependabot[bot] 86a0b295a5 Bump rocm-docs-core[api_reference] from 0.29.0 to 0.30.0 in /docs/sphinx (#106)
Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.29.0 to 0.30.0.
- [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases)
- [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.29.0...v0.30.0)

---
updated-dependencies:
- dependency-name: rocm-docs-core[api_reference]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-30 17:40:30 -05:00
Aryan Salmanpour c1a8ac48b4 use std::max to avoid compilation issue (#107) 2023-11-30 11:29:39 -05:00
Aryan Salmanpour 5beedfdd55 update the the rocDecode-setup script - add libstdc++12, and remove unused libavsws-dev (#105) 2023-11-30 10:08:38 -05:00
Lakshmi Kumar 449572f9bf Samples - adds surface memory option to user (#104)
* adding surface mem type as user arg

* adding mem type user arg for all apps

* readme update

* readme updates on all apps
2023-11-30 08:31:37 -05:00
Lakshmi Kumar 720c56eb04 bug fix for crop arg (#103) 2023-11-30 08:13:55 -05:00
Aryan Salmanpour 225fabbf60 Update README - add libstdc++-12-dev as the prerequisites for building rocDecode (#102) 2023-11-29 20:59:06 -05:00
Aryan Salmanpour 48474fdad9 clean up - use google style guide for the RocDecoder class (#101)
* clean up - use google style guide for the RocDecoder class

* make other files/classes to follow the google style guides
2023-11-29 13:50:38 -05:00
Aryan Salmanpour f8b01f3d1a Increase the avioc_buffer_size for AVIOContext creation - this is needed for videoDecodeMem sample (#100) 2023-11-29 13:37:44 -05:00
Lakshmi Kumar 22de4fbc6f Samples - adding a sample to illustrate StreamProvider for demuxer (#99)
* mem sample

* changes to match c++ style

* ffmpeg log

* readme update

* readme clean up
2023-11-29 11:22:21 -05:00
Lakshmi Kumar ad54bd5258 README - updates for samples (#98)
* update readme for samples

* readme clean up

* readme clean up
2023-11-29 11:21:22 -05:00
Lakshmi Kumar 2cb3bd143c Sample - add a new sample for processing multiple input files (#97)
* adding a sample for decoding multiple files

* readme correction

* spacing

* review comments
2023-11-29 11:13:24 -05:00
jeffqjiangNew 2d14eb61b2 * rocDecode/HEVC: Fixed corruptions in RASL (Random Access Skipped Leading) pictures of an associated CRA picture. (#96)
- It appears that the root cause of the corruption is the loss of some reference info of the RASL pictures at VA-API driver level.
  - For reasons that are not documented in VA-API, or simply implementation limitations, the DPB buffer status when a CRA picture is decoded, needs to be sent to VA-API driver to the correct decoding of the associated RASL pictures. The info is stored in PocStFoll and PocLtFoll and is not needed for CRA picture decode, which is an intra picture. Without this info, the following RASL picture decode will run into problem even when its reference picture info is correctly specified.
  - Note this appears to be a VA-API specific issue because it did not occur on other platforms.
2023-11-29 08:33:00 -05:00
Aryan Salmanpour 3625829546 Improve logging errors for VAAPI and HIP by including the API names and the status in the logs (#95)
* Improve logging errors for VAAPI and HIP by including the API names and the status in the logs

* clean up
2023-11-28 16:52:27 -05:00
Kiriti Gowda 80f8f5280f Package - Fix (#93)
* Package - Fix

* Readme - Updates
2023-11-28 16:08:24 -05:00
jeffqjiangNew 27d28dd5f4 * rocDecode/HEVC: Fixed a method name typo. (#92) 2023-11-28 14:03:13 -05:00
Aryan Salmanpour 72bfa50c21 Fix a perf issue where we didn't pass the device id correctly to rocDecCreateDecoder API (#91) 2023-11-28 11:26:34 -05:00
Lakshmi Kumar 7ed754dc72 Bug fix - fork sample (#90)
* bug fix with fork sample

* review comments
2023-11-28 08:42:19 -05:00
jeffqjiangNew 09da68790c * rocDecode/HEVC: Fixed the missing output picture issue on certain streams. (#89)
- When we hit IRAP (Intra Random Access Point) picture and need to bump all remaining decoded pictures from DPB, call display callback immediately, instead of delaying the callback to the IRAP decode process.
2023-11-27 19:54:49 -05:00
Aryan Salmanpour d9310fdd5b Explicitly link with Threads to avoid linking errors for videodecodeperf sample (#88) 2023-11-27 19:53:58 -05:00
dependabot[bot] 4bbd0a68e7 Bump rocm-docs-core[api_reference] from 0.28.0 to 0.29.0 in /docs/sphinx (#84)
Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.28.0 to 0.29.0.
- [Release notes](https://github.com/RadeonOpenCompute/rocm-docs-core/releases)
- [Changelog](https://github.com/RadeonOpenCompute/rocm-docs-core/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/RadeonOpenCompute/rocm-docs-core/compare/v0.28.0...v0.29.0)

---
updated-dependencies:
- dependency-name: rocm-docs-core[api_reference]
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 13:09:00 -05:00
Aryan Salmanpour e5d5bd4abb Return an error if the ExportSurface function fails. Add extra error logging in the destructor of the VaapiVideoDecoder class (#87) 2023-11-27 13:08:34 -05:00
jeffqjiangNew 624c3c0f09 End of stream flush (#86)
* * rocDecode/HEVC: Added picture output operation in DPB and display callback function.
  - To avoid serialization of decode submissions and/or display callback in certain cases, increased DPB buffer size by 1 and tweaked picture bumping procedure.

* * rocDecode/HEVC: Added flushing of the remaining pictures from DPB at the end of decode session.

* * rocDecode/HEVC: Changed output_pic_num to num_output_pics to void some confusion. Set top_field_first to 1.

* * rocDecode/HEVC: Added a few return error checks.
2023-11-27 13:03:26 -05:00
Aryan Salmanpour 8898af78a6 D not fuse - zwhen runnnin gthesmake test. Don't force b_force_latency ofr Perf/Fork sample (#85) 2023-11-27 12:33:28 -05:00
jeffqjiangNew 57c040eff8 Added picture output operation in DPB and display callback function. (#83)
* * rocDecode/HEVC: Added picture output operation in DPB and display callback function.
  - To avoid serialization of decode submissions and/or display callback in certain cases, increased DPB buffer size by 1 and tweaked picture bumping procedure.

* * rocDecode/HEVC: Added a few error checks and minor format changes.
2023-11-27 11:04:01 -05:00
Kiriti Gowda 90e6d30383 Package - updates (#81)
* Package - updates

* Package - Info
2023-11-23 08:57:45 -05:00
Aryan Salmanpour a8e39c95c9 Fix a bug in VideoDecodePerf app to cepturn he number of decoded frames (#82) 2023-11-22 17:35:52 -05:00
Kiriti Gowda e2f7e47bb3 Documentation - ReadtheDocs
Add configuration for ReadtheDocs
2023-11-21 14:46:20 -08:00
Sam Wu 3f7e3fe7d8 Add configuration for ReadtheDocs 2023-11-21 13:25:56 -07:00
jeffqjiangNew ad186a90da Re-enabled SEI message processing. (#79)
* * rocDecode/HEVC: Re-enabled SEI message processing.
  - Added "-sei" command option to extract SEI messages from stream.
  - Added support for SEI info parsing for multiple SEI NAL units with multiple payloads.
  - Fixed a SEI syntax parsing issue and several procssing issues.
  - Fixed a double free memory issue in SEI data buffer handling in HandlePictureDisplay().

* * rocDecode/HEVC: Coding format changes.

* * rocDecode/HEVC: Minor format changes.
2023-11-21 14:33:15 -05:00
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