У меня есть конкретный файл 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) как I ожидал.
Поскольку я пытаюсь поместить данные только 400 x 170 в конструктор объекта 400 x 171 Bitmap
, это довольно расстраивает и вызывает исключения A / V.
Я мог бы взломать это, чтобы определить «близкие, но не совсем ожидаемые» размеры выборки, но мне бы очень хотелось знать, куда в процессе пошла 1px высоты по вертикали. Я предполагаю, что хитрый фильтр, который не поддерживает нечетные значения для ширины / высоты и удаляет его, но я не уверен в простом способе проверить это.
Кто-нибудь знает, что может происходить и как это проверить?
(PS: я не хороший разработчик C / C ++, поэтому, пожалуйста, не предлагайте решений, связанных с его чрезмерным использованием)