* set min: number of decoded surfaces to non-zero value for ffmpeg based decoding
* added host decoding option to videodecode perf app
* fix GetOutputSurfaceInfo() for FFMpeg
* updated chagelog
* added host decoding option to videodecode perf app
* fix GetOutputSurfaceInfo() for FFMpeg
* updated chagelog
* removed GPU device info printing for HOST backend
* fix for review comment
* * 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.
* 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>
- Coded video size change was used as one of conditions to create a new file when dumping decode output. When a stream has coded video size change but the display size does not change, there is no need to dump the decoded frames into a new file.
- Now we replace the coded size check with display size check to avoid unnecessary new dump file creation.
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>
* 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
* 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
* * FFMPEG SW decode: Replaced the assert against 0 display width with an error check, to avoid abortion in a query call.
* * FFMPEG SW decode: Correction to the previous editing error.
---------
Co-authored-by: essamROCm <77812857+essamROCm@users.noreply.github.com>
* * 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.
* * 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.
* Introduce required frame pts in Video demuxer
* Revert "Support to obtain dts from demuxer and seek (#479)"
This reverts commit d45cd48001.
---------
Co-authored-by: fgladwin <fgladwin@amd.com>
* *rocDecode/Optimization: Reduced decode session start latency for certain output surface memory types.
* * rocDecode/Optimization: Video decode RGB sample creates itsown HIP
stream.
* * rocDecode/Optimization: Created separate HIP stream in each thread in
video decode RGB sample.
* * rocDecode/Optimization: Addressed the lower FPS report in RGB sample:
move HIP stream creation out of FPS calculation scope.
* * rocDecode/Optimize: Removed comments.
* * 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.
* * 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>
* 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>
* 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>
* * 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>
* 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>
* * 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.
* 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
* * 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.
* 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