メディアサブタイプが設定されていないISampleGrabberCB.BufferCBのBufferLenのサイズが、異なるプログラミング言語から呼び出された場合に異なる必要がある理由はありますか?
C#アプリとVB.NETアプリがあり、どちらも時計をオフにして、SampleGrabberにメディアサブタイプを設定せずに、できるだけ速くグラフを実行します。コードは同じです。C#アプリでは、サンプルがグラバーを通過するたびにBufferLenのサイズが異なります(予想どおり)。VB.NETアプリでは、BufferLenは一定の固定値です。
たとえば、グラフで1280 x 720のビデオを実行する場合、VBコードのBufferLenのサイズは常に1,382,400です(ビデオデコーダーの出力ピンが12ビットのNV12形式を示しているため、これは理にかなっています)。C#コードでは、BufferLenのサイズは低い値と高い値の間で大きく異なります。
なぜこれが起こるのか誰かが知っていますか?