Video 二维媒体缓冲区

Video 二维媒体缓冲区,video,ms-media-foundation,Video,Ms Media Foundation,我在理解IMF2DBuffer可供使用的实例时遇到问题。在IMFMediaBuffer上使用QueryInterface会导致不支持此类接口。(我正在使用Windows 10。) 我找到了这个措辞,但它非常模糊: 此接口专为图像数据设计。得到 指向此接口的指针,调用媒体缓冲区上的QueryInterface。 并非所有媒体缓冲区对象都公开此接口。但如果媒体缓冲区确实公开IMF2DBUFER接口,则应使用该接口 接口来访问数据(如果可能),而不是使用 伊姆夫梅迪阿布弗。您仍然可以使用IMFMedi

我在理解
IMF2DBuffer
可供使用的实例时遇到问题。在
IMFMediaBuffer
上使用
QueryInterface
会导致
不支持此类接口。(我正在使用Windows 10。)

我找到了这个措辞,但它非常模糊:

此接口专为图像数据设计。得到 指向此接口的指针,调用媒体缓冲区上的QueryInterface。 并非所有媒体缓冲区对象都公开此接口。但如果媒体缓冲区确实公开IMF2DBUFER接口,则应使用该接口 接口来访问数据(如果可能),而不是使用 伊姆夫梅迪阿布弗。您仍然可以使用IMFMediaBuffer接口,但是 可能效率较低


我找不到任何关于它在什么情况下会或不会暴露这一点的信息。它依赖媒体吗?输出格式?编解码器?操作系统版本?它真的没有说

引用的语言建议您使用此界面的方法。您不应该依赖媒体、输出格式、编解码器或操作系统版本

其想法是“有时”您可以使用此接口以实现更高效的数据访问。因此,如果您想要微调处理,您可以有一个执行
IMF2DBuffer
的代码路径和通用
IMFMediaBuffer
的回退编解码器路径

这是文档信息,它是合理的

IMF2DBuffer
的可用性取决于具体实现。因为它是一个承诺,所以没有直接提到它何时可用:如果它被记录下来,那么就有一个遵循该承诺的承诺,没有理由采取这样的约束


接口本身的文档说明,当数据以非标准方式有效存储时,此接口会有所帮助
IMFMediaBuffer
access将不得不重新排列数据,这在性能方面可能不是很有效
IMF2DBuffer
方法反过来有助于执行某些任务/数据访问,而无需“昂贵”的数据重新安排。

引用的语言建议了使用此接口的方法。您不应该依赖媒体、输出格式、编解码器或操作系统版本

其想法是“有时”您可以使用此接口以实现更高效的数据访问。因此,如果您想要微调处理,您可以有一个执行
IMF2DBuffer
的代码路径和通用
IMFMediaBuffer
的回退编解码器路径

这是文档信息,它是合理的

IMF2DBuffer
的可用性取决于具体实现。因为它是一个承诺,所以没有直接提到它何时可用:如果它被记录下来,那么就有一个遵循该承诺的承诺,没有理由采取这样的约束

接口本身的文档说明,当数据以非标准方式有效存储时,此接口会有所帮助
IMFMediaBuffer
access将不得不重新排列数据,这在性能方面可能不是很有效
IMF2DBuffer
方法反过来有助于执行某些任务/数据访问,而无需“昂贵”的数据重新安排