Anton Baskanov (@baskanov) commented about dlls/amstream/ddrawstream.c:
+ videoinfo = (VIDEOINFO*)mt->pbFormat; + videoinfo->bmiHeader.biWidth = format->dwWidth; + videoinfo->bmiHeader.biHeight = format->dwHeight; + videoinfo->bmiHeader.biBitCount = format->ddpfPixelFormat.dwRGBBitCount; + videoinfo->bmiHeader.biCompression = BI_RGB; + videoinfo->bmiHeader.biSizeImage = ALIGN(format->dwWidth * format->dwHeight * (format->ddpfPixelFormat.dwRGBBitCount / 8), 4); + + if (format->ddpfPixelFormat.dwRGBBitCount == 16 && format->ddpfPixelFormat.dwRBitMask == 0x7c00) + mt->subtype = MEDIASUBTYPE_RGB555; + else if (format->ddpfPixelFormat.dwRGBBitCount == 16 && format->ddpfPixelFormat.dwRBitMask == 0xf800) + { + mt->subtype = MEDIASUBTYPE_RGB565; + mt->cbFormat = offsetof(VIDEOINFO, dwBitMasks[3]); + mt->pbFormat = CoTaskMemRealloc(mt->pbFormat, mt->cbFormat); + videoinfo = (VIDEOINFO*)mt->pbFormat; + videoinfo->dwBitMasks[iRED] = 0xf800; `biCompression` has to be `BI_BITFIELDS` for RGB565:
videoinfo->bmiHeader.biCompression = BI_BITFIELDS;
videoinfo->dwBitMasks[iRED] = 0xf800;
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7715#note_100534