D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT structure (d3d12video.h)

Provides data for calls to ID3D12VideoDevice::CheckFeatureSupport when the feature specified is D3D12_FEATURE_VIDEO_ENCODER_SUPPORT. Retrieves values indicating support for the specified video encoding features and configuration values.

Syntax

typedef struct D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT {
  UINT                                                       NodeIndex;
  D3D12_VIDEO_ENCODER_CODEC                                  Codec;
  DXGI_FORMAT                                                InputFormat;
  D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION                    CodecConfiguration;
  D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE                 CodecGopSequence;
  D3D12_VIDEO_ENCODER_RATE_CONTROL                           RateControl;
  D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE                     IntraRefresh;
  D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE            SubregionFrameEncoding;
  UINT                                                       ResolutionsListCount;
  const D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC          *pResolutionList;
  UINT                                                       MaxReferenceFramesInDPB;
  D3D12_VIDEO_ENCODER_VALIDATION_FLAGS                       ValidationFlags;
  D3D12_VIDEO_ENCODER_SUPPORT_FLAGS                          SupportFlags;
  D3D12_VIDEO_ENCODER_PROFILE_DESC                           SuggestedProfile;
  D3D12_VIDEO_ENCODER_LEVEL_SETTING                          SuggestedLevel;
  D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS *pResolutionDependentSupport;
} D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT;

Members

NodeIndex

In multi-adapter operation, this indicates which physical adapter of the device this operation applies to.

Codec

A member of the D3D12_VIDEO_ENCODER_CODEC enumeration specifying the codec for which support is being queried.

InputFormat

A D3D12_VIDEO_ENCODER_PROFILE_DESC structure specifying the profile for which support is being queried.

CodecConfiguration

A D3D12_VIDEO_ENCODER_CODEC_CONFIGURATION structure representing the codec configuration for which support is being queried.

CodecGopSequence

A D3D12_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE structure representing the GOP structure for which support is being queried.

RateControl

A D3D12_VIDEO_ENCODER_RATE_CONTROL representing the rate control settings for which support is being queried.

IntraRefresh

A member of the D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE enumeration specifying the intra refresh mode for which support is being queried.

SubregionFrameEncoding

A member of the D3D12_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE enumeration, specifying the subregion layout mode for which support is being queried.

ResolutionsListCount

A UINT specifying the number of resolutions provided in the pResolutionList field.

pResolutionList

A pointer to an array of D3D12_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC specifying the picture resolutions for which support is being queried.

MaxReferenceFramesInDPB

A UINT specifying Maximum number of previous reference frames to be used when calling EncodeFrame for inter-frames. This value is used to calculate the suggested level returned in the SuggestedLevel field.

ValidationFlags

Receives a bitwise OR combination of flags from the D3D12_VIDEO_ENCODER_VALIDATION_FLAGS enumeration that provide additional details if the D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK flag is not set in the SupportFlags field. See Remarks for more information.

SupportFlags

Receives a bitwise OR combination of flags from the D3D12_VIDEO_ENCODER_SUPPORT_FLAGS enumeration specifying support details for the specified encoder features and configuration values.

SuggestedProfile

Receives a D3D12_VIDEO_ENCODER_PROFILE_DESC specifying the recommended profile for the specified encoder features and configuration values.

SuggestedLevel

Receives a D3D12_VIDEO_ENCODER_LEVEL_SETTING specifying the recommended profile for the specified encoder features and configuration values. The recommended level assumes the maximum resolution from the list provided in pResolutionList.

pResolutionDependentSupport

Receives a pointer to an array of D3D12_FEATURE_DATA_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS structures specifying resolution-dependent support limits corresponding to the resolutions provided in pResolutionList.

Remarks

The support granted or rejected by this query indicates simultaneous support for all the features selected to be used in the same encoding session. There can be features that are supported individually when queried with individual query calls but not supported simultaneously.

For example, there can be support for intra refresh when checking D3D12_FEATURE_VIDEO_ENCODER_INTRA_REFRESH_MODE and there can be support for B frames when checking D3D12_VIDEO_ENCODER_CODEC_PICTURE_CONTROL_SUPPORT_H264.MaxL1ReferencesForB > 0. But it can be the case that intra refresh and B frames are not supported simultaneously. In this case, querying D3D12_FEATURE_DATA_VIDEO_ENCODER_SUPPORT with CodecGopSequence containing B frames and intra refresh row-based mode, the D3D12_VIDEO_ENCODER_SUPPORT_FLAG_GENERAL_SUPPORT_OK flag will be set off.

Requirements

Requirement Value
Minimum supported client Windows Build 22000
Minimum supported server Windows Build 22000
Header d3d12video.h