是否可以使用ipropertybag获取相机属性值?

时间:2014-09-19 02:28:14

标签: c++ camera directshow

基本上我想知道的是,是否可以使用ipropertybag获取某些相机属性。好像是

    CComPtr< IPropertyBag > pBag;
    hr = pM->BindToStorage( 0, 0, IID_IPropertyBag, (void**) &pBag );
    if( hr != S_OK )
        continue;

    // ask for the english-readable name
    //
    CComVariant var;
    var.vt = VT_BSTR;
    hr = pBag->Read( L"FriendlyName", &var, NULL );
    if( hr != S_OK )
        continue;

这是抓住相机的友好名称,我想知道是否有可能获取其他属性值,如增益,偏移x和y,以及什么不使用此属性包。

1 个答案:

答案 0 :(得分:1)

Selecting a Capture Device文章中记录了可用的属性:

"FriendlyName"  The name of the device. VT_BSTR
"Description"   A description of the device.    VT_BSTR
"DevicePath"    A unique string that identifies the device. (Video capture devices only.)   VT_BSTR
"WaveInID"  The identifier for an audio capture device. (Audio capture devices only.)   VT_I4

如果相应的驱动程序准备了某些注册表项,则可以使用其他属性,但这种情况很少见。无论如何,读取属性映射到从注册表读取,这意味着这些是静态值,而不像您感兴趣的运行时参数。使用相应的过滤器/引脚接口查询增益等值。