https://bugs.winehq.org/show_bug.cgi?id=56698
--- Comment #5 from blubban@gmail.com --- hi yes that's me, yeah, my identity at winehq is a mess
Yeah, not surprising for that commit to break 500 different things. Or rather, expose 500 previously-hidden bugs and missing features in assorted components.
The minimal testcase for this one is simply taking logo1.avi and dropping it into CLSID_FilterGraph::IGraphBuilder::RenderFile().
There's actually three different missing features here.
First up, nobody bothered implementing amt_to_wg_format_video_cinepak() in quartz_parser.c. That's easy to fix, and solves the assertion. https://gitlab.winehq.org/Alcaro/wine/-/commit/acdb6446af524d358aa799b647e99...
Second, GStreamer's AVI demuxer does not set PTS on the video frames in that file (DTS is set, but Wine ignores that), so the resulting IMediaSamples lack timestamps and are presented immediately, looking like the resulting video is just a still image. I don't know how to solve that one cleanly; maybe simply try to read DTS if PTS is absent? Would that break anything else?
Third, CLSID_AVIDec assumes the decompressor backend supports the CLJR, UYVY and YUY2 pixel formats. Our Cinepak decoder (dlls/iccvid/iccvid.c) does not; if you ask it for UYVY, it instead emits RGB16, and the resulting mixup is ... aesthetically unappealing. You can work around that by commenting out the offending formats in dlls/quartz/avidec.c, function avi_decompressor_source_get_media_type, but it's not the correct solution. (Why do we have a custom Cinepak decoder instead of using the one in GStreamer?)
Perhaps some of the above don't affect those games, I didn't check, I just grabbed the video and debugged that. But they'll definitely affect something, sooner or later.