代码之家  ›  专栏  ›  技术社区  ›  Greg Beech

DirectShow:BitmapInfoHeader和IsampleGrabber返回不同大小

  •  0
  • Greg Beech  · 技术社区  · 16 年前

    我有一个特殊的flv(vp6/lame)文件,是400 x 171像素,如 BITMAPINFOHEADER 结构和由许多flv元数据编辑器(如richflv)验证。

    但是,当使用 ISampleGrabber 得到的样本(以每像素3字节为单位)仅为204000字节(400 x 170 x 3),而不是如我所料的205200字节(400 x 171 x 3)。

    当我试图将价值400 x 170的数据放入400 x 171中时 Bitmap 对象的构造函数,它变得相当混乱并导致A/V异常。

    我可以利用它来检测“接近但不完全如预期”的样本大小,但我真的想知道在这个过程中1倍垂直高度的位置。我的猜测是一个不支持奇数的宽度/高度过滤器,正在删除它,但我不确定是否有一个简单的方法来检查它。

    有人知道会发生什么以及如何验证吗?

    (PS:我不是一个好的C/C++开发者,所以请不要过度使用它的解决方案)

    1 回复  |  直到 15 年前
        1
  •  0
  •   Jeremiah Morrill    15 年前

    我的最佳猜测是一个道奇/四轮马车的FLV过滤器。当你尝试不同的flv过滤器时会发生什么?其他FLV文件是否报告不正确的视频尺寸?