Commit Graph

88 Commits

Author SHA1 Message Date
Jeff Jiang 84257d513a AV1: Added 12-bit AV1 decode support. (#631)
* * rocDecode/AV1: Added 12-bit AV1 decode support.
 - The feature is only enabled for VAAPI version 1.23.0 and up.
 - Added MD5 calculation for 12-bit video output.

* * rocDecode: Bumped version up to 1.2.0 and updated change log.

* * rocDecode: Updated change log based on review.
2025-08-21 10:40:17 -04:00
Rajy Rawther 3b280ac7c3 ffmpeg decode utility class cleanup (#616)
* cleaned up ffmpeg decode utility class to use rocdecode host lib

* added changelog for the PR

* address review comments for FFMPEG dependancy in cmake

* Update CHANGELOG.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

* addressed review comments

* update version in Cmake

---------

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>
2025-07-28 09:59:47 -04:00
Kiriti Gowda 23c17cc150 Find rocdecode - Updates for ROCm 7.0 (#610)
* rocDecode - Version 1.0.0

* Find package - config updates

* CMakeLists - Updates and config fix

* CMakelists - updates

* Samples - link to rocdecode_LIBRARY rocdecode::rocdecode

---------

Co-authored-by: Kiriti <kiriti@santiago.amd.com>
2025-06-24 17:39:49 -04:00
Rajy Rawther 83734ec42e Option to disable building of rocdecode host based library (#603) 2025-06-12 08:28:44 -04:00
Rajy Rawther 3ddb12f075 FFMpeg decoder rocdecode integration (#583)
* initial commit

* initial implementation for host based decoder

* minor change

* cmake changes and added new sample

* rocdecDecode sample implementation

* rocdecode sample changes working

* working version of avcodec decoder and sample

* Add end of stream handling for repeated decoding with reconfigure

* reorg files and added changelog

* update readme

* revert file

* remove unused class members

* addressed reviw comment for changelog

* fix sample to work on more video files

* resolved review comments

* bumped version to 0.14.0

* fixed build warnings

* addressed review comments

* addressed review comments

* addressed review comments

* fixed readme to match .cpp file options for parameters

* updated review comments, readme, and added test data for the sample

* fixed bug for saving frame for 10 bit videos

* addressed review comments

* addressed all the new review comments
2025-06-07 13:12:57 -04:00
Aryan Salmanpour 624dda250d CMake - Add support for explicitly linking libdrm_amdgpu with rocdecode (#589) 2025-05-15 14:00:19 -04:00
jeffqjiangNew e3ab17c09e * VP9 error resilience: Added syntax error handling. (#587)
- Added VP9 stream stream syntax error detection and handling.
 - Updated change log.
 - Bumped rocDecode version to 0.13.1.
2025-05-14 17:12:50 -04:00
Afzal Patel b84146fb42 add amdgpu drm include directory (#579)
* add amdgpu drm include directory

* modify find_path

* add additional paths to address ci fail
2025-05-06 21:59:00 -04:00
jeffqjiangNew 4b10fa5a1a Decoder utility: Removed a couple of incorrect asserts. (#574)
* * Decoder utility: Removed a couple of incorrect asserts. Changed other asserts to error messages.

* * Changed rocDecode version from 0.12.0 to 0.13.0. Updated change log.

* * Decoder utility: Updated change log based on review comments.

* * Decoder utility: Minor format change based on review: removed the extra space.
2025-04-29 16:41:36 -04:00
jeffqjiangNew 2dea69d26b Revert "CTest: Added CTest for AV1 elementary stream decode on bitstream read…" (#569)
This reverts commit 5472059e16.
2025-04-21 15:57:15 -04:00
jeffqjiangNew 5472059e16 CTest: Added CTest for AV1 elementary stream decode on bitstream reader. (#561)
* * CTest: Added CTest for AV1 elementary stream decode on bitstream reader.

* * CTest: Added the missing stream file.

* * CTest: Fixed the batch sample CTest failure on RHEL8 system where AV1 elementary stream is not supported by the installed FFMPEG demuxer. Now we do not run batch test on elementary streams.

* * CTest: Added two missing path changes.
2025-04-16 21:20:16 -04:00
Aryan Salmanpour 1d8ab16c52 CTest: Add a test to perform negative testing on all rocDecode APIs (#562) 2025-04-16 16:46:50 -04:00
Kiriti Gowda 5eab03d198 CMakeLists - Set Std updates & Jenkins CodeCov (#546)
* CMakeLists - Set Std updates

* Jenkins - Code coverage

* Jenkins - Fix and cleanup

* Jenkins - Fix

* Jenkins - Fix

* Jenkins - Fix

* Jenkins - Fix

* Use amdclang compiler

* Remove slash in front of quote

* Jenkins - Fix

* Jenkins - Fix location

* Jenkins - Fix perf export

* Jenkins - .so fix

* Jenkins - lcov

* Install fix

* Use repo token for codecov

* Pass in sha to codecov

* Use clang19 for ubu24

* Use default clang

* CMakeLists - Set Std updates

* Jenkins - Code coverage

* Jenkins - Fix and cleanup

* Jenkins - Fix

* Jenkins - Fix

* Jenkins - Fix

* Jenkins - Fix

* Use amdclang compiler

* Remove slash in front of quote

* Jenkins - Fix

* Jenkins - Fix location

* Jenkins - Fix perf export

* Jenkins - .so fix

* Jenkins - lcov

* Install fix

* Use repo token for codecov

* Pass in sha to codecov

* Use clang19 for ubu24

* Use default clang

* Set proxy for codecov uploader

Needed for gfx90a

---------

Co-authored-by: Sam Wu <22262939+samjwu@users.noreply.github.com>
2025-03-31 21:31:23 -07:00
Lakshmi Kumar 0b1865e8b8 Fix warnings (#536)
* fix warnings

* remove warning

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2025-03-20 09:12:16 -04:00
Kiriti Gowda 35ed4e9b7a Dev Package fix (#537) 2025-03-19 13:07:11 -04:00
Kiriti Gowda 6b026af151 CMake config - updates and fixes (#532)
* CMake Config - updates and fixes

* Version - Updates

* Changelog - updates

* Update CHANGELOG.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

---------

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>
2025-03-17 12:38:01 -04:00
jeffqjiangNew ab7546930f HEVC: Added bit depth change support in decoder reconfiguration. (#527)
* * rocDecode/HEVC: Added bit depth change support in decoder reconfiguration.

* * rocDecode/HEVC: Removed a comment line.

* * rocDecode/HEVC: Updated change log.

* * rocDecode/HEVC: Used the reserved space in RocdecReconfigureDecoderInfo structure for bit_depth_minus_8 field to be backward compatible. Added bit depth to the new sequence file name when we dump output in decoder reconfiguration case.

* * rocDecode/HEVC: Added bit depth change support in decoder reconfiguration.

* * rocDecode/HEVC: Removed a comment line.

* * rocDecode/HEVC: Updated change log.

* * rocDecode/HEVC: Used the reserved space in RocdecReconfigureDecoderInfo structure for bit_depth_minus_8 field to be backward compatible. Added bit depth to the new sequence file name when we dump output in decoder reconfiguration case.

* * rocDecode/HEVC: Changes based on review comments.

* * rocDecode: Fixed a bug related to 422 surface format assignment.

* * rocDecode: Fixed build warnings with some sample apps.
2025-03-13 09:29:25 -04:00
jeffqjiangNew a5863bceba VP9: Added VP9 IVF container detection and picture data parsing support to bitstream reader. (#519)
* * rocDecode/VP9: Added VP9 IVF containter detection and picture data parsing.

* * rocDecode/VP9 bitstream reader: Wording changes based on review comment.

* * rocDecode/VP9 IVF parser: Updated change log based on review comment.

* * rocDecode/VP9 IVF parser: Bumped up rocDecode version to 0.11.0.

* * rocDecode/VP9: Added VP9 IVF containter detection and picture data parsing.

* * rocDecode/VP9 bitstream reader: Wording changes based on review comment.

* * rocDecode/VP9 IVF parser: Updated change log based on review comment.

* * rocDecode/VP9 IVF parser: Bumped up rocDecode version to 0.11.0.

* * rocDecode/VP9 IVF parsing: Minor name correction.
2025-02-28 18:11:10 -05:00
Aryan Salmanpour bca75cf2b7 Eliminate the use of std::fs (#497) 2025-01-27 08:10:11 -05:00
Aryan Salmanpour 3624040ce7 Update Copyright year to 2025 (#486)
* Update Copyright year to 2025

* update year to 2025
2025-01-05 16:25:39 -05:00
Kiriti Gowda 913b6728f0 CMakeLists - Updates and cleanup (#483)
* CMakeLists - Updates and cleanup

* CTest - CXX Compiler Updates

* Package - Remove FFMPEG exe deps

* CMakeLists - Updates and cleanup

* CTest - CXX Compiler Updates

* Package - Remove FFMPEG exe deps

* FFMPEG - Updates
2025-01-02 09:42:31 -05:00
Aryan Salmanpour c02fbcf658 Enable the CMake ROCDECODE_ROCPROFILER_REGISTER option by default (#469) 2024-12-09 18:24:30 -05:00
jeffqjiangNew 597b29a7c9 CTest updates. (#473)
* * rocDecode: Core test updates.
 - Added VP9 test.
 - Added tests for video decode raw sample.
 - Changed test video streams to raw elementary or IVF formats.

* * rocDecode/CTest: Added back mp4 files.

* * rocDecode/CTest: Minor changes based on review comments.

* * rocDecode/CTest: Added stream file installation.

* * rocDecode/CTest: Changed the file back to mp4.

* Add support for VP9 handling in the videoDecodeBatch sample

* add linking with threads for videodecode app

---------

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
2024-12-06 14:46:30 -05:00
jeffqjiangNew e62aa3e09b Added the bit stream reader feature. (#433)
* * rocDecode/ES parser: Added elementary stream file parser for HEVC and AVC.

* * rocDecode/ES parser: Added elementary stream file parser for AV1. Also cleaned up the bitstream ring buffer code.

* * rocDecode/ES parser: Added the IVF container file parser for AV1. Also fixed a bug in fill ring buffer function.

* * rocDecode/ES file parder: Added supported stream type detection.
 - The stream type detection checks the unique syntax patterns of the stream type and calculate the likeliheed score. Based on the score, the most likely type is determined.
 - The current supported stream types are: AVC/HEVC/AV1 elementary streams, IVF AV1 streams.

* * rocDecode/ES file parser: Fixed an AVC decode regression due to a copy and paste error.

* * rocDecode/ES file parser: Added bit depth parsing for codec support check; Added stronger AV1 detection for IVF AV1 stream type.

* * rocDecode/ES file parser: Removed debugging logs.

* * rocDecode/ES file parser: Added exmaple code to use the built-in file parser.

* * rocDecode/Bitstream reader: Renamed the elementary parser feature to bitstream reader and re-organized the code.
 - Moved the bitstream reader code to rocDecode core lib from utility.
 - Added bitstream reader interface in parallel with rocDecode parser and decoder interfaces.

* * rocDecode/Bitstream reader: Added sample to use bitstream reader, instead of FFMPEG demuxer, to get picture data. Also reverted the original sample app back to using FFMPEG demuxer only.

* * rocDecode/Bitstream reader: Renamed the new sample app.

* * rocDecode/Bitstream reader: FFMPEG dependency reduction.
 - Moved MD5 functions out of RocVideoDecoder utility class. This removed RocVideoDecoder's dependency on FFMPEG.
 - Added the new MD5 utility, which depends on FFMPEG lib. MD5 message digest generation is now performed in the MD5 utility.
 - Modified decode sampples that uses MD5 generation function.
 - Removed FFMPEG dependency from video decoder basic sample.

* * rocDecode/Bitstream reader: Added option to use bitstream reader to video decode sample and conformance test script. Added the missing destroy bitstream reader call in video decode basic sample.

* * rocDecode/Bitstream reader: Minor format change. No functional changes.

* * rocDecode/Bitstream reader: Added handling of unsupported stream file type by the bitstream reader to decode sample apps.

* * rocDecode/Bitstream reader: Fixed build errors of several samples.

* * rocDecode/Bitstream reader: Added changes based on review comments.

* * rocDecode/Bitstream reader: File name changes based on review comments.

* * rocDecode/Bitstream reader: Moved MD5 code into single header file. Added changes based on review comments.

* * rocDecode/Bitstream reader: Removed redundant path.

* * rocDecode/Bitstream reader: Changed rocDecode version to 0.10.0. Added minor changes based on review comments.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2024-12-05 09:46:24 -05:00
Rajy Rawther 52eb62fabf ffmpeg software decoder implementation (#461)
* WIP: ffmpeg based software decoder

* minor update

* WIP: FFMpeg SW decoder support

* FFMpeg decoder working version

* working version without threading

* multithreading working with FFMpeg decoder

* moved ffmpeg decoder to separate folder

* updated changelog

* minor change

* resolved review comments

* resolved review comments

---------

Co-authored-by: Lakshmi Kumar <lakshmi.kumar@amd.com>
2024-12-04 14:11:02 -05:00
Aryan Salmanpour 3dfb669f57 Add support for rocDecode APIs dispatch table (#462) 2024-11-27 16:14:30 -05:00
Kiriti Gowda 6339767b4c SLES - Updates (#454)
* SLES - Updates

* Updates

* Cleanup

* Update CHANGELOG.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

* CXX Compiler - Use AMD Clang++

* Docs - Updates

* ROCm Version - Upgraded to 6.3.0

* Readme - cleanup

* Readme - minor updates

* Readme - Fix note

---------

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>
2024-11-15 15:35:53 -05:00
Aryan Salmanpour b2149abcef Revert "Allow overriding CMAKE_CXX_COMPILER (#436)" (#440)
This reverts commit 07ecb5e7d6.
2024-10-24 13:28:50 -04:00
Jeremy Newton 07ecb5e7d6 Allow overriding CMAKE_CXX_COMPILER (#436)
Using set as-is doesn't allow the user to set their own rocm path.
This is useful for community packagers or debugging.

Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2024-10-24 11:36:14 -04:00
Aryan Salmanpour e463cbd0f2 Find the minimum supported libva version 1.16 when building rocdecode (#437)
* Find the minimum supported libva version 1.16 when building rocdecode

* Update the changelog

* Update the Error message if libva-amdgpu-dev/libva-amdgpu-devel not found

* Add missing comma
2024-10-23 13:54:23 -04:00
Jeremy Newton 859103755a Fix libva requirements for rocdecode (#435)
* Fix libva requirements for rocdecode

mesa-amdgpu-va-drivers is built with libva 2.16 (VA-API 1.16), so it
provides the entry point "__vaDriverInit_1_16". For rocdecode to use
mesa, it also needs to make sure it has a high enough requirement on
libva to be compatible with this function.

Strictly speaking, it doesn't matter what libva is used as long as it's
2.16 or newer, since libva is backwards compatible. An OR conditions is
used to favour distro packages when possible to avoid causing issues
with existing libraries built against the distro version.

For libva dev packages, we can just use libva-amdgpu-dev/el directly.

Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>

* Update to use libva-amdgpu

To reflect the package change, update the README, rocDecode-setup.py,
and the CHANEGLOG.

Putting the minimum VA-API version in the README isn't required as the
user is expected to just install the latest libva-amdgpu to match the
mesa VA-API version.

---------

Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
2024-10-22 11:41:00 -04:00
Kiriti Gowda 64078a58cb Package - dependencies updated (#416)
* Package - dependencies updated

* Changelog - new format added

* Setup - OS specific updates

* CMakeList - Cleanup

* Version Updates Fix
2024-10-07 16:20:10 -04:00
Lakshmi Kumar 4e4a18d280 change clang++ path as suggested by packaging team (#427) 2024-10-01 08:35:45 -04:00
Kiriti Gowda e095d612a1 License - Remove license from dev & test packages (#410) 2024-08-15 15:10:38 -04:00
Kiriti Gowda 1ac853e441 CTest Updates - Fix duplicates (#408)
* Test - Fix CTest

* CMakeLists - Clang Set

* Ctest - support

* Readme - Fix and updates

* Readme - minor fix

* Readme - MS template

* Install - Minor instructiion fix

* Clang - Added as default CXX compiler

* Update CHANGELOG.md

Remove unreleased
2024-08-14 17:28:52 -04:00
Lakshmi Kumar e3b3fe9e8e Test Upgrades (#395)
* adds av1 to ctest

* add av1 support for batch sample

* add test to make test also

* path update for make test

* add function for codec support check

* add changes to batch sample

* addressign review comment

* modify all apps to check codec support
2024-07-26 17:09:58 -04:00
Lakshmi Kumar d0821d303a Add versioning file for rocdecode (#393)
* add versioning file for rocdecode

* add comment for #define

* add version to rocdecde.h

---------

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
2024-07-22 12:37:30 -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
Kiriti Gowda 2014c55f11 CMakeLists - Use -D AMDGPU_TARGETS (#379)
* Sample - Updates

* CMakeList - Accept -D AMDGPU_TARGET
2024-07-09 11:03:24 -04:00
raramakr 7bf02a9606 Package - Remove package provides field from RPM and DEB package (#371)
The provides tag is required when the package provides a virtual package.
Package name along with version will be provided by default and the provides tag is not required for this.
Using the tag for providing the name, but without version was resulting in package upgrade issues.
2024-06-18 09:45:44 -07:00
Kiriti Gowda b95a3abcec Mariner - Support for package (#368) 2024-06-12 21:49:14 -04:00
Kiriti Gowda 460a49a728 CMakeLists & Setup - Updates (#363)
* CMakeLists - Remove OBSOLETES

* Setup - Updates

* Setup - Cleanup
2024-06-06 13:24:15 -04:00
Rajy Rawther 95f90982eb videodecodeRGB sample re-org for rocPyDecode (#343)
* re-org videodecodeRGB sample

* minor fix

* removed un-necessary include

* minor fix
2024-05-07 17:11:57 -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
Kiriti Gowda 2df3c13454 RHEL - Deps Fix (#334) 2024-05-02 15:47:26 -04:00
Kiriti Gowda 68d8b629d1 Packaging Updates - RPM package changes (#328)
* RPM Deps - Updates

* SLES - Handle Package name diff
2024-05-01 14:35:49 -04:00
Kiriti Gowda 25c4b9584f Docs - Cleanup & Fix (#316) 2024-04-16 15:05:17 -07:00
Kiriti Gowda 3b1d6932af LibVA Updates - Support Public Version (#315)
* LibVA public - enable

* Support for RPM based OS

* Readme Updates

* Setup - Updates

* Setup - CentOS 7 unsupported

* Jenkins - Check Direct deps
2024-04-16 15:53: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
Lakshmi Kumar e185226ae9 CMakeLists - install only required files from samples (#303)
* install only required files from samples

* update install directory
2024-04-01 15:53:15 -04:00