IAMExtDevice::GetCapability 方法 (strmif.h)

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

方法 GetCapability 检索外部设备的功能。

语法

HRESULT GetCapability(
  [in]  long   Capability,
  [out] long   *pValue,
  [out] double *pdblValue
);

参数

[in] Capability

指定检查的功能。 有关更多信息,请参见备注。

[out] pValue

指向接收 整数的变量的指针。 有关更多信息,请参见备注。

[out] pdblValue

指向接收 double 的变量的指针。 有关更多信息,请参见备注。

返回值

此方法成功后,将返回S_OK。 否则,它将返回 HRESULT 错误代码。

注解

Capability 参数是指定要检查的功能的标志。 方法在 pValue 参数或 pdblValue 参数中返回结果,具体取决于功能标志。

对于以下标志,该方法在 pValue 参数中返回值 OATRUE 或 OAFALSE。 值 OATRUE 指示功能存在,而值 OAFALSE 指示该功能不存在。

功能标志 说明
ED_DEVCAP_AUDIO_INPUTS 设备接受音频输入。
ED_DEVCAP_CAN_MONITOR_SOURCES 设备可以将任何输入发送到受监视的输出,而不考虑当前选择的输入。
ED_DEVCAP_CAN_PREVIEW 设备可以预览。
ED_DEVCAP_CAN_RECORD 设备可以记录。
ED_DEVCAP_CAN_RECORD_STROBE 设备可以频闪记录。 此功能适用于可录制到所选轨道的多轨设备。
ED_DEVCAP_CAN_SAVE 设备可以保存数据。
ED_DEVCAP_CTLTRK_READ 设备可以读取控制轨道。
ED_DEVCAP_HAS_AUDIO 设备具有音频。
ED_DEVCAP_HAS_VIDEO 设备具有视频。
ED_DEVCAP_INDEX_READ 设备可以读取索引标记。
ED_DEVCAP_NEEDS_CALIBRATING 设备需要校准。 请参阅 IAMExtDevice::校准
ED_DEVCAP_TIMECODE_READ 设备可以读取 SMPTE 时间代码。
ED_DEVCAP_TIMECODE_WRITE 设备可以设置 SMPTE 时间代码。
ED_DEVCAP_USES_FILES 设备具有内置文件系统。
ED_DEVCAP_VIDEO_INPUTS 设备接受视频输入。
 

对于以下标志, 方法在 pValue 参数中返回定义的常量。

ED_DEVCAP_DEVICE_TYPE:返回设备类型。

返回的常量 说明
ED_DEVTYPE_ATR 录音带录音机
ED_DEVTYPE_CG 字符生成器
ED_DEVTYPE_DDR 数字磁盘记录器
ED_DEVTYPE_DVE 数字视频效果单元
ED_DEVTYPE_GPI 常规用途接口触发器
ED_DEVTYPE_KEYER 视频密钥器
ED_DEVTYPE_LASERDISK Laserdisc
ED_DEVTYPE_MIXER_AUDIO 音频混音器
ED_DEVTYPE_MIXER_VIDEO 视频混音器
ED_DEVTYPE_ROUTER 视频路由器
ED_DEVTYPE_TBC 时间基更正器
ED_DEVTYPE_TCG 时间代码生成器/读取器
ED_DEVTYPE_VCR 具有完整 VCR 功能的 VCR 或摄像机
ED_DEVTYPE_WIPEGEN 视频擦除生成器
ED_DEVTYPE_JOYSTICK 游戏杆
ED_DEVTYPE_KEYBOARD Keyboard
 

ED_DEVCAP_SYNC_ACCURACY:返回设备同步准确性的指示。

返回的常量 说明
ED_SYNCACC_PRECISE 设备具有精确的准确度。
ED_SYNCACC_FRAME 设备帧准确。
ED_SYNCACC_ROUGH 设备小于帧准确性。
 

ED_DEVCAP_NORMAL_RATE:返回设备的正常帧速率。

返回的常量 说明
ED_RATE_24 每秒 24 帧 (fps)
ED_RATE_25 25 fps
ED_RATE_2997 29.97 fps
ED_RATE_30 30 fps
 

ED_DEVCAP_SEEK_TYPE:返回设备查找准确性的指示。

返回的常量 说明
ED_SEEK_PERFECT 设备可以在一个视频帧内搜寻,而无需信号中断。
ED_SEEK_FAST 设备可以快速搜寻,信号短暂中断。
ED_SEEK_SLOW 设备查找速度缓慢;例如磁带传输。
 

对于以下标志,方法返回 pValue 参数中的数值。

功能标志 返回的值
ED_DEVCAP_EXTERNAL_DEVICE_ID 特定于制造商的标识符。
ED_DEVCAP_PREROLL 设备预生成时间。
ED_DEVCAP_POSTROLL 设备发布时间。
 

在 Windows XP Service Pack 2 及更高版本中,ED_DEVCAP_DEVICE_TYPE支持以下附加标志。

返回的常量 说明
ED_DEVTYPE_CAMERA_STORAGE 静态图像或短视频文件的存储。
ED_DEVTYPE_DTV 带串行总线接口的数字电视。
ED_DEVTYPE_PC_VIRTUAL 计算机上的虚拟或模拟设备。
 

若要使用这些常量,请包含头文件 Xprtdefs.h。

DV 实现

MSDV 和 UVC 驱动程序支持以下行为。

ED_DEVCAP_NORMAL_RATE标志返回帧速率。

返回的常量 说明
ED_RATE_25 25 fps (默认 PAL 帧速率)
ED_RATE_2997 29.997 fps (默认 NTSC 帧速率)
 

仅对于 MSDV,ED_DEVCAP_DEVICE_TYPE标志返回设备类型。 下表中显示了可能的值。 对于 UVC 设备,请改用 IKsTopologyInfo 接口。

返回的常量 说明
ED_DEVTYPE_CAMERA 可以录制或暂停录制但缺少完整 VCR 功能的简单相机。
ED_DEVTYPE_DVHS 设备支持 D-VHS 格式。
ED_DEVTYPE_UNKNOWN 未知设备类型。
ED_DEVTYPE_VCR 设备具有完整的 VCR 功能。

要求

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

另请参阅

错误和成功代码

IAMExtDevice 接口