Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menentukan ukuran blok yang digunakan dalam menghasilkan peta parameter kuantisasi metadata output (QP) dari encoder.
Jenis data
ULONG (VT_UI4)
GUID Properti
CODECAPI_AVEncVideoOutputQPMapBlockSize
Nilai properti
Ukuran blok. Nilai harus berupa daya 2, seperti 16 atau 32. Mengatur ukuran blok ke 0 menonaktifkan pelaporan ukuran blok peta QP. Pelaporan ukuran blok peta QP dinonaktifkan secara default.
Komentar
Ukuran blok yang digunakan dalam menghasilkan peta QP metadata output dari encoder. Dengan ukuran blok, aplikasi dapat memperoleh kolom dan baris peta QP metadata output dengan lebar bingkai video dan tinggi dibagi dengan ukuran blok. Misalnya, jika ukuran blok adalah 16 dan bingkai video memiliki ukuran 1920x1080, peta QP memiliki 120 kolom dan 68 baris. Jika lebar/tinggi bingkai video bukan kelipatan yang tepat dari ukuran blok, bulatkan lebar/tinggi ke kelipatan ukuran blok berikutnya. Misalnya, jika ukuran bingkai adalah 1916x1076 dan ukuran blok adalah 16, ukuran bingkai yang dibulatkan adalah 1920x1088.
Gunakan ICodecAPI::IsSupported untuk memeriksa apakah encoder mendukung properti ini. Gunakan ICodecAPI::GetValue untuk mengkueri nilai properti ini. Gunakan ICodecAPI::SetValue untuk mengonfigurasi properti ini. Nilai yang bukan kekuatan 2, atau 0, menghasilkan nilai pengembalian E_INVALIDARG dari SetValue.
Contoh
Contoh berikut menunjukkan cara menggunakan properti CODECAPI_AVEncVideoOutputQPMapBlockSize untuk mengonfigurasi MFT encoder untuk mengaktifkan atau menonaktifkan fitur pelaporan peta QP. Jika nilai ukuran blok adalah nol, nilai tersebut dinonaktifkan. Jika nilai ukuran blok bukan nol, nilai tersebut diaktifkan.
#include <codecapi.h>
#include <mfapi.h>
#include <wil.com.h>
#include <wil/result_macros.h>
// Inform an encoder MFT to enable or disable the QP map reporting feature.
// This function assumes that the encoder MFT supports ICodecAPI interface.
// It checks whether the new property CODECAPI_AVEncVideoOutputQPMapBlockSize is supported.
// If not supported, it returns E_NOTIMPL.
// If CODECAPI_AVEncVideoOutputQPMapBlockSize is supported and block size is none zero, it is enabled.
// Otherwise, it is disabled.
HRESULT ConfigureEncoderForQPMap(_In_ IMFTransform* encoder, uint32_t blockSize)
{
wil::com_ptr_nothrow<ICodecAPI> codecAPI;
RETURN_IF_FAILED(wil::com_query_to_nothrow(encoder, &codecAPI));
// Check if the encoder supports the property for QP map
if (!codecAPI->IsSupported(&CODECAPI_AVEncVideoOutputQPMapBlockSize))
{
return E_NOTIMPL;
}
// configure encoder
wil::unique_variant value;
value.vt = VT_UI4;
value.ulVal = blockSize; // zero: disable; non-zero: enable
return codecAPI->SetValue(&CODECAPI_AVEncVideoOutputQPMapBlockSize, &value);
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 11, build 26100 |
Server minimum yang didukung | Windows Server 2025 |
Kepala Halaman | Codecapi.h |