# 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

## HEVC (Profile Main)
- hw_dec_hevc_1080_30
- hw_dec_hevc_1080_60
- hw_dec_hevc_2160_30
- hw_dec_hevc_2160_60
- hw_dec_hevc_1080_30_10bpp
- hw_dec_hevc_1080_60_10bpp
- hw_dec_hevc_2160_30_10bpp
- hw_dec_hevc_2160_60_10bpp

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

# HW protected decoding
## H264 for CENCv1/3 with AES-CBC/AES-CTR
- hw_video_prot_cencv1_h264_cbc
- hw_video_prot_cencv1_h264_ctr
- hw_video_prot_cencv3_h264_cbc
- hw_video_prot_cencv3_h264_ctr

## VP9/VP9.2 for CENCv3 with AES-CBC/AES-CTR
- hw_video_prot_cencv3_vp9_cbc
- hw_video_prot_cencv3_vp9_ctr

## AV1 for CENCv3 with AES-CBC/AES-CTR
- hw_video_prot_cencv3_av1_cbc
- hw_video_prot_cencv3_av1_ctr

## HEVC for CENCv3 with AES-CBC/AES-CTR
- hw_video_prot_cencv3_hevc_cbc
- hw_video_prot_cencv3_hevc_ctr


# 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
