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 diesen Speicherbereich, um interne Datenstrukturen zu speichern, die mit der Befehlsliste zusammenhängen.
[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
Zeigen Sie auf eine D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 Struktur, in der die Ausgabe dieses Rückrufs gespeichert werden soll.
Rückgabewert
Nichts
Bemerkungen
Für alle Encoder muss der Treiber alle Layoutinformationen fortlaufend im Arbeitsspeicher im ResolvedLayoutEncoderMetadataDrvBufferpositionieren. Der API-Client analysiert diese Metadaten entsprechend, je nach Encodertyp (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec auf Treiberebene).
ResolvedLayoutEncoderMetadataDrvBuffer für H264/HEVC-Codecs
Für H264- und HEVC-Encoder (Typen, die vor dem Hinzufügen der AV1-Erweiterung unterstützt werden), wird das aufgelöste Pufferspeicherlayout 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 im komprimierten Ausgabe-Bitstream geschrieben werden.
Der Aufrufer kann die maximale Größe des aufgelösten Metadatenpuffers durch das H264/HEVC-Layout 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 wie folgt definiert:
WrittenSubregionsCount Elemente vom Typ D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0, die jede Kachel in der gleichen Reihenfolge angeben, in der sie im komprimierten Ausgabe-Bitstream geschrieben werden.
- bSize = tile_size_minus_1 + 1 + bStartOffset
- bStartOffset = Bytes, die relativ zu dieser Kachel übersprungen werden sollen, die tatsächliche bitstreamcodierte Kachelgröße ist tile_size_minus_1 = (bSize - bStartOffset - 1).
- bHeaderSize = 0
- Die i-th-Kachel wird aus der compressed_bitstream[offset] mit Offset = [Summe j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
Die D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 Struktur, die die codierte Frame-Kachelrasterstruktur angibt
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 Struktur, die Codierungsmetadatenwerte angibt, die nur 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 |
---|---|
mindestens unterstützte Client- | Windows 11 (WDDM 3.0) |
Header- | d3d12umddi.h |