Anton Baskanov (@baskanov) commented about dlls/winegstreamer/quartz_parser.c:
return hr; }
static HRESULT avi_splitter_source_get_media_type(struct parser_source *pin, unsigned int index, AM_MEDIA_TYPE *mt) { - struct wg_format format; + HRESULT hr;
if (index > 0) return VFW_S_NO_MORE_ITEMS; - wg_parser_stream_get_current_format(pin->wg_stream, &format); - if (!amt_from_wg_format(mt, &format, false)) - return E_OUTOFMEMORY; - return S_OK; + if (SUCCEEDED(hr = wg_parser_stream_get_current_type_quartz(pin->wg_stream, mt)))
Compressed media types returned by `wg_parser_stream_get_current_type_quartz()` have `biSizeImage` set to 0. This will cause `IMemAllocator::Commit()` to fail. `amt_from_wg_format()` estimated `biSizeImage` at least for Cinepak, so we should probably do something similar here. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5615#note_70755