* 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]
* 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]
* * 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]
* * 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]
* * 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]
* 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]
* 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]
* * 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]
* * 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]
* * 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]
* * 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]
* * 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]
* clean up - use google style guide for the RocDecoder class
* make other files/classes to follow the google style guides
[ROCm/rocdecode commit: 48474fdad9]
* * 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]
* * 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]
* 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]
* 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]
* rocDecode api defintions added for decoder and parser
* addressed review comments and changed struct names to CamelCase
* minot reformatting
[ROCm/rocdecode commit: 4ea67e279d]