RGB frames typically have reverse order of rows, bottom-to-top. The rule is:
- RGB Pixel Formats
BITMAPINFOHEADER::biHeight
> 0 - bottom-to-top rowsBITMAPINFOHEADER::biHeight
< 0 - top-to-bottom rows
- YUV Pixel Formats
- regardless from
BITMAPINFOHEADER::biHeight
sign (both positive and negative are valid) - top-to-bottom rows
- regardless from
While both positive and negative biHeight
values are valid, negative are less spread and supported. Many filters will just reject formats with negative values.