Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/intel/vaapi-fits
https://github.com/intel/vaapi-fits
media swrepo test-automation test-framework validation-software
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/intel/vaapi-fits
- Owner: intel
- License: bsd-3-clause
- Created: 2019-01-08T21:24:18.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-04-12T19:17:32.000Z (9 months ago)
- Last Synced: 2024-04-13T22:57:39.581Z (9 months ago)
- Topics: media, swrepo, test-automation, test-framework, validation-software
- Language: Python
- Homepage:
- Size: 1.62 MB
- Stars: 30
- Watchers: 12
- Forks: 34
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
[![Coverity Scan Build Status](https://scan.coverity.com/projects/21422/badge.svg)](https://scan.coverity.com/projects/intel-vaapi-fits)
# VA-API Functional Integration Test Suite
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.
## License
See [LICENSE.md](LICENSE.md) file
## Overview
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.
## Cloning the Repository
This project uses Git Large File Storage (Git LFS) to track the [assets.tbz2](assets.tbz2) file. Therefore, you will need to install [Git LFS](https://help.github.com/articles/versioning-large-files/) 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](https://help.github.com/articles/installing-git-large-file-storage/#platform-linux)After Git LFS is installed, you can clone and interact with this repository using the same standard Git workflow as usual.
## Requirements
* Install from requirements.txt
```sudo pip3 install -r requirements.txt```
## Examples
* 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```
## Some Useful Options
#### _run_ sub-command
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## Contributing
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):
```
: Change summary (limit to 50 characters)More detailed explanation of your changes: Why and how.
Wrap it to 72 characters.Signed-off-by:
```See [here](http://chris.beams.io/posts/git-commit/) for some more good advice about writing commit messages.
## Reporting a Security Issue:
Please visit http://intel.com/security for security issue report.