Bagikan melalui


properti CODECAPI_AVEncVideoOutputQPMapBlockSize

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

Lihat juga