IAMVideoCompression::GetInfo 方法 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 GetInfo 检索有关筛选器的压缩属性的信息,包括功能和默认值。

语法

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
);

参数

[out] pszVersion

指向接收版本字符串的缓冲区的指针,例如“版本 2.1.0”。

[in, out] pcbVersion

接收版本字符串的大小(以字节为单位)。

[out] pszDescription

指向接收说明字符串(如“我的视频压缩器”)的缓冲区的指针。

[in, out] pcbDescription

接收说明字符串的大小(以字节为单位)。

[out] pDefaultKeyFrameRate

接收默认关键帧速率。

[out] pDefaultPFramesPerKey

接收每个关键帧预测 (P) 帧的默认速率。

[out] pDefaultQuality

接收默认质量。

[out] pCapabilities

接收压缩功能,作为零个或多个 CompressionCaps 标志的按位组合。

返回值

返回 HRESULT 值。

注解

列出的任何参数都可以为 NULL,在这种情况下,该方法将忽略该参数。

应用程序必须为版本和说明字符串分配缓冲区。 若要确定所需的缓冲区大小,请对 pszVersionpszDescription 参数使用 NULL 调用此方法。 使用 在httpVersionhttpDescription 中返回的值分配缓冲区,然后再次调用 方法,如以下代码所示:

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;
}
请注意,字符串是宽字符字符串,返回的大小以字节为单位,而不是字符数。 此外,一个或两个字符串的长度可能为零。

pCapabilities 参数接收一组标志,指示支持哪些压缩属性以及支持哪些 IAMVideoCompression 方法。 例如,如果返回 CompressionCaps_CanKeyFrame 标志,则筛选器支持 IAMVideoCompression::get_KeyFrameRateIAMVideoCompression::p ut_KeyFrameRate 方法。

其余参数接收压缩属性的默认值。 对于 (由 pCapabilities) 中返回的标志确定的不受支持的属性,应忽略相应的默认值,因为它可能不正确或有意义。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 strmif.h (包括 Dshow.h)
Library Strmiids.lib

另请参阅

错误和成功代码

IAMVideoCompression 接口