The VA-API Functional Integration Test Suite is a configurable test suite for VA-API-based media software/middleware. It is written in Python and currently provides tests for VA-API hardware accelerated encode, decode and vpp video pipelines for gstreamer and ffmpeg. It can be easily extended to support additional VA-API-based software/middleware. The tests execute the video pipelines and validate their outputs using common image and video metrics such as checksum, SSIM and PSNR.
See LICENSE.md file
A vaapi-fits bootstrap script is provided at the top-level directory. By default, it loads a test config (spec) file from config/default
and a baseline (references) file from baseline/default
. These default files provide a minimal set of example test cases and can be used as a reference guide to create your own custom config and baseline files.
To have vaapi-fits load a custom config file, you can use the VAAPI_FITS_CONFIG_FILE
environment variable. To use a custom baseline file, use --baseline-file
command-line option.
This project uses Git Large File Storage (Git LFS) to track the assets.tbz2 file. Therefore, you will need to install Git LFS before cloning this repository to your local system.
distro | command |
---|---|
Fedora | sudo dnf install git-lfs (NOTE: may not be available on older versions) |
Ubuntu | sudo apt install git-lfs && git lfs install (NOTE: may not be available on older versions) |
Other | please follow the instructions here |
After Git LFS is installed, you can clone and interact with this repository using the same standard Git workflow as usual.
- Install from requirements.txt
sudo pip3 install -r requirements.txt
-
Run test cases for SKL platform
vaapi-fits run test --platform SKL
-
Run only gst-vaapi test cases on iHD driver for KBL platform
LIBVA_DRIVER_NAME=iHD GST_VAAPI_ALL_DRIVERS=1 vaapi-fits run test/gst-vaapi --platform KBL
option | description |
---|---|
--platform PLATFORM |
This flag is REQUIRED. Loads the capabilities for PLATFORM to determine which tests can execute (see lib/caps/ directory for supported platforms) |
-v |
Make console more verbose (can be specified multiple times) |
--artifact-retention NUM |
Retention policy for test artifacts (e.g. encoded or decoded output files) 0 = Keep None; 1 = Keep Failed; 2 = Keep All |
--parallel-metrics |
SSIM and PSNR calculations will be processed in parallel mode |
--parallel NUM |
Run test cases in parallel using NUM worker processes |
--call-timeout SECONDS |
The maximum amount of time that any execution of external programs (e.g. ffmpeg, gst-launch-1.0, etc.) is allowed before being terminated/killed |
-l DIR |
Specify root directory to store logs |
Patches should be submitted via GitHub pull-requests.
Patches should comply with the following format (note: summary and body must be separated by a blank line):
<component>: Change summary (limit to 50 characters)
More detailed explanation of your changes: Why and how.
Wrap it to 72 characters.
Signed-off-by: <contributor@foo.com>
See here for some more good advice about writing commit messages.
Please visit http://intel.com/security for security issue report.