* * 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.
* * 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: Experiment per decode instance va display.
* * rocDecode/Perf: Removed comments.
* * rocDecode/VA context: Minor changes based on review comment.
* * 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>
- DPB buffer size was set to NUM_REF_FRAMES(8) which can not handle streams with 8 reference frames. We increase DPB size from 8 to 10 (same strategy as AV1) to be able to handle these streams.
- Fixed a condition check in loop filter frame init process.
- Removed the redundant conversion in interpolation filter assignment in VAAPI. The conversion has been done already when we parse the interpolation filter syntax.
* * 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>
* * rocDecode/VP9: Inter decode is up and running.
- Added reference list setup for VA-API.
- Added update reference frame process (8.10).
- Added set up past independence function.
- Added DPB and decode pool management.
- Added display management.
- Added super frame detection and parsing.
- Added VA-API parameter logging functions for debugging purposes.
* * rocDecode/VP9: Minor change: removed an extra newline.
* * rocDecode/VP9: Removed todo comments. No functional changes.
* * rocDecode/VP9: Minor changes based on review comments.
* * rocDecode/VP9: Minor changes based on review comment.
* * 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>
* fix for while loop hang
* fix for while loop hang
* add more data validation code in parser
* minor change
* addressed review comments
* fix conformance failures with new code
* added more checks
* 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
* * 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.
* * rocDecode/AV1: Fixed an issue with multiple tile group OBUs per picture cases.
- We now use the single base pointer for all tiles in all tile group OBUs and submit them once per picture.
* * rocDecode/AV1: Fixed a typo.
* * rocDecode: Added the missing pts to decode return info for decoded pictures.
* * rocDecode: Added the missing pts to decode return info for decoded pictures.
* * rocDecode/AV1: Enabled AV1 decode by default.
* * rocDecode/AV1: Added changes suggested in code review.
- Bumped up rocDecode version to 0.7.0.
- Added AV1 support statement in readme file.
* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.
* * rocDecode/AV1: Fixed build error on RHEL8 due to older VAAPI version.
* * rocDecode/AV1: Set VA profile for AV1 for older VAAPI versions where it is not defined.
* * rocDecode/AV1: Made rocDeocde AV1 built on VAAPI versions below 1.6.0 runnable with newer versions, to be able to test under RHEL8.
- Added film grain parameter saving and loading procedures.
- Added buffer management for film grain synthesis output.
- Fixed the corruption issue with 10-bit film grain streams. We need to see surface attibutes based on pixel format when creating VAAPI surfaces.
- Added missing global motion, loop filter and segmentation parameter loading in load reference frame procedure.
- Fixed an issue with one tile streams.
- Fixed an issue with un-initialized frame header structure after frame decode.
- Fixed a bug with decode buffer status update.
* * rocDecode/AV1: Added a few changes to enable general testing (non-film-grain).
- Added show existing frame support.
- Added load_previous() function.
- Added more operations to reference frame update process.
- Added reference frame loading process.
- Added decode frame wrapup process.
- Added DPB recycling.
- Added DPB content logging funcion for debugging purposes.
* * rocDecode/AV1: Removed a line which was added accidentally in the previous commit.
- Added initial support for DPB and decode/display buffer management.
- Added initial display support.
- Added reference frame set up.
- Fixed an issue with cdef_y_sec_strength/cdef_uv_sec_strength parsing. We should leave the conditional increment to VA-API driver or below due to VA-API formatting.
* * 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.