// d3d12umddi.h
typedef struct D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT_0095 {
D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAGS SupportedFeatureFlags;
D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAGS RequiredFeatureFlags;
D3D12DDI_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_0095_FLAGS SupportedInterpolationFilters;
D3D12DDI_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_0095_FLAGS SupportedRestorationParams[3][3];
D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_0095_FLAGS SupportedSegmentationModes;
D3D12DDI_VIDEO_ENCODER_AV1_TX_MODE_0095_FLAGS SupportedTxModes[4];
D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_0095 SegmentationBlockSize;
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS PostEncodeValuesFlags;
UINT MaxTemporalLayers;
UINT MaxSpatialLayers;
} D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT_0095;
View the official Windows Driver Kit DDI referenceNo description available.
The D3D12DDI_VIDEO_ENCODER_AV1_CODEC_CONFIGURATION_SUPPORT_0095 structure contains configuration support parameters for AV1 encoding.
SupportedFeatureFlagsOutput parameter. A D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAGS enumeration that indicates which features are supported for the codec. Supported features can be set or not by the API Client.
RequiredFeatureFlagsOutput parameter. A D3D12DDI_VIDEO_ENCODER_AV1_FEATURE_0095_FLAGS enumeration that indicates which features the driver requires to be set by the API Client.
SupportedInterpolationFiltersOutput parameter. A D3D12DDI_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS_0095_FLAGS enumeration that indicates which values can be selected as input parameters of type D3D12DDI_VIDEO_ENCODER_AV1_INTERPOLATION_FILTERS.
SupportedRestorationParams[3]Output parameter. A D3D12DDI_VIDEO_ENCODER_AV1_RESTORATION_SUPPORT_0095_FLAGS enumeration that indicates which values can be selected as input parameters for FrameRestorationType and LoopRestorationPixelSize in D3D12DDI_VIDEO_ENCODER_AV1_RESTORATION_CONFIG_0095.
The first array indexing corresponds to the restoration filter type.
| Index i in SupportedRestorationParams[i][j] | Filter type |
|---|---|
| 0 | SWITCHABLE |
| 1 | WIENER |
| 2 | SGRPROJ |
Note the indexing of the filter types corresponds to D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE minus 1 (skipping D3D12_VIDEO_ENCODER_AV1_RESTORATION_TYPE_DISABLED).
The second array indexing corresponds to the planes.
| Index j in SupportedRestorationParams[i][j] | Plane |
|---|---|
| 0 | Y plane |
| 1 | U plane |
| 2 | V plane |
The value returned in SupportedRestorationParams[i][j] is a bitflag mask indicating whether the i-th filter in the j-th plane is either:
SupportedSegmentationModesOutput parameter. A D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_MODE_0095_FLAGS enumeration that indicates which segmentation modes can be selected in D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_CONFIG_0095.
SupportedTxModes[4]Output parameter. An array of D3D12DDI_VIDEO_ENCODER_AV1_TX_MODE_0095_FLAGS values that indicates which transform mode values can be selected as input parameters of type D3D12DDI_VIDEO_ENCODER_AV1_TX_MODE_0095 for each different D3D12DDI_VIDEO_ENCODER_AV1_FRAME_TYPE_0095. The driver must support at least 1 mode for each frame type; that is, the mask value can't be 0.
SegmentationBlockSizeOutput parameter. A D3D12DDI_VIDEO_ENCODER_AV1_SEGMENTATION_BLOCK_SIZE_0095 enumeration that indicates the block size for the segment map. This is both for the input blocks in D3D12_VIDEO_ENCODER_AV1_SEGMENTATION_MAP_0095 for custom segmentation or the block size of the segment map written in the compressed bitstream by the driver in auto segmentation.
PostEncodeValuesFlagsA D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095_FLAGS enumeration that specifies which AV1 encoding features the underlying encoder is able to override the associated AV1 syntax values for or accept API Client configurable input exactly.
MaxTemporalLayersSpecifies the maximum number of temporal layers that can be supported. The reported values must be in the range [1..MaxTemporalIdSupported + 1]. A reported value 1, there is no temporal scalability support.
MaxSpatialLayersSpecifies the maximum number of spatial layers that can be supported. The reported values must be in the range [1..MaxSpatialIdSupported + 1]. A reported value 1, there is no spatial scalability support.
See D3D12 AV1 video encoding for more information.
D3D12DDICAPS_VIDEO_ENCODER_CODEC_CONFIGURATION_SUPPORT_DATA_0083_0