BITMAPINFOHEADER
構造によって報告され、RichFLV などの多くの FLV メタデータ エディターによって検証された400 x 171 ピクセルの特定の FLV (VP6/LAME) ファイルがあります。
ただし、ISampleGrabber
結果のサンプル (ピクセルあたり 3 バイト) を使用してそこからサンプルを取得すると、予想どおり 205,200 バイト (400 x 171 x 3) ではなく、204,000 バイト (400 x 170 x 3) しかありません。
400 x 170 相当のデータのみを 400 x 171 オブジェクトのコンストラクターに押し込もうとしていると、Bitmap
かなり動揺して A/V 例外が発生します。
これをハックして、「近いが期待どおりではない」サンプルサイズを検出できますが、その過程で垂直方向の高さの 1 ピクセルがどこに移動したかを知りたいです。私の推測では、幅/高さの奇数値をサポートせず、それを削除している危険なフィルターですが、これを確認する簡単な方法がわかりません。
何が起こっているのか、それを確認する方法を知っている人はいますか?
(PS: 私は C/C++ 開発者ではないので、過度の使用を伴う解決策は避けてください)