D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// d3d12umddi.h

typedef struct D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 {
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0                 Flags;
  D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080                            IntraRefreshConfig;
  D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2                           RateControl;
  D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080                  PictureTargetResolution;
  D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080              SelectedLayoutMode;
  D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 FrameSubregionsLayoutData;
  D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0                 CodecGopSequence;
} D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0;
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (ns-d3d12umddi-d3d12ddi_video_encoder_sequence_control_desc_0082_0)

Description

The D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_DESC_0082_0 structure contains the sequence-level parameters for the input of a video encoding operation.

Members

Flags

A D3D12DDI_VIDEO_ENCODER_SEQUENCE_CONTROL_FLAGS_0082_0 value that indicates the sequence control descriptor flags for the current encode frame operation.

IntraRefreshConfig

A D3D12DDI_VIDEO_ENCODER_INTRA_REFRESH_0080 structure that specifies the parameters for the intra-refresh mode that should be used when triggering intra-refresh sessions. See Remarks for details about the use of intra-fresh.

RateControl

A D3D12DDI_VIDEO_ENCODER_RATE_CONTROL_0080_2 structure that specifies the rate control configuration.

Check the D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RATE_CONTROL_RECONFIGURATION_AVAILABLE flag to determine whether dynamic reconfiguration of rate control is supported:

PictureTargetResolution

A D3D12DDI_VIDEO_ENCODER_PICTURE_RESOLUTION_DESC_0080 structure that describes the resolution to use when encoding this frame. The target resolution must be set based on the list of resolutions specified when the associated encoder heap for this operation was created.

Check the D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_RESOLUTION_RECONFIGURATION_AVAILABLE flag to determine whether dynamic reconfiguration for resolution is supported:

SelectedLayoutMode

A D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_LAYOUT_MODE_0080 value that indicates which layout mode is being used, and hence which union members to use in FrameSubregionsLayoutData.

Check the D3D12_VIDEO_ENCODER_SUPPORT_FLAG_0083_0_SUBREGION_LAYOUT_RECONFIGURATION_AVAILABLE flag to determine whether subregion dynamic reconfiguration is supported:

FrameSubregionsLayoutData

A D3D12DDI_VIDEO_ENCODER_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_0080_2 structure that contains picture subregions layout optional codec-specific data. If SelectedLayoutMode indicates that there are no subregions, this member must be NULL.

CodecGopSequence

A D3D12DDI_VIDEO_ENCODER_SEQUENCE_GOP_STRUCTURE_0082_0 structure that specifies the current GOP used in the video sequence, in display order. Calls to EncodeFrame must follow this GOP but in sequence order after B-Frames reordering.

Check the D3D12_VIDEO_ENCODER_SUPPORT_FLAG__0083_0_SEQUENCE_GOP_RECONFIGURATION_AVAILABLE flag to determine whether GOP dynamic reconfiguration is supported:

Remarks

See D3D12 video encoding for general information.

Using intra-refresh

The use of bidirectional reference frames (B Frames) is mutually exclusive with intra-refresh. The caller should check that CodecGopSequence's structure does not contain B frames if intra-refresh modes are active. When querying for D3D12DDICAPS_VIDEO_ENCODER_SUPPORT_DATA with an intra-refresh mode other than D3D12_VIDEO_ENCODER_INTRA_REFRESH_MODE_NONE, the CodecGopSequence set must not contain B frames, or the query will return no support.

The use of infinite intra-refresh is possible by periodically requesting a new wave of intra-refresh after each of intra-refresh finishes.

When starting an intra-refresh of N frames of duration, the host does the following:

The expected behavior when explicitly requesting an intra-refresh wave with duration N frames follows:

For row-based intra-refresh:

See also

D3D12DDI_VIDEO_ENCODER_ENCODEFRAME_INPUT_STREAM_ARGUMENTS_0082_0

D3D12DDI_VIDEO_ENCODER_SUPPORT_FLAGS_0083_0

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0

PFND3D12DDI_CREATEVIDEOENCODERHEAP_0080_2