* * 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>
* initial commit of changes to the installation and landing pages
* deleted original install; fixed the toc; fixed typos
* fixed some wording issues; fixed some formatting issues
* adding back install.rst to try to fix the conflict
---------
Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.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
The code is full of ERROR_CHECK(os.system("some shell commands")).
Unfortunately the return value from os.system is a 16 bit value with the return code in the upper 8 bits and a number of flags related to the traps in the lower 8 bits. The existing code passes this 16 bit value to the os.exit call, which just uses the bottom 8 bits. Unless the child process is killed by a signal these 8 bits will be zero, which is taken as "success", rather than passing on the exit status of the child process.
So even something as simple as
ERROR_CHECK(os.system("false"))
will report a status of 256 in the print statement but will call sys.exit() with a value of 0 in the lower 8 bits.
This change folds the top and bottom halves of the 16 bit value into an 8 bit value. This will be non-zero, so a shell script running rocDecode-setup.py will know something has failed an ERROR_CHECK, rather than the current situation where it thinks things are correct.
Using set as-is doesn't allow the user to set their own rocm path.
This is useful for community packagers or debugging.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
* Find the minimum supported libva version 1.16 when building rocdecode
* Update the changelog
* Update the Error message if libva-amdgpu-dev/libva-amdgpu-devel not found
* Add missing comma
* Fix libva requirements for rocdecode
mesa-amdgpu-va-drivers is built with libva 2.16 (VA-API 1.16), so it
provides the entry point "__vaDriverInit_1_16". For rocdecode to use
mesa, it also needs to make sure it has a high enough requirement on
libva to be compatible with this function.
Strictly speaking, it doesn't matter what libva is used as long as it's
2.16 or newer, since libva is backwards compatible. An OR conditions is
used to favour distro packages when possible to avoid causing issues
with existing libraries built against the distro version.
For libva dev packages, we can just use libva-amdgpu-dev/el directly.
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
* Update to use libva-amdgpu
To reflect the package change, update the README, rocDecode-setup.py,
and the CHANEGLOG.
Putting the minimum VA-API version in the README isn't required as the
user is expected to just install the latest libva-amdgpu to match the
mesa VA-API version.
---------
Signed-off-by: Jeremy Newton <Jeremy.Newton@amd.com>
* 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: Fixed potential incorrect conversion of MD5 string to integers.
* * rocDecode: Changed a string name.
* * rocDecode: Simplified the MD5 string compare code.
* * rocDecode: Added minor changed based on review comments.
* * rocDecode: Minor changes.
* * rocDecode/Sample script: Added units to Bit rate field in csv output.
* * 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/Perf sample: Added decoded frame number and display delay options to video decode performance sample. Also changed default thread number from 4 to 1.
* * rocDecode: Added max number of decoded frames option to decode sample script. This is useful to do partial decoding test on long streams.
* * rocDecode: Updated README.md.
* * rocDecode: Minor correction.
* * 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.
* 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: 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.