Граф коммитов

151 Коммитов

Автор SHA1 Сообщение Дата
jeffqjiangNew bacf9f6700 Fixed a couple of errors in long term reference picture set parsing and long term reference picture list construction. (#151)
* * rocDecode/HEVC: Fixed a couple of errors in long term reference picture set parsing and long term reference picture list construction.

* * rocDecode/HEVC: Coding format change: removed newline in front of else statements. No functional changes.

[ROCm/rocdecode commit: c5483c751e]
2024-01-05 09:15:33 -05:00
jeffqjiangNew 7ee24483ff * rocDecode/HEVC: Fixed a bug in destroy data buffer function in VAAPI layer. (#150)
- We have to clear the buffer id after destroying it. Without this clearing, we will encounter VAAPI buffer destroy failure on certain conformance streams where scaling list is signaled dynamically. In this case, we create different number of data buffers on different frames. If we do not clear the buffer id when destroying it, a dummy scaling list buffer id will have the same value as another buffer, resulting double destroy.

[ROCm/rocdecode commit: 33d6b37ddb]
2024-01-02 15:56:18 -05:00
jeffqjiangNew 2b9ea06e5c * rocDecode/HEVC: Fixed an issue in reference list reconstruction. (#149)
- Removed a size check which was put in in early bring up stage and causes some conformance stream failures.
  - Also capped the DPB buffer size to 16 when we increase it from the spec value.

[ROCm/rocdecode commit: 6db0b79144]
2024-01-02 15:55:52 -05:00
Aryan Salmanpour c0efaf16e6 Check va_display_ to be valid before calling any VA APIs (#148)
[ROCm/rocdecode commit: 6c07e53614]
2023-12-21 08:16:24 -08:00
dependabot[bot] 372bc265b2 Bump rocm-docs-core[api_reference] from 0.30.2 to 0.30.3 in /docs/sphinx (#147)
Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.2 to 0.30.3.
- [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.30.2...v0.30.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ROCm/rocdecode commit: 2853a58ac5]
2023-12-20 13:02:26 -05:00
Rajy Rawther d55324bcf9 Add mechanism to flush last frames during reconfigure (#142)
* add mechanism to flush last frames during reconfigure

* reconfig mode updated support

* addressed review comments

* addressed review comments

* change condition according to review comment

[ROCm/rocdecode commit: a5211189f5]
2023-12-19 08:49:17 -05:00
dependabot[bot] f43b7554e1 Documentation - Bump rocm-docs-core[api_reference] from 0.30.1 to 0.30.2 in /docs/sphinx (#146)
Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.1 to 0.30.2.
- [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.30.1...v0.30.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ROCm/rocdecode commit: a82b1f215a]
2023-12-18 09:43:39 -08:00
jeffqjiangNew 3567946884 Fixed a POC calculation error in some corner cases. (#145)
* * rocDecode/HEVC: Fixed a POC calculation error in some corner cases.

* * rocDecode/HEVC: Added a newline between two functions. No functional changes.

[ROCm/rocdecode commit: 1cdbac7d70]
2023-12-18 08:20:55 -05:00
jeffqjiangNew 8d44a48ee0 Fixed a bug in reference picture list modification parsing. (#143)
* * rocDecode/HEVC: Fixed the random crash associated with undecodable RASL pictures.
  - When a CRA picutre occurs, all the pictures in the DPB are emptied. However, the following RASL (Random Access Skipped Leading) picture can still reference these emptied pictures, making them undecodeble.
  - We initialized the reference picture lists with (0xFF), representing invalid picture index. Normally these invalid indices are replaced by valid values during RPS decoding. However, on undecodable RASL pictures, we can not find an existing reference picture in DPB, leaving the invalid index untouched and resulting invalid indexing later on.
  - Now we initialize the reference picture lists with a valid value 0. Also we add index range check on reference buffer at VA-API layer to avoid invalid memory access.

* * rocDecode/HEVC: Fixed a typo in sampel app message.

* *rocDecode/HEVC: Fixed a bug in reference picture list modification parsing.
  - This fixed the test failure of two conformance streams.

[ROCm/rocdecode commit: c9cfcde12d]
2023-12-15 16:08:19 -05:00
jeffqjiangNew 7b2035c071 Fixed the random crash associated with undecodable RASL pictures. (#141)
* * rocDecode/HEVC: Fixed the random crash associated with undecodable RASL pictures.
  - When a CRA picutre occurs, all the pictures in the DPB are emptied. However, the following RASL (Random Access Skipped Leading) picture can still reference these emptied pictures, making them undecodeble.
  - We initialized the reference picture lists with (0xFF), representing invalid picture index. Normally these invalid indices are replaced by valid values during RPS decoding. However, on undecodable RASL pictures, we can not find an existing reference picture in DPB, leaving the invalid index untouched and resulting invalid indexing later on.
  - Now we initialize the reference picture lists with a valid value 0. Also we add index range check on reference buffer at VA-API layer to avoid invalid memory access.

* * rocDecode/HEVC: Fixed a typo in sampel app message.

[ROCm/rocdecode commit: 0fbd030b5d]
2023-12-15 15:54:43 -05:00
jeffqjiangNew dd6d01722c Added script to run static conformance test. (#139)
* * rocDecode/HEVC: Added script to run static conformance test.
  - The script runs videodecode app in MD5 check mode on the conformance streams.
  - The MD5 check results are stored in rocDecode_conformance.log and printed out.

* * rocDecode: Fixed formatting in README.md.

* * rocDecode/Conformance test: Added the missing exit when number of streams does not match number of reference MD5 digests.

* * rocDecode/Conformance test: Do case insensitive sorting.

* * rocDecode/Conformance test: Fixed a typo in the script.

* * rocDecode/Conformance test: Added info on the number of streams that fail to complete decode.

* * rocDecode/Conformance test: Added the missing message of the aborted streams to stdout.

[ROCm/rocdecode commit: 3598f4d96e]
2023-12-15 15:54:05 -05:00
Kiriti Gowda 0b161f9a10 Sample - Update CMakeLists.txt (#144)
Find rocDecode Fix

[ROCm/rocdecode commit: 07595d7937]
2023-12-15 15:44:58 -05:00
Kiriti Gowda b63e6e394c rocDecode Test Package (#140)
* rocDecode Test Package

* Jenkins - Add Test Package

* CTest for Package

[ROCm/rocdecode commit: 90fcd668a5]
2023-12-14 10:42:52 -05:00
Pavel Tcherniaev 8107033846 added help for arguments in case user doesn't give any arguments (#138)
[ROCm/rocdecode commit: 5930f15c1a]
2023-12-13 13:55:40 -05:00
Aryan Salmanpour 0652ec852c return the correct rocdec_status if DestroyDataBuffers fails (#137)
[ROCm/rocdecode commit: 9a78101d22]
2023-12-13 10:57:14 -05:00
Aryan Salmanpour 02e09dba20 FindFFmpeg.cmake cleanup - don't find the SWSCLAE_LIBRARY as it is not needed by rocDecode samples (#136)
[ROCm/rocdecode commit: 40cecb2752]
2023-12-13 10:07:47 -05:00
Kiriti Gowda 6358d28214 License Updates (#135)
* License Updates

* Readme Updates

[ROCm/rocdecode commit: 92b9982b55]
2023-12-13 09:49:52 -05:00
jeffqjiangNew 82d328b627 * rocDecode/HEVC: Fixed the decode failure of the conformance stream BUMPING_A_ericsson_1.bit. (#133)
- This stream tests output order conformance, in particular the bumping process. Four temporal layers are used and IRAP pictures with no_output_of_prior_pics_flag equal to 1 are present in the bitstream.

[ROCm/rocdecode commit: 42f109369e]
2023-12-13 09:48:15 -05:00
jeffqjiangNew 7cd5d6c0ee * rocDecode/HEVC: Added frame rate info report when it is available, from the parser. (#130)
[ROCm/rocdecode commit: 7240ee8973]
2023-12-12 13:47:19 -05:00
Lakshmi Kumar a3e509db61 Test Scripts Enhancement - readme correction & better error handling (#132)
* readme correction & better error handling

* review comments

[ROCm/rocdecode commit: 06cde7965b]
2023-12-12 10:34:31 -05:00
Aryan Salmanpour 5a9f519761 Don't call DestroyDataBuffers during the reconfiguration - this function will be called during SubmitDecode (#131)
[ROCm/rocdecode commit: b8a8b66b91]
2023-12-11 17:10:10 -05:00
Aryan Salmanpour b62bf4a6a1 Fix perf drop on some MI250 nodes - create VABuffers for every submission, and don't use vaMapBuffer/vaUnmapBuffer (#129)
* create VABuffers for every submission, and don't use vaMapBuffer/vaUnmapBuffer

* code clean up

* address review comments

[ROCm/rocdecode commit: b77d00e38e]
2023-12-11 15:40:50 -05:00
jeffqjiangNew a265b9a3da * rocDecode: Fix for the performance regression introduced by PR#114. (#128)
- Skip the additional buffer bumping specified in process C.5.2.2., to avoid synchronous job submission in some cases.
  - Increase DPB buffer size now by 2 to avoid overwriting pictures to be output.

[ROCm/rocdecode commit: a2dfa8bc26]
2023-12-08 17:53:01 -05:00
Rajy Rawther e651268fab added release of copied buffers in host and hip (#126)
* added release of copied buffers in host and hip

* address review comments

* addressed review comment

[ROCm/rocdecode commit: 1dc5a9d798]
2023-12-08 17:29:00 -05:00
jeffqjiangNew 5044e65de3 Changed MD5 calculation of 10 bit to match reference MD5. (#127)
* * rocDecode/HEVC: Changed MD5 calculation of 10 bit to match reference MD5.
  - Need to convert P010 YUV to little endian.

* * rocDecode/HEVC: Convert to C++ type cast style.

[ROCm/rocdecode commit: 5d45ac6d92]
2023-12-07 17:06:51 -05:00
dependabot[bot] df24f68089 Bump rocm-docs-core[api_reference] from 0.30.0 to 0.30.1 in /docs/sphinx (#125)
Bumps [rocm-docs-core[api_reference]](https://github.com/RadeonOpenCompute/rocm-docs-core) from 0.30.0 to 0.30.1.
- [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.30.0...v0.30.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

[ROCm/rocdecode commit: ab2f7db560]
2023-12-07 11:19:36 -05:00
Lakshmi Kumar 6c3f0095da adding support for MI300A A1 - gfx942 (#124)
[ROCm/rocdecode commit: f221d78258]
2023-12-07 09:31:44 -05:00
Aryan Salmanpour babefe67a9 Don't save frames into a single file if decoder reconfigure is detected for resolution changes - save into separate files for each resolution (#123)
[ROCm/rocdecode commit: bbd2fa5916]
2023-12-06 14:35:10 -05:00
jeffqjiangNew 99a97db048 * rocDecode/HEVC: Added formating of the MD5 digest output. (#122)
[ROCm/rocdecode commit: 4ca51e3314]
2023-12-06 10:54:41 -05:00
Lakshmi Kumar 47ff590d98 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>

[ROCm/rocdecode commit: 4de634cfd0]
2023-12-06 10:32:39 -05:00
jeffqjiangNew 64d7f1c37f * 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)
[ROCm/rocdecode commit: fcd63b9358]
2023-12-06 09:39:49 -05:00
Aryan Salmanpour 08c99da4fa Add nullptr parameters check for all decoder/parser APIs and some code clean up (#120)
[ROCm/rocdecode commit: 9257cd6fcf]
2023-12-05 13:06:34 -05:00
Aryan Salmanpour 24dc12e75e Fix a build error in videodecode sample (#119)
[ROCm/rocdecode commit: f008b52403]
2023-12-05 12:01:17 -05:00
jeffqjiangNew 409d6efa2a 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.

[ROCm/rocdecode commit: 583e72720a]
2023-12-05 11:40:39 -05:00
Aryan Salmanpour 70a18314d5 Add support for rocDecReconfigureDecoder API (#116)
* Add support for rocDecReconfigureDecoder API

* adrress reviewer's comemnts

* Add doxygen comment for ReconfigureDecoder function

[ROCm/rocdecode commit: 875994bb4f]
2023-12-05 11:16:32 -05:00
Lakshmi Kumar 62fb6aa511 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

[ROCm/rocdecode commit: 69a2afd341]
2023-12-05 08:43:33 -05:00
jeffqjiangNew dd3b609a09 * 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.

[ROCm/rocdecode commit: 5e65788bdd]
2023-12-04 11:53:26 -05:00
Aryan Salmanpour bf9ca09a9a Chamne the return type of FillSeqCallbackFn to int and check to see if it returns any error (#112)
[ROCm/rocdecode commit: ae63fbacab]
2023-12-01 14:50:33 -05:00
Rajy Rawther 20defa76e5 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

[ROCm/rocdecode commit: 15fb3e0b91]
2023-12-01 13:26:30 -05:00
Aryan Salmanpour 88dd09c011 remove the b_low_latency_ from the RocVideoDecoder class (#111)
[ROCm/rocdecode commit: e001d78859]
2023-11-30 22:09:13 -05:00
jeffqjiangNew 10545bcd94 * 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)
[ROCm/rocdecode commit: a878a106fb]
2023-11-30 18:32:25 -05:00
jeffqjiangNew 67c5b77806 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.

[ROCm/rocdecode commit: ad20961c4a]
2023-11-30 17:40:45 -05:00
dependabot[bot] 06212d1e57 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>

[ROCm/rocdecode commit: 86a0b295a5]
2023-11-30 17:40:30 -05:00
Aryan Salmanpour 7358b1b595 use std::max to avoid compilation issue (#107)
[ROCm/rocdecode commit: c1a8ac48b4]
2023-11-30 11:29:39 -05:00
Aryan Salmanpour 50f96385dd update the the rocDecode-setup script - add libstdc++12, and remove unused libavsws-dev (#105)
[ROCm/rocdecode commit: 5beedfdd55]
2023-11-30 10:08:38 -05:00
Lakshmi Kumar 55193f5165 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

[ROCm/rocdecode commit: 449572f9bf]
2023-11-30 08:31:37 -05:00
Lakshmi Kumar 372ab1219a bug fix for crop arg (#103)
[ROCm/rocdecode commit: 720c56eb04]
2023-11-30 08:13:55 -05:00
Aryan Salmanpour f4a45639d6 Update README - add libstdc++-12-dev as the prerequisites for building rocDecode (#102)
[ROCm/rocdecode commit: 225fabbf60]
2023-11-29 20:59:06 -05:00
Aryan Salmanpour 1bbbe808f5 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

[ROCm/rocdecode commit: 48474fdad9]
2023-11-29 13:50:38 -05:00
Aryan Salmanpour e6e296dd8c Increase the avioc_buffer_size for AVIOContext creation - this is needed for videoDecodeMem sample (#100)
[ROCm/rocdecode commit: f8b01f3d1a]
2023-11-29 13:37:44 -05:00