PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 funzione di callback (d3d12umddi.h)
La funzione di callback PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 registra un comando per risolvere i metadati di output di un'operazione di codifica in un formato leggibile.
Sintassi
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
)
{...}
Parametri
[in] hDrvCommandList
Gestire i dati del driver per l'elenco di comandi. Il driver usa questa area di memoria per archiviare strutture di dati interne correlate all'elenco di comandi.
[in] pInputArguments
Puntatore a una struttura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 che contiene argomenti di input per questo callback.
[out] pOutputArguments
Puntatore a una struttura D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 in cui archiviare l'output da questo callback.
Valore restituito
nessuno
Osservazioni
Per tutti i codificatori, il driver deve posizionare tutte le informazioni di layout in modo contiguo in memoria in ResolvedLayoutEncoderMetadataDrvBuffer. Il client API analizzerà questi metadati di conseguenza a seconda del tipo di codificatore (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec a livello di driver).
ResolvedLayoutEncoderMetadataDrvBuffer per codec H264/HEVC
Per i codificatori H264 e HEVC (tipi supportati prima dell'aggiunta dell'estensione AV1), il layout della memoria buffer risolto non viene modificato.
Elementi WrittenSubregionsCount di tipo D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 che indicano ogni riquadro nello stesso ordine in cui vengono scritti nel bitstream di output compresso.
Il chiamante può dedurre le dimensioni massime del buffer dei metadati risolto dal layout H264/HEVC per ResolveEncoderOutputMetadata:
- 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 per codec AV1
Per la codifica AV1 (pInputArguments-EncoderCodec> uguale a D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), aggiunta in Windows 11 versione 24H2 (WDDM 3.2), il driver deve usare il layout del buffer risolto specifico di AV1 aggiunto.
Il layout della memoria è definito come:
Elementi WrittenSubregionsCount di tipo D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 che indicano ogni riquadro nello stesso ordine in cui vengono scritti nel bitstream di output compresso.
- bSize = tile_size_minus_1 + 1 + bStartOffset
- bStartOffset = Byte per ignorare questo riquadro, le dimensioni effettive del riquadro codificato bitstream sono tile_size_minus_1 = (bSize - bStartOffset - 1).
- bHeaderSize = 0
- Il riquadro i-th viene letto dal compressed_bitstream[offset] con offset = [sum j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
Struttura D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 che indica la struttura della griglia del riquadro cornice codificata
D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 struttura che indica i valori dei metadati di codifica ottenuti solo dopo l'esecuzione di EncodeFrame nella GPU.
Il chiamante può dedurre le dimensioni massime del buffer dei metadati risolto dal layout per AV1 in ResolveEncoderOutputMetadata.
- 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)
Per informazioni generali, vedere Codifica video D3D12 .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 11 (WDDM 3.0) |
Intestazione | d3d12umddi.h |