我有一个特定的 FLV (VP6/LAME) 文件,它是 400 x 171 像素,由BITMAPINFOHEADER
结构报告并由许多 FLV 元数据编辑器(如 RichFLV)验证。
但是,当使用ISampleGrabber
生成的样本(每像素 3 个字节)从中获取样本时,只有 204,000 字节(400 x 170 x 3),而不是我期望的 205,200 字节(400 x 171 x 3)。
当我试图仅将 400 x 170 的数据推送到 400 x 171Bitmap
对象的构造函数中时,它变得相当不安并导致 A/V 异常。
我可以破解它来检测“接近但不完全符合预期”的样本大小,但我真的很想知道 1px 的垂直高度在这个过程中去了哪里。我的猜测是一个狡猾的过滤器,它不支持宽度/高度的奇数值并且正在删除它,但我不确定检查这个的简单方法。
有人知道会发生什么以及如何验证吗?
(PS:我不是一个好的C/C++开发者,所以请不要涉及过度使用它的解决方案)