c++ - 如何从 IMFMediaSource 获取 Pin 图类别

标签 c++ com directshow ms-media-foundation

我需要迭代 IMFMediaSource 引脚并获取每个引脚的具体类别名称,我在 win 8 中工作,使用媒体基础的 cpp 接口(interface)。

我看到 IBaseFilter 有一个 IBaseFilter::EnumPins 函数,但是 IMFMediaSource 不支持 IBaseFilter 接口(interface):

CComPtr<IBaseFilter> pFilter;<br/> HRESULT hr = m_pMediaSource->QueryInterface(__uuidof(IBaseFilter), (void **)&pFilter);

失败,错误代码为 NO_INTERFACE :(

如何从媒体源中获取 Pin 图类别??

最佳答案

这是行不通的,因为它不一定行得通。 IMFMediaSource 属于 Media Foundation,IBaseFilter 属于 DirectShow。不同的 API 不必共享或以其他方式重复实现。 Media Foundation 对象甚至没有开始的引脚。

由于无法回答所提出的问题,这里唯一的解决办法是退后一步,首先回顾一下您究竟想要实现什么。

关于c++ - 如何从 IMFMediaSource 获取 Pin 图类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20312841/

相关文章:

c# - 将视频剪辑淡化为黑色

c++ - 头文件中没有对构造函数的匹配函数调用调用

c++ - 在 Linux 中测试外部 undefined reference

c++ - 函数是否有任何可能的优化来反转int32中的字节顺序?

c# - 接口(interface)不能被实例化,但这是一个异常吗

c++ - 将 DirectShow 过滤器图转储到图像或文本文件

c++ - 删除 DirectShow 过滤器(未调用析构函数)

c++ - 从 vector 中读取字符串直到 C++ 中的空格

windows - ICallFactory 并排提供 32 位和 64 位类型库

com - 如何获取本地COM服务器的进程句柄?