如果从不同的编程语言调用,是否有任何理由说明未设置媒体子类型的 ISampleGrabberCB.BufferCB 中 BufferLen 的大小应该有所不同?
我有一个 C# 应用程序和一个 VB.NET 应用程序,它们都在关闭时钟并且在 SampleGrabber 上没有设置媒体子类型的情况下尽快运行图表。代码是相同的。在 C# 应用程序中,每次样本通过采集器时,BufferLen 的大小都是不同的(如您所料)。在 VB.NET 应用程序中,BufferLen 是一个常量固定值。
例如,当通过图形运行 1280 x 720 视频时,VB 代码中 BufferLen 的大小始终为1,382,400(这是有道理的,因为视频解码器上的输出引脚显示 12 位 NV12 格式)。在 C# 代码中,BufferLen 的大小在低值和高值之间变化很大。
有谁知道为什么会这样?