Commit Graph

27 Commits

Author SHA1 Message Date
Pavel Tcherniaev a9a75f088d added md5 checksum with changes that Aryan and Rajy requested (#333)
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: 12fa766973]
2024-05-02 08:49:46 -04:00
Lakshmi Kumar 2fa48d1f1d move getEnvVar function to common (#299)
[ROCm/rocdecode commit: d5b5a31881]
2024-03-26 19:07:13 -04:00
Rajy Rawther 5ac584fad5 rocDecode resize sample implementation (#285)
* WIP: resize kernels

* hipified kernels for scaling from cuda

* updated videodecodeRGB sample for scaling

* added stream parameter to kernels

* add scale kernels using tex2d and NN

* enable tex2D kernels

* add NN resize kernels

* fixed scaling kernels

* fixed tex2D scaling kernel for UV scaling

* minor formatting

* address review comments

---------

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

[ROCm/rocdecode commit: 39e274d02d]
2024-03-18 08:32:19 -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
Lakshmi Kumar 9b71383de8 Samples - Multi Threaded Multi FIles (#255)
* adding new sample for decoding mulitple files on multiple threads

* threads work ; no decoding yet

* working version

* code clean up

* review comments

* removing spaces

* review comments

* fps cal + name changes for files

* code clean up

* update readme

* update readme

* remove spaces

* change to lambda functions

* changes for using reconfig

* adding dumping of yuv frames + review comments

* review comments

* remove extra lines/spaces

* adding struct for decoder info

* make separate decoders for 8 & 10bit

* code clean up

* addign reset for Saving frames

* review comments

* fixes dump issue for new file

* cmake update for threads

* support for avc

* name change for sample

* cmake soource name change

* readme update

* fixing typo in readme

---------

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

[ROCm/rocdecode commit: ce3ebadaab]
2024-03-07 20:29:14 -05:00
Aryan Salmanpour 881d06a244 Enhance logging error in rocDecode library - let the upper level class prints the correct error code string instead of integer code from lower levels (#223)
[ROCm/rocdecode commit: 15526253c7]
2024-02-06 13:35:41 -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
Rajy Rawther 9afce4a03a fix for hipOutOfMem bug when decoding large videos (#189)
* fix for issue 441908

[ROCm/rocdecode commit: 51ecd8fccf]
2024-01-19 09:46:02 -08:00
Lakshmi Kumar a186a42593 Adding support for reading Environmental variable for samples (#186)
* check if env var set and choose device

* clean up for env var

* app modification

* move getEnvVar function to header

* fork example

* spacing adjust

* review comments

* use hipGetErrorName to throw errors

[ROCm/rocdecode commit: 8ec38d2d24]
2024-01-17 22:57:31 -05: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
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
jeffqjiangNew 8c8904761d Decoder reconfigure fixes. (#157)
* * rocDecode/HEVC: Fixed a couple of issues with reconfiguration of decoder when video size is changed.
  - Picture width and height variables were interchangeably used to represent coded picture size and display size, resulting reconfiguration errors. Now we use different variables to represent coded and display sizes.
  - Fixed a file overwriting issue in video size change case, where the display size can remain the same when coded size changes with specific cropping offsets.

* * rocDecode/HEVC: Added some fixes to decoder reconfiguration.
  - Added support for MD5 calculation in reconfigure flush callback. This fixed MD5 check failure on conformance streams with size changes.
  - Fixed total decoded frame number report with reconfigure when file dump or MD5 is not enabled. We need to call flush with reconfigure unconditionally (but with different actions).
  - Added the missing reconfigure flush when coded size is not changed but display size is changed.

* * rocDecode/HEVC: Corrected an error in GetDecodedWidth() method. Should use coded_width_, instead of disp_width_.

[ROCm/rocdecode commit: ccd813a2da]
2024-01-09 10:51:30 -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
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
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
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 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
Aryan Salmanpour 049100d761 D not fuse - zwhen runnnin gthesmake test. Don't force b_force_latency ofr Perf/Fork sample (#85)
[ROCm/rocdecode commit: 8898af78a6]
2023-11-27 12:33:28 -05:00
Aryan Salmanpour 0a166ff271 code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change (#65)
* code cleanup - use google style for videodecode sample and RocVideoDecoder class - no functional change

* rename SaveSurfToFile to SaveFrameToFile

[ROCm/rocdecode commit: 851c537904]
2023-11-15 15:49:16 -05:00
Rajy Rawther c15be83df5 Rr/fix output surface dims (#64)
* fix output surface dimensions

* fix bug

[ROCm/rocdecode commit: a4652d6a53]
2023-11-15 13:46:37 -05:00
Rajy Rawther 4c7210745f Rr/add low latency (#59)
* added picture_index associated with frame and fixed bug

* added option to force low_latency display

* add force_zero_latency option for videodecode sample

[ROCm/rocdecode commit: d163eb1764]
2023-11-13 13:53:19 -05:00
Rajy Rawther 97c86ddac2 added picture_index associated with frame and fixed bug (#56)
[ROCm/rocdecode commit: ddded3a6d2]
2023-11-13 12:22:22 -05:00
Rajy Rawther 59c03a8df3 fix exception handling to gracefully exit (#49)
* fix exception handling to gracefully exit

* addressed review comments

[ROCm/rocdecode commit: 55ebf353cc]
2023-11-10 15:44:40 -05:00
Rajy Rawther 691521af5a roc_video_decode class update (#29)
* WIP: class implementation

* add more definitions

* rocvideodecode implementation

* formatting fixes

* address review comments

* rocvideodecode class update

* videodec sample app-enable all apis

[ROCm/rocdecode commit: 89a278bd1b]
2023-11-01 21:16:02 -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