Bagikan melalui


PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 fungsi panggilan balik (d3d12umddi.h)

Fungsi panggilan balik PFND3D12DDI_VIDEO_ENCODE_RESOLVE_OUTPUT_METADATA_0082_0 merekam perintah untuk menyelesaikan metadata output operasi pengodean ke dalam format yang dapat dibaca.

Sintaks

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

Tangani data driver untuk daftar perintah. Driver menggunakan wilayah memori ini untuk menyimpan struktur data internal yang terkait dengan daftar perintahnya.

[in] pInputArguments

Penunjuk ke struktur D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2 yang berisi argumen input untuk panggilan balik ini.

[out] pOutputArguments

Arahkan ke struktur D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_OUTPUT_ARGUMENTS_0082_0 untuk menyimpan output dari panggilan balik ini.

Menampilkan nilai

Tidak ada

Keterangan

Untuk semua encoder, driver harus memposisikan semua informasi tata letak secara berdekatan dalam memori di ResolvedLayoutEncoderMetadataDrvBuffer. Klien API akan mengurai metadata ini sesuai tergantung pada jenis encoder (D3D12DDI_VIDEO_ENCODER_RESOLVE_METADATA_INPUT_ARGUMENTS_0080_2.EncoderCodec di tingkat driver).

ResolvedLayoutEncoderMetadataDrvBuffer untuk codec H264/HEVC

Untuk encoder H264 dan HEVC (jenis yang didukung sebelum ekstensi AV1 ditambahkan), tata letak memori buffer yang diselesaikan tidak diubah.

ResolvedLayoutEncoderMetadataDrvBuffer untuk codec AV1

Untuk pengodean AV1 (pInputArguments-EncoderCodec> sama dengan D3D12DDI_VIDEO_ENCODER_CODEC_0095_AV1), yang ditambahkan dalam Windows 11, versi 24H2 (WDDM 3.2), driver harus menggunakan tata letak buffer terselesaikan khusus AV1 yang ditambahkan.

  • Tata letak memori didefinisikan sebagai:

    • struktur D3D12DDI_VIDEO_ENCODER_OUTPUT_METADATA_0083_0

    • Elemen WrittenSubregionsCount jenis D3D12DDI_VIDEO_ENCODER_FRAME_SUBREGION_METADATA_0083_0 menunjukkan setiap petak peta dalam urutan yang sama yang ditulis dalam bitstream output terkompresi.

      • bSize = tile_size_minus_1 + 1 + bStartOffset
      • bStartOffset = Byte untuk melewati relatif terhadap petak peta ini, ukuran petak peta berkode bitstream aktual tile_size_minus_1 = (bSize - bStartOffset - 1).
      • bHeaderSize = 0
      • Petak peta i-th dibaca dari compressed_bitstream[offset] dengan offset = [sum j = (0, (i-1)){ tile[j].bSize }] + tile[i].bStartOffset
    • Struktur D3D12DDI_VIDEO_ENCODER_AV1_PICTURE_CONTROL_SUBREGIONS_LAYOUT_DATA_TILES_0095 menunjukkan struktur kisi petak peta bingkai yang dikodekan

    • D3D12DDI_VIDEO_ENCODER_AV1_POST_ENCODE_VALUES_0095 struktur yang menunjukkan nilai metadata pengodean yang hanya diperoleh pasca-eksekusi EncodeFrame pada GPU.

  • Pemanggil dapat menyimpulkan ukuran maksimum buffer metadata yang diselesaikan dengan tata letak untuk AV1 di 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)

Lihat Pengodean video D3D12 untuk informasi umum.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11 (WDDM 3.0)
Header d3d12umddi.h

Lihat juga

PFND3D12DDI_VIDEO_ENCODE_FRAME_0082_0