53 Commits

Auteur SHA1 Bericht Datum
Aryan Salmanpour 352a433781 Update Copyright year (#694)
[ROCm/rocdecode commit: b0bab07940]
2026-01-26 15:37:50 -08:00
Kiriti Gowda 4635af8cb0 Find package - rocdecode-host (#650)
* Find package - rocdecode-host

* Cleanup

---------

Co-authored-by: Kiriti <kiriti@santiago.amd.com>

[ROCm/rocdecode commit: 48171900a3]
2025-09-15 12:10:04 -07:00
Kiriti Gowda ff4d947cc6 Version File - Updates and fixes (#632)
[ROCm/rocdecode commit: e5f06d4fcc]
2025-08-15 09:21:00 -04:00
Aryan Salmanpour a480fb183b Utils - Remove the call to rocDecGetDecodeStatus after rocDecGetVideoFrame (#600)
* Utils - Remove the call to rocDecGetDecodeStatus after rocDecGetVideoFrame

* Remove other occurrences of rocDecGetDecodeStatus that are not necessary

* Update the description of the rocDecGetDecodeStatus and rocDecGetVideoFrame APIs

* Add missing including thread in avcodec_videodecoder.h for fixing the Azure build issue

[ROCm/rocdecode commit: bf4922060d]
2025-06-11 11:44:20 -04:00
Rajy Rawther 40e072f394 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

[ROCm/rocdecode commit: 3ddb12f075]
2025-06-07 13:12:57 -04:00
Aryan Salmanpour 20e919c6cf Code Clean up - remove unused API (#552)
* Code Clean up - remove unused API

* clean up

[ROCm/rocdecode commit: d80f807b1a]
2025-04-09 13:49:04 -04:00
jeffqjiangNew ae7b72631f HEVC Error resilience: Added invalid syntax detection in SPS, PPS, and slice header parsing. (#542)
* * rocDecode/HEVC Error resilience: Added invaid syntax detection in SPS, PPS, and slice header parsing.

* * rocDecode/HEVC error resilience: Minor indent change.

[ROCm/rocdecode commit: 93711b5127]
2025-03-26 08:16:36 -04:00
Lakshmi Kumar 54d6a5a6dc Version header - Bug fix required for rocal (#535)
* rocm version check for targets

* check rocm targets for gfx

* space fixes to generate version file

[ROCm/rocdecode commit: 86d5d51d09]
2025-03-18 13:24:33 -05:00
Kiriti Gowda 26a67fb210 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>

[ROCm/rocdecode commit: 6b026af151]
2025-03-17 12:38:01 -04:00
jeffqjiangNew aacd035b6d 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.

[ROCm/rocdecode commit: ab7546930f]
2025-03-13 09:29:25 -04:00
Lakshmi Kumar eda4c5d843 Code cleanup (#524)
* rocm version check for targets

* check rocm targets for gfx

* code cleanup

* code cleanup

[ROCm/rocdecode commit: bcca70908c]
2025-03-03 16:25:35 -05:00
jeffqjiangNew eb2aae5c39 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.

[ROCm/rocdecode commit: a5863bceba]
2025-02-28 18:11:10 -05:00
jeffqjiangNew c8a7b82794 VP9: Added support for video size change (scaling down) on inter frames. (#508)
* * rocDecode/VP9: Added support for video size change (scaling down) on inter frames.
 - A new reconfigure mode is added, where we keep the existing VAAPI surfaces and context, and work on the smaller images and store the images in the surfaces.

* * rocDecode/VP9 resize: Added changes based on review comments.

[ROCm/rocdecode commit: 2af7bbf4e7]
2025-02-12 17:18:09 -05:00
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
Aryan Salmanpour 1f890c442e Use a pointer for the horizontal_pitch parameter in the rocDecGetVideoFrame API (#475)
[ROCm/rocdecode commit: 91ab3b1577]
2024-12-05 19:22:07 -05:00
Aryan Salmanpour e5f513c9d6 Update rocDecode dispatch table for bit stream reader APIs (#471)
[ROCm/rocdecode commit: 37794d045f]
2024-12-05 14:40:17 -05:00
jeffqjiangNew c8a16141e4 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>

[ROCm/rocdecode commit: e62aa3e09b]
2024-12-05 09:46:24 -05:00
Rajy Rawther fb82691ef2 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>

[ROCm/rocdecode commit: 52eb62fabf]
2024-12-04 14:11:02 -05:00
Aryan Salmanpour dfa22cbbe1 Add support for rocDecode APIs dispatch table (#462)
[ROCm/rocdecode commit: 3dfb669f57]
2024-11-27 16:14:30 -05:00
Kiriti Gowda c8ff82a943 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>

[ROCm/rocdecode commit: 6339767b4c]
2024-11-15 15:35:53 -05:00
jeffqjiangNew 04c28ec306 Added initial code for VP9 support. (#442)
* * rocDecode/VP9: Initial code for VP9.
 - Added structures for VA-API.
 - Added defines for uncompressed header and parsing functions.

* * rocDecode/VP9: Added decode frame call to VA-API.

* * rocDecode/VP9: Added new sequence notification function.

* * rocDecode/VP9: Intra decode started to work.

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

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>

[ROCm/rocdecode commit: 3eb6bc2192]
2024-11-14 10:17:46 -05:00
Mátyás Aradi 291a0e6c81 Fix link (#426)
[ROCm/rocdecode commit: 8e1cb24851]
2024-11-08 11:24:38 -05:00
Rajy Rawther 6837a86bf5 Add new API rocDecParserMarkFrameForReuse() for Parser (#430)
* added new API to release video frame for decoder and parser

* removed ReleseFrame() from low level parser classes

* Removed rocDecReleaseFrame() from decoder and added in parser

* address review comments

* revert un-necessary files

* minor fix

* remove unused function

* minor formatting fix

[ROCm/rocdecode commit: 29bfe5e3bd]
2024-10-09 13:29:08 -04:00
Kiriti Gowda 07bd8d6082 Package - dependencies updated (#416)
* Package - dependencies updated

* Changelog - new format added

* Setup - OS specific updates

* CMakeList - Cleanup

* Version Updates Fix

[ROCm/rocdecode commit: 64078a58cb]
2024-10-07 16:20:10 -04:00
Lakshmi Kumar 2487a43c06 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>

[ROCm/rocdecode commit: d0821d303a]
2024-07-22 12:37:30 -04:00
jeffqjiangNew 5bdf7f6b8d AV1: Intra decode started to be up and running. (#372)
* * rocDecode/AV1: Added new sequence callback and submit decode calls.

* * rocDecode/AV1: Intra decode started to work.

* * rocDecode/AV1: Do not build PrintVaapiParams() in normal (non-debug) mode.

[ROCm/rocdecode commit: 2be11821fc]
2024-06-26 12:46:11 -04:00
Lakshmi Kumar 62007d9079 spacing clean up (#360)
[ROCm/rocdecode commit: 641044d079]
2024-05-31 21:15:47 -04:00
Lakshmi Kumar d334d7367b AV1 - VA-API structure for rocdecode (#359)
* vaapi sturctures for rocdecode

* vaapi sturctures for rocdecode

* adjust spacing - review comment

* merge conflicts

* name change for some struct

* removing empty lines

* removing empty lines

[ROCm/rocdecode commit: 751d0ccac7]
2024-05-31 17:17:52 -04:00
jeffqjiangNew 9e64945bdf Fixed several issues with cropping. (#275)
* * rocDecode: Fixed several issues with cropping.
  - Fixed the pixel start offset error on streams with non-zero top/left cropping in MD5 calculation.
  - Fixed the pixel start offset error on streams with non-zero top/left cropping, and/or with user specified cropping in YUV frame output.
  - Sorted out code which deals with cropping area specifiied by the bitstream, and cropping area specified by the user.

* * rocDecode: Additional changes after discussion.
 - Set display rect for decoder create/reconfig to displayable area or user specified ROI area.
 - Do not set target rect for decoder create/reconfig. Leave it for future use.
 - Unified naming of display rect in decoder create/reconfig structs.

* * rocDecode: Put back the extra rounding to target width/height specifiied by the coded stream, for peace of mind, based on code review.

* * rocDecode: Added the missing stream specified cropping offset to the starting pixel pointer for none-internal memory modes.

---------

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

[ROCm/rocdecode commit: e4614de461]
2024-03-11 22:35:11 -04:00
jeffqjiangNew cd37b816b6 Implemented proper slice parameter buffer submission for multiple slice streams. (#226)
* * rocDecode: Implemented proper slice parameter buffer submission for multiple slice streams.
 - We were submitting single slice parameter buffer for multiple slice streams. This works for other APIs but not for VAAPI, which requires to send slice parameter buffer once per slice.
 - At step 1, all the multi-slice structures are fixed sized (256). Will make them dynamic in the next step.
 - With this change, all 135 HEVC conformance streams now pass.

* * rocDecode: Multiple slice change step 2: make the fixed size slice info structure lists dynamic.

* * rocDecode: Minor changes in comments. No functional changes.

* *rocDecode: Changed INIT_SLICE_PARAM_LIST_NUM from 256 back to 16. 256 was set during debug process.

* * rocDecode: Add suggest changes from code review.

* * rocDecode: Moved slice_params_buf_id_ initialization to class VaapiVideoDecoder declaration, as suggested by code review.

[ROCm/rocdecode commit: 00127f16f1]
2024-02-09 15:09:49 -05:00
Aryan Salmanpour c7f7a7c0e8 rename roDecMapVideoFrame to rocDecoGetVideoFrame and some other minor code cleanups (#222)
[ROCm/rocdecode commit: 38f50a1a10]
2024-02-06 11:38:54 -05:00
jeffqjiangNew a0e7d3c29f Changed rocDecode API header variable naming to Google C++ style. (#196)
* * rocDecode: Changed rocDecode API header variable naming to Google C++ style.

* * rocDecode: Unified AVC/H264 naming to AVC. Minor naming changes on HEVC related names.

* * rocDecode: Minor comment fix based on code review.

[ROCm/rocdecode commit: cd6401750e]
2024-01-24 18:03:46 -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
Rajy Rawther 0978ce8a56 Rr/rocdec doc update (#188)
* update rocdec user guide

* minor change

* addressed review comment

[ROCm/rocdecode commit: 37e2725fec]
2024-01-18 09:00:33 -08:00
Aryan Salmanpour e723871cba Add support for rocDecGetErrorName for getting the rocDecStatus error string (#185)
* Add support for rocDecGetErrorName for getting the rocDecStatus error string

* Add description of the API

[ROCm/rocdecode commit: f7997b716d]
2024-01-17 14:00:54 -05:00
Kiriti Gowda eeffcd41c4 Header fix (#167)
[ROCm/rocdecode commit: 69fb224027]
2024-01-10 13:46:39 -08:00
kiritigowda 496740fd34 Documentation - Updates
[ROCm/rocdecode commit: cce46982a5]
2024-01-10 12:14:41 -08:00
jeffqjiangNew 4c9a35a6a8 * rocDecode: Updated Copyright message for 2024. (#160)
[ROCm/rocdecode commit: 04fe74f390]
2024-01-09 20:47:16 -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 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 e86c9487b5 Add support for the rocDecUnMapVideoFrame API (#58)
[ROCm/rocdecode commit: eb5614d250]
2023-11-13 12:54:32 -05:00
jeffqjiangNew 30c4df3af1 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.

[ROCm/rocdecode commit: 3c7f29dab4]
2023-11-10 17:15:47 -05:00
jeffqjiangNew 7db33e7837 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.

[ROCm/rocdecode commit: 8ed03b5ad0]
2023-11-09 13:52:02 -05:00
Aryan Salmanpour d44d320717 Add support for rocDecGetDecodeStatus API (#46)
[ROCm/rocdecode commit: 6ab31ce40e]
2023-11-09 08:47:58 -05:00
jeffqjiangNew 39f7496dd3 * rocDecode/HEVC: Updated RocdecPicParams structure to align with VA-API. (#40)
[ROCm/rocdecode commit: 2f64a10c5a]
2023-11-06 22:06:03 -05:00
Aryan Salmanpour b6557252a0 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

[ROCm/rocdecode commit: 32f854c159]
2023-11-01 09:22:46 -04:00
Aryan Salmanpour 956857c0ae Add support for the rocDecGetDecoderCaps API (#21)
* Add support for the rocDecGetDecoderCaps API

* move the RocDecVcnCodecSpec class to a new header file

[ROCm/rocdecode commit: bf830a2678]
2023-10-24 08:40:58 -04:00
Rajy Rawther db6dbf7076 Rr/roc video decode class (#20)
* WIP: class implementation

* add more definitions

* rocvideodecode implementation

* formatting fixes

* address review comments

[ROCm/rocdecode commit: d0e6743872]
2023-10-23 12:16:45 -04:00
Kiriti Gowda d999d85964 Package & Tests - ROCm Release Updates (#11)
* rocDecode Updates

* Doxygen - Fix

* CMakeLists - Fix

* Jenkins - Files

* Samples - Fix

* CTest - Fix

* Changelog - Added

* Fix - Review comments

[ROCm/rocdecode commit: aa72eb1996]
2023-10-12 17:08:12 -04:00
Rajy Rawther dcc6ee9f2a parser high level class implementation (#10)
* rocDecode api defintions added for decoder and parser

* addressed review comments and changed struct names to CamelCase

* minot reformatting

* parser high level class implementation

[ROCm/rocdecode commit: 0a991c1776]
2023-09-27 15:14:28 -04:00