Elizabeth Figura (@zfigura) commented about dlls/winegstreamer/wg_transform.c:
if (IsEqualGUID(¶ms->output_type.major, &MFMediaType_Video)) transform->output_info = params->output_type.u.video->videoInfo;
+ /* update the video apertures to make sure GStreamer has a consistent input/output frame size */ + if (!strcmp(input_mime, "video/x-raw") && !strcmp(output_mime, "video/x-raw")) + update_video_aperture(&transform->input_info, &transform->output_info); + + if (IsEqualGUID(¶ms->input_type.major, &MFMediaType_Video)) + set_video_caps_aperture(transform->input_caps, &transform->input_info); + if (IsEqualGUID(¶ms->output_type.major, &MFMediaType_Video)) + set_video_caps_aperture(transform->output_caps, &transform->output_info);
If we are going to change the video aperture (and see my other comment), wouldn't it be simpler to do so *before* calling caps_from_media_type()? In fact, I'd go as far as to do it on the PE side. From experience I find that simplifying the Unix portion, and reducing fixups from that part, leads to an internal API that's easier to work with. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5972#note_74922