我正在开发自定义视频播放器。我在我的架构中使用了 DirectShow/Media Foundation 的组合。基本上,我使用 DS 来抓取 VOB 帧(MF 不支持)。我能够从 DirectShow 获得一个样本,但一直坚持将其传递给渲染器。在 MF 中,我得到了一个 Direct3DSurface9(来自 IMFSample),并使用 IDirect3D9Device 将它呈现在后台缓冲区中。
使用 DirectShow,我将 IMediaSample 作为我的数据缓冲区对象。我不知道如何转换并将其作为 IMFSample 传递。我发现其他人从示例中获取位图信息并使用 GDI+ 进行渲染。但我的视频数据可能并不总是有 RGB 数据。我希望从 IMediaSample 获得 IDirect3DSurface9 或 IMFSample 并将其传递给渲染,这样我就不必为色彩空间转换而烦恼了。
我是新手。如果我错了,请纠正我。谢谢