Bagikan melalui


IAMVideoCompression::Metode GetInfo (strmif.h)

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Metode ini GetInfo mengambil informasi tentang properti kompresi filter, termasuk kemampuan dan nilai default.

Sintaks

HRESULT GetInfo(
  [out]     LPWSTR pszVersion,
  [in, out] int    *pcbVersion,
  [out]     LPWSTR pszDescription,
  [in, out] int    *pcbDescription,
  [out]     long   *pDefaultKeyFrameRate,
  [out]     long   *pDefaultPFramesPerKey,
  [out]     double *pDefaultQuality,
  [out]     long   *pCapabilities
);

Parameter

[out] pszVersion

Penunjuk ke buffer yang menerima string versi, seperti "Versi 2.1.0."

[in, out] pcbVersion

Menerima ukuran string versi, dalam byte.

[out] pszDescription

Penunjuk ke buffer yang menerima string deskripsi, seperti "Kompresor Video Saya."

[in, out] pcbDescription

Menerima ukuran string deskripsi, dalam byte.

[out] pDefaultKeyFrameRate

Menerima laju bingkai kunci default.

[out] pDefaultPFramesPerKey

Menerima tingkat default bingkai yang diprediksi (P) per bingkai kunci.

[out] pDefaultQuality

Menerima kualitas default.

[out] pCapabilities

Menerima kemampuan kompresi, sebagai kombinasi bitwise dari nol atau lebih bendera CompressionCaps .

Mengembalikan nilai

Mengembalikan nilai HRESULT .

Keterangan

Salah satu parameter yang tercantum dapat berupa NULL, dalam hal ini metode mengabaikan parameter tersebut.

Aplikasi harus mengalokasikan buffer untuk string versi dan deskripsi. Untuk menentukan ukuran buffer yang diperlukan, panggil metode ini dengan NULL untuk parameter pszVersion dan pszDescription . Gunakan nilai yang dikembalikan dalam pcbVersion dan pcbDescription untuk mengalokasikan buffer lalu panggil metode lagi, seperti yang ditunjukkan dalam kode berikut:

C++
// Get the size of the version and description strings, in bytes.
int cbVersion, cbDesc; 
hr = pCompress->GetInfo(NULL, &cbVersion, NULL, &cbDesc, 
    NULL, NULL, NULL, NULL);
if (SUCCEEDED(hr))
{
    // Allocate the buffers.
    WCHAR *pszVersion = new WCHAR[cbVersion / sizeof(WCHAR)];  
    WCHAR *pszDesc = new WCHAR[cbDesc / sizeof(WCHAR)];

    // Now query for the strings.
    hr = pCompress->GetInfo(pszVersion, &cbVersion, pszDesc, &cbDesc, 
        NULL, NULL, NULL, NULL);
    }
    delete [] pszVersion;
    delete [] pszDesc;
}
Perhatikan bahwa string adalah string karakter lebar, dan ukuran yang dikembalikan dalam byte, bukan jumlah karakter. Selain itu, satu atau kedua string mungkin memiliki panjang nol.

Parameter pCapabilities menerima serangkaian bendera yang menunjukkan properti kompresi mana yang didukung, dan dengan demikian metode IAMVideoCompression didukung. Misalnya, jika bendera CompressionCaps_CanKeyFrame dikembalikan, filter mendukung metode IAMVideoCompression::get_KeyFrameRate dan IAMVideoCompression::p ut_KeyFrameRate .

Parameter yang tersisa menerima nilai default untuk properti pemadatan. Untuk properti yang tidak didukung (sebagaimana ditentukan oleh bendera yang dikembalikan dalam pCapabilities), Anda harus mengabaikan nilai default yang sesuai, karena mungkin tidak benar atau bermakna.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header strmif.h (termasuk Dshow.h)
Pustaka Strmiids.lib

Lihat juga

Kode Kesalahan dan Keberhasilan

Antarmuka IAMVideoCompression