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

指向接收双变量的指针。 有关详细信息,请参阅“备注”。

返回值

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

言论

Capability 参数是一个标志,用于指定要检查的功能。 该方法根据功能标志返回 pValue 参数或 pdblValue 参数中的结果。

对于以下标志,该方法返回 pValue 参数中的 OATRUE 或 OAFALSE 值。 VALUE 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 Timecode 生成器/读取器
ED_DEVTYPE_VCR 具有完整 VCR 功能的 VCR 或摄像机
ED_DEVTYPE_WIPEGEN 视频擦除生成器
ED_DEVTYPE_JOYSTICK 操纵杆
ED_DEVTYPE_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 [仅限桌面应用]
目标平台 窗户
标头 strmif.h (包括 Dshow.h)
Strmiids.lib

另请参阅

错误和成功代码

IAMExtDevice 接口