IAMExtDevice::GetCapability 方法 (strmif.h)
[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayer、 IMFMediaEngine 和 媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayer、 IMFMediaEngine 和 Media 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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈