Santino Mazza (@tati) commented about dlls/amstream/ddrawstream.c:
+{ + VIDEOINFO *videoinfo; + + 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]); Mmm, looks like it's failing to compile in the pipeline because of this line. I suppose it's because dwBitMasks only has 3 elements and in offsetof I'm trying to get the offset to a fourth element. In my computer it compiles fine, also I got this code from the quartz implementation so this is already being done.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/7715#note_100464