# 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
## We mark a device with hw_dec_av1_1080_30 capability if it supports
## HW decoding for 1080p@30fps av1 formatted videos. _Xbpp is an _optional_
## suffix that may or may not be there. If it's there, then it restricts the
## previous codec+resolution+frame_rate to such bit depth. If it's not there,
## the typical bit depth of the codec is supported, for example, 8 bits for
## h264 and vp9 and 10bits for vp9-2.

## H264
- 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

## AV1 (Profile Main)
- hw_dec_av1_1080_30
- hw_dec_av1_1080_60
- hw_dec_av1_2160_30
- hw_dec_av1_2160_60
- hw_dec_av1_1080_30_10bpp
- hw_dec_av1_1080_60_10bpp
- hw_dec_av1_2160_30_10bpp
- hw_dec_av1_2160_60_10bpp

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


# HW encoding
## Not all HW encoders support odd dimension encoding (e.g. trogdor).
## Those that do are marked with hw_enc_*_odd_dimension.
## 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
## Add hw_enc_h264_odd_dimension when video.EncodeAccel has a test
## exercising odd-dimension encoding.

## VP8
- hw_enc_vp8_1080_30
- hw_enc_vp8_2160_30
- hw_enc_vp8_odd_dimension

## VP9
- hw_enc_vp9_1080_30
- hw_enc_vp9_2160_30
- hw_enc_vp9_odd_dimension

## 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
