Yuxuan Shui (@yshui) commented about dlls/winegstreamer/wm_reader.c:
- hr = NS_E_INVALID_OUTPUT_FORMAT; - else if (pref_format.u.video.width != format.u.video.width) - hr = NS_E_INVALID_OUTPUT_FORMAT; - else if (abs(pref_format.u.video.height) != abs(format.u.video.height)) - hr = NS_E_INVALID_OUTPUT_FORMAT; - break; + if (IsEqualGUID(&stream->format.majortype, &MEDIATYPE_Video)) + { + /* Reject formats that will resize the video output - decoder might accept them */ + WORD current_width = 0, current_height = 0; + WORD incoming_width = 0, incoming_height = 0; + if (get_media_type_extent(&stream->format, ¤t_width, ¤t_height) && + get_media_type_extent(mt, &incoming_width, &incoming_height) && + (incoming_width != current_width || incoming_height != current_height)) + { + hr = NS_E_INVALID_OUTPUT_FORMAT; TODO: should this check be done on the DMO level instead? I need to look for/write test cases to make sure if native DMOs reject these kinds of formats.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9567#note_123436