2
0
Gráfico de cometimentos

81 Cometimentos

Autor(a) SHA1 Mensagem Data
jeffqjiangNew f963a7c3a0 Added the new GPU VA context class to handle VA connections to GPU. Removed the hard coded HW decoder capability info. (#415)
* * rocDecode: Removed the hard coded HW decoder capability info.
 - We now probe HW decoder capabilities through VA-API from the driver.

* * rocDecode: Added number of decoder prob and a few missing tear down calls.

* * rocDecode/HW cap change: Added a new singleton class, GpuVaContext, to handle HIP and VA initialization and VA attributes probe for both HW capability check and decoder initialization.

* * rocDecode/HW caps: Removed GpuVaContext class out of vaapi_videodecoder.h and into a new file. Removed debug logs. Removed roc_decoder_caps.h.

* * rocDecode/HW caps: Fixed a crash issue with multi-thread cases. Called to vaInitialize() and vaTerminte() should be paired.

* * rocDecode/HW caps: Added multi-GPU support.

* * rocDecode/HW cap: Moved GpuVaContext class implementation back to VAAPI layer.

* * rocDecode/HW cap: Added changed based on review comments.

* * rocDecode/HW cap: Added changes based on review comments.

* * rocDecode/HW cap: GPU VA context class name change based on review comment.

---------

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

[ROCm/rocdecode commit: ef06f12dfa]
2025-01-10 14:44:06 -05:00
Fiona Gladwin 65edd2198d Support to obtain dts from demuxer and seek (#479)
* Add support to obtain dts from demuxer

Add changes in seek to store the required dst and obtained dts in the context

* Minor changes

[ROCm/rocdecode commit: d45cd48001]
2025-01-08 19:51:13 -05:00
Rajy Rawther 75add792ab fix for build errors with FFMpeg version 6 (#489)
* fix for build errors with FFMpeg version 6

* set initialize for reconfigure

[ROCm/rocdecode commit: f02751900d]
2025-01-08 13:26:08 -08: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
Rajy Rawther 8136f59dc0 Rr/ffmpeg sw decoder (#480)
* 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

* fixed a bug in hipMemcpy for copying decoded output to GPU

* added support for multithreading in FFMpeg decoder

* addressed review comments

* fixed format changes requested

---------

Co-authored-by: Lakshmi Kumar <lakshmi.kumar@amd.com>

[ROCm/rocdecode commit: 5365ceabec]
2024-12-20 16:50:15 -05:00
Rajy Rawther 4b66519cd3 Fixed a bug in hostToDevice copy (#472)
* 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

* fixed a bug in hipMemcpy for copying decoded output to GPU

---------

Co-authored-by: Lakshmi Kumar <lakshmi.kumar@amd.com>
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: 0cf22e1cec]
2024-12-05 16:45:04 -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
jeffqjiangNew 2b84f90795 * rocDecode/Perf: Improved the accuracy of decode performance measurement for the performance sample. We need to wait for the decode completion of the last picture before sampling the end time. (#425)
[ROCm/rocdecode commit: 7ef4e29262]
2024-09-25 21:27:49 -04:00
jeffqjiangNew 29cfd4a541 Added real decode speed report to set it apart from the current output speed report in sample apps (#409)
* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode/Sample script: Added missing changes for sample_mode 0 case.

[ROCm/rocdecode commit: 6253248188]
2024-08-20 17:43:33 -04:00
Lakshmi Kumar b9c293a754 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

[ROCm/rocdecode commit: e3b3fe9e8e]
2024-07-26 17:09:58 -04:00
Rajy Rawther 4caf46cab4 Rr/video dec mem sample update (#390)
* remove hardcoded buffer size requirement

* minor change

[ROCm/rocdecode commit: 84c1dc9d03]
2024-07-22 08:48:29 -04:00
Rajy Rawther c3f2e95f92 VideoToSequence sample (#373)
* videoToSequence sample initial commit

* add frame_num calculation when seeking

* update README

* addressed review comments

* added FlushAndReconfigure() to flush out frames with seek

[ROCm/rocdecode commit: fe5f63428c]
2024-07-22 08:42:58 -04:00
Lakshmi Kumar 19f5eef138 Bug Fix - crop needs to be set using target width and height (#370)
* bug fix for crop

* change reconfig funciton for chroma_height_

* review commments

[ROCm/rocdecode commit: fc266e43cd]
2024-06-14 14:00:15 -07:00
Lakshmi Kumar 0ef36fec5e Add session overhead functions & modify perf app (#366)
* add session overhead funcitons & modify perf app

* remove class:: for function calls

* add session overhead funcitons & modify perf app

* remove class:: for function calls

* review comments

* fix comments

* duration to double

* update perf sample for thread_id for overhead

* remove debug statements

* revoew comments

* return value chnage to double

* remove session ID functions

* check session id validity

[ROCm/rocdecode commit: 48b56de77a]
2024-06-11 10:38:19 -04:00
jeffqjiangNew 3230cca447 rocDecode: Added decode buffer pool implementation for AVC and HEVC. (#355)
* * rocDecode: Initial check in for decode buffer pool.

* * rocDecode: All 135 streams pass.

* * rocDecode: Fixed a build error in debug mode.

* * rocDecode/HEVC: Removed two workaround in HEVC DPB management, after decode buffer pool implementa
tion.
 - WR 1: Conditional bumping (when max_num_reorder_pics > 0) to avoid synchronous job submission in
C.5.2.3.
 - WR 2: Add two more buffers in DPB to avoid buffer over-writing.

* * rocDecode/HEVC: Added display delay feature.

* * rocDecode/HEVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.

* * rocDecode/HEVC: Removed redundent code.

* * rocDecode/AVC: Added decode buffer pool implementation for AVC.

* * rocDecode: Added a few changes.
 - Added display delay feature to AVC.
 - Removed a workaround for AVC: AVC_MAX_DPB_FRAMES was increased to 18. Now it is back to 16.
 - Removed a workaround for AVC: increased DPB buffer size by 2. Now it is back to normal.
 - Code format changes for HEVC.

* * rocDecode/AVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.

* * rocDecode: Merged OutputDecodedPictures() method to upper class RocVideoParser.

* * rocDecode: Code cleanup. No functional changes.

* * rocDecode: Made decode buffer pool size adaptive.
 - Removed the hard coded decode buffer pool size set in the decoder.
 - Exposed the display delay parameter from RocVideoDecoder class to the user.
 - Now the decoder buffer pool size is determined from the DPB buffer size and display delay parameter.

* * rocDecode: Several changes based on code review.
 - Merged decode and display use status into one parameter.
 - Removed the surface index from DecodeFrameBuffer, which is now implicitly referred by the array index.
 - Changed a function name for better clarity.

* * rocDecode: Added a comment.

[ROCm/rocdecode commit: 61c8661b9c]
2024-05-31 13:14:02 -04:00
Lakshmi Kumar e18f8a9d39 rearrange demux (#353)
[ROCm/rocdecode commit: a086e4a3fa]
2024-05-14 13:07:47 -04:00
Rajy Rawther 5105e2d7b3 Added a new function to get RgbStride (#352)
* re-org videodecodeRGB sample

* minor fix

* removed un-necessary include

* minor fix

* added GetRgbStride utility function for RGB stride

* fix for review comments

---------

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

[ROCm/rocdecode commit: dd30db9f51]
2024-05-13 12:39:38 -04:00
Lakshmi Kumar 8d9785072d fixes seek bug (#351)
[ROCm/rocdecode commit: bbe325d39b]
2024-05-13 09:01:06 -04:00
Lakshmi Kumar b0882a121e Seek - Bug fixes for cases when no dts in the input stream (#344)
* adds seek to videodecode and seek bug fixes

* fixes both frames & timestamp with prev_key_frame option

* switch to exact key frame and bug fix

* fix decoded_frame_number from seek

* fix out_frame_duration

* clean up + exact fram fix

* bug fixes for dts while Seeking

* seek dts bug fix

---------

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

[ROCm/rocdecode commit: a1b20be3fc]
2024-05-08 13:09:22 -04:00
Rajy Rawther 4de84d0b27 videodecodeRGB sample re-org for rocPyDecode (#343)
* re-org videodecodeRGB sample

* minor fix

* removed un-necessary include

* minor fix

[ROCm/rocdecode commit: 95f90982eb]
2024-05-07 17:11:57 -04:00
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 97be0bb3ca Seek - Bug Fixes + Sample Update (#327)
* adds seek to videodecode and seek bug fixes

* fixes both frames & timestamp with prev_key_frame option

* switch to exact key frame and bug fix

* fix decoded_frame_number from seek

* fix out_frame_duration

* clean up + exact fram fix

[ROCm/rocdecode commit: 2d50d685f7]
2024-05-01 17:03:27 -04:00
Rajy Rawther 7aaef29eb7 videodemuxer: added seek functionality (#311)
* demux add seek functionality

* addressed review comments

[ROCm/rocdecode commit: 77e4c3150a]
2024-04-11 08:21:50 -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
Kiriti Gowda cabcb78825 FFMPEG - Multi-version support (#270)
* FFMPEG 5.X - Support

* FFMPEG 5.X - Support

* FFMPEG - Multiversion support

* FFMPEG - Support FFMPEG AVCODEC > 58.134.X

[ROCm/rocdecode commit: ca067ae6ec]
2024-03-05 08:34:05 -05:00
Aryan Salmanpour 65d64404a7 Add support to demuxer to get additional info from the stream (#271)
* Add support to demuxer to get additional info from the stream

* Add support to get frame rate

* avoid a potential division by zero

[ROCm/rocdecode commit: 983571c58f]
2024-02-29 11:05:55 -05:00
Aryan Salmanpour 6f80f7e81c Revert "FFMPEG 5.X - Support (#268)" (#269)
This reverts commit 11abd055ed.

[ROCm/rocdecode commit: 6317b9f22b]
2024-02-28 14:31:07 -05:00
Kiriti Gowda 11abd055ed FFMPEG 5.X - Support (#268)
[ROCm/rocdecode commit: 4f2bf945a9]
2024-02-28 12:37:33 -05:00
Rajy Rawther 972b7af079 fix copy buffer for memory modes 1 and 2 (#238)
[ROCm/rocdecode commit: 79184aeacc]
2024-02-12 14:32:50 -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
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
Aryan Salmanpour 18f165e424 Fix the performance issue introduced after PR#192 (#220)
* Fix the performance issue introduced after PR#192

* Destroy the current interop memories before reconfiguration

* initialize the interop to 0 after unmapping a surface

* code clean up

* check the mapped device mem/ext mem to be valid before destrying them

* code cleanup - add some comments

* make changes based on the reviewer comments

[ROCm/rocdecode commit: 929123abff]
2024-02-05 17:12:39 -05:00
Lakshmi Kumar 96b71ddd2c Samples - Clean up and bug fixes (#203)
* clean up samples

* fixes error seen in videoDecodeMem app with big files

[ROCm/rocdecode commit: 43481ce36b]
2024-01-29 12:58:00 -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
Lakshmi Kumar 55213cfb35 fixes missing variable (#193)
[ROCm/rocdecode commit: 6ae9ba8be2]
2024-01-22 15:18:02 -05:00
Lakshmi Kumar dbd9d466cc fixes mesa warning/error (#192)
* fixes mesa warning/error

* merge conflicts

[ROCm/rocdecode commit: 1393311656]
2024-01-22 12:00:06 -08: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
Aryan Salmanpour 5cd81b0a5b Remove unnecessary device id check (#180)
[ROCm/rocdecode commit: b188989f3f]
2024-01-17 10:27:06 -05:00
jeffqjiangNew 40408ce2b3 Added initial AVC parser. (#176)
* * rocDecode/AVC: Added initial AVC parser.
 - Added AVC SPS, PPS and slice header parsing functions.
 - Merged common parsing code from AVC and HEVC parsers to their super class.

* * rocDecode/AVC: Formating changes. No functional changes.

[ROCm/rocdecode commit: 395a1249c1]
2024-01-16 20:57:40 -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
Aryan Salmanpour af09e155f8 Use a dedicated hip stream for launching hip kernels for color space conversion (#152)
[ROCm/rocdecode commit: dd738aef48]
2024-01-05 12:55:46 -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