PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 Rückruffunktion (d3d12umddi.h)
Die PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 Rückruffunktion zeichnet einen Befehl auf, um die Ausgabemetadaten eines Codierungsvorgangs in ein lesbares Format aufzulösen.
Syntax
PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 Pfnd3d12ddiVideoEncodeResolveOutputMetadata00820;
void Pfnd3d12ddiVideoEncodeResolveOutputMetadata00820(
[in] D3D12DDI_HCOMMANDLIST hDrvCommandList,
[in] const D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 *pInputArguments,
[out] const D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 *pOutputArguments
)
{...}
Parameter
[in] hDrvCommandList
Behandeln Sie die Treiberdaten für die Befehlsliste. Der Treiber verwendet diese Speicherregion, um interne Datenstrukturen zu speichern, die sich auf die Befehlsliste beziehen.
[in] pInputArguments
Zeiger auf eine D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2-Struktur , die Eingabeargumente für diesen Rückruf enthält.
[out] pOutputArguments
Zeiger auf eine D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 Struktur, in der die Ausgabe dieses Rückrufs gespeichert werden soll.
Rückgabewert
Keine
Bemerkungen
Für alle Encoder muss der Treiber alle Layoutinformationen im Speicher im ResolvedLayoutEncoderMetadataDrvBuffer zusammenhängend positionieren. Der API-Client analysiert diese Metadaten entsprechend vom Encodertyp (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec auf Treiberebene).
ResolvedLayoutEncoderMetadataDrvBuffer für H264/HEVC-Codecs
Bei H264- und HEVC-Encodern (Typen, die vor dem Hinzufügen der AV1-Erweiterung unterstützt wurden) wird das Layout des aufgelösten Pufferspeichers nicht geändert.
WrittenSubregionsCount-Elemente vom Typ D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 , die jede Kachel in der gleichen Reihenfolge angeben, in der sie in den komprimierten Ausgabebitstream geschrieben wurden.
Der Aufrufer kann die maximale Größe des aufgelösten Metadatenpuffers anhand des H264/HEVC-Layouts für ResolveEncoderOutputMetadata ableiten:
- maxSliceNumber = D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.MaxSubregionsNumber;
- MaxEncoderOutputMetadataResolvedBufferSize = sizeof(D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0) + (maxSliceNumber * sizeof(D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0))
ResolvedLayoutEncoderMetadataDrvBuffer für AV1-Codec
Für die AV1-Codierung (pInputArguments-EncoderCodec> gleich D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), die in Windows 11, Version 24H2 (WDDM 3.2) hinzugefügt wurde, sollte der Treiber das hinzugefügte AV1-spezifische aufgelöste Pufferlayout verwenden.
Das Speicherlayout ist definiert wie folgt:
WrittenSubregionsCount-Elemente vom Typ D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 , die jede Kachel in der gleichen Reihenfolge angeben, in der sie in den komprimierten Ausgabebitstream geschrieben wurden.
- bSize = tile_size_minus_1 + 1 + bStartOffset
- bStartOffset = Bytes, die im Verhältnis zu dieser Kachel übersprungen werden sollen, ist die tatsächliche Größe der bitstreamcodierten Kachel tile_size_minus_1 = (bSize - bStartOffset - 1).
- bHeaderSize = 0
- Die i-te Kachel wird aus dem compressed_bitstream[offset] mit offset = [summe j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset gelesen.
Die D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095-Struktur , die die Rasterstruktur der codierten Rahmenkachel angibt
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 Struktur, die Codierungsmetadatenwerte angibt, die erst nach der Ausführung von EncodeFrame auf der GPU abgerufen werden.
Der Aufrufer kann die maximale Größe des aufgelösten Metadatenpuffers anhand des Layouts für AV1 in ResolveEncoderOutputMetadata ableiten.
- MaxTiles = D3D12DDI_VIDEO_ENCODER_RESOLUTION_SUPPORT_LIMITS_0080_2.MaxSubregionsNumber;
- MaxEncoderOutputMetadataResolvedBufferSize = sizeof(D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0) + (MaxTiles * sizeof(D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0)); + sizeof(D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095) + sizeof(D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095)
Allgemeine Informationen finden Sie unter D3D12-Videocodierung .
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 11 (WDDM 3.0) |
Kopfzeile | d3d12umddi.h |