# All the capabilities installed by autotest-capability are supposed to be
# list up in this file. Otherwise, exception will be raised when parsing an
# unknown capability.
# Please refer to README.md for more details.

# HW decoding
## H264
## We mark a device with hw_dec_h264_1080_30 capability if it supports
## HW decoding for 1080p@30fps h264 formatted videos. Same for vp8 and vp9.
- hw_dec_h264_1080_30
- hw_dec_h264_1080_60
- hw_dec_h264_2160_30
- hw_dec_h264_2160_60

## VP8
- hw_dec_vp8_1080_30
- hw_dec_vp8_1080_60
- hw_dec_vp8_2160_30
- hw_dec_vp8_2160_60

## VP9
- hw_dec_vp9_1080_30
- hw_dec_vp9_1080_60
- hw_dec_vp9_2160_30
- hw_dec_vp9_2160_60

## VP9-2
- hw_dec_vp9-2_1080_30
- hw_dec_vp9-2_1080_60
- hw_dec_vp9-2_2160_30
- hw_dec_vp9-2_2160_60


## JPEG
## hw_dec_jpeg is marked if a device supports JPEG HW decoding.
- hw_dec_jpeg


# HW encoding
## H264
## We mark a device with hw_enc_h264_1080_30 capability if it supports
## HW encoding for 1080p@30fps h264 formatted videos. Same for vp8 and vp9.
## We mark a device with hw_enc_h264_2160_30 capability if it supports
## HW h264 encoding for 2160p but may not guarantee 30fps. Same for vp8 and vp9.
- hw_enc_h264_1080_30
- hw_enc_h264_2160_30

## VP8
- hw_enc_vp8_1080_30
- hw_enc_vp8_2160_30

## VP9
- hw_enc_vp9_1080_30
- hw_enc_vp9_2160_30

## JPEG
## hw_enc_jpeg is marked if a device supports JPEG HW encoding.
- hw_enc_jpeg


# Camera

## USB camera
## builtin_usb_camera is marked if a device equips a built-in USB camera.
## When this label is marked, builtin_camera and builtin_or_vivid_camera must
## be marked as well.
- builtin_usb_camera

## MIPI camera
## builtin_mipi_camera is marked if a device equips a built-in MIPI camera.
## When this label is marked, builtin_camera and builtin_or_vivid_camera must
## be marked as well.
- builtin_mipi_camera

## Vivid
## vivid_camera is marked if vivid is available on the board.
## Vivid is a virtual video device and used for tests on VM boards.
## When this label is marked, builtin_or_vivid_camera must be marked as well.
- vivid_camera

# Additional labels
## Since Tast doesn't support "or" operation over autotest-capability labels,
## we define addional labels which mean conjunctions of above labels.

## builtin_camera is marked if a device equips a built-in USB camera or a
## built-in MIPI camera.
## i.e., "builtin_usb_camera || builtin_mipi_camera"
- builtin_camera

## builtin_or_vivid_camera is marked if at least one of a built-in USB camera, a
## built-in MIPI camera, and vivid is available.
## i.e., "builtin_usb_camera || builtin_mipi_camera || vivid_camera"
- builtin_or_vivid_camera
