一个 capture filter 通常有两个或更多个输出相同类型数据的输出引脚,例如预览引脚和捕捉引脚。因此,媒体类型不是区分引脚的好方法。
//相反,这些引脚通过它们的功能来区分,这些功能是使用称为引脚类别的GUID来标识的。
//比如,预览引脚GUID: PIN_CATEGORY_PREVIEW 捕捉引脚GUID:PIN_CATEGORY_CAPTURE
有关如何查询其类别的引脚的讨论,请参阅使用引脚类别。但是,对于大多数应用程序,您不必直接查询引脚。相反,各种ICaptureGraphBuilder2方法使用参数来指定要操作的引脚类别。 Capture Graph Builder自动找到正确的引脚。
预览引脚和捕获引脚
一些视频捕捉设备具有单独的输出引脚用于预览和捕捉。预览引脚用于将视频渲染到屏幕,而捕捉引脚用于将视频写入文件。
预览引脚和捕捉引脚有以下区别:
预览引脚根据需要丢弃帧,以保持捕获引脚上的吞吐量。
捕获针的每一帧都是在帧被捕获时用流时间标记的。预览图钉不会为其提供的样本添加时间戳。
预览帧没有时间戳的原因是过滤器图形在流中引入了少量的延迟。如果捕获时间被用作呈现时间,则视频呈现器将每个样本视为略晚。这可能会导致视频渲染器在尝试追赶时丢弃帧。删除时间戳可以确保渲染器在到达时显示每个样本,而不会丢帧。
预览引脚的引脚类别是PIN_CATEGORY_PREVIEW。捕捉引脚的类别是PIN_CATEGORY_CAPTURE。
-------------------------------------------------------
https://msdn.microsoft.com/en-us/library/windows/desktop/dd375472(v=vs.85).aspx