Rémi Bernon (@rbernon) commented about dlls/winegstreamer/video_decoder.c:
goto done; if (!output_type || FAILED(IMFMediaType_GetUINT32(output_type, &MF_MT_DEFAULT_STRIDE, &value)))
- { hr = MFGetStrideForBitmapInfoHeader(subtype->Data1, width, (LONG *)&value);
value = abs((INT32)value);
- } if (FAILED(hr) || FAILED(hr = IMFVideoMediaType_SetUINT32(video_type, &MF_MT_DEFAULT_STRIDE, value))) goto done;
```suggestion:-6+0 /* WMV decoder uses positive stride by default, and enforces it for YUV formats, accepts negative stride for RGB if specified */ if (FAILED(hr = MFGetStrideForBitmapInfoHeader(subtype->Data1, width, &default_stride))) goto done; if (!output_type || FAILED(IMFMediaType_GetUINT32(output_type, &MF_MT_DEFAULT_STRIDE, (UINT32 *)&stride))) stride = abs(default_stride); else if (default_stride > 0) stride = abs(stride); if (FAILED(hr) || FAILED(hr = IMFVideoMediaType_SetUINT32(video_type, &MF_MT_DEFAULT_STRIDE, stride))) goto done; ```
With `LONG default_stride, stride;` declared above, should pass the tests (removing the need for the "WMV1 -> YUV (negative stride)" test todo).