Just some tiny fixes I found while creating !4449. No functional changes intended.
Wine's code review process, and commit history, is a lot more comprehensive than anything else I've seen. This means I can't just write code, submit patch, and call it a day; but it also means the codebase is clean and easy to work with, so fixing bugs and missing pieces is relatively straightforward. While this does increase the total time needed on my side (especially splitting commits), it's easy (though somewhat boring) work, so in total, it's a win. And splitting makes it easier for the maintainers - you have more to do than me, so if it saves your time at the expense of mine, I have no right to complain.
Thank you for your patience with my prior MRs. 8.2/10 would contribute again (I've seen a few other games with broken videos that I suspect have still-unfixed causes)
-- v2: winegstreamer: Delete duplicate WMT_ON check. winegstreamer: Fix a memory leak in stream_props_GetMediaType.
From: Alfred Agrell floating@muncher.se
--- dlls/winegstreamer/quartz_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/winegstreamer/quartz_parser.c b/dlls/winegstreamer/quartz_parser.c index fdcea1017a9..44e13d05c2a 100644 --- a/dlls/winegstreamer/quartz_parser.c +++ b/dlls/winegstreamer/quartz_parser.c @@ -594,7 +594,7 @@ static bool amt_from_wg_format_video(AM_MEDIA_TYPE *mt, const struct wg_format *
static bool amt_from_wg_format_video_cinepak(AM_MEDIA_TYPE *mt, const struct wg_format *format) { - VIDEOINFO *video_format; + VIDEOINFOHEADER *video_format; uint32_t frame_time;
if (!(video_format = CoTaskMemAlloc(sizeof(*video_format)))) @@ -605,7 +605,7 @@ static bool amt_from_wg_format_video_cinepak(AM_MEDIA_TYPE *mt, const struct wg_ mt->bTemporalCompression = TRUE; mt->lSampleSize = 1; mt->formattype = FORMAT_VideoInfo; - mt->cbFormat = sizeof(VIDEOINFOHEADER); + mt->cbFormat = sizeof(*video_format); mt->pbFormat = (BYTE *)video_format;
memset(video_format, 0, sizeof(*video_format));
From: Alfred Agrell floating@muncher.se
--- dlls/winegstreamer/wm_reader.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/dlls/winegstreamer/wm_reader.c b/dlls/winegstreamer/wm_reader.c index 4751cc9da2e..6bb73e9a47b 100644 --- a/dlls/winegstreamer/wm_reader.c +++ b/dlls/winegstreamer/wm_reader.c @@ -555,16 +555,18 @@ static HRESULT WINAPI stream_props_GetMediaType(IWMMediaProps *iface, WM_MEDIA_T return E_OUTOFMEMORY;
*size = sizeof(stream_mt) + stream_mt.cbFormat; - if (!mt) - return S_OK; - if (req_size < *size) - return ASF_E_BUFFERTOOSMALL; + if (mt && req_size >= *size) + { + strmbase_dump_media_type(&stream_mt);
- strmbase_dump_media_type(&stream_mt); + memcpy(mt, &stream_mt, sizeof(*mt)); + memcpy(mt + 1, stream_mt.pbFormat, stream_mt.cbFormat); + mt->pbFormat = (BYTE *)(mt + 1); + } + FreeMediaType(&stream_mt);
- memcpy(mt, &stream_mt, sizeof(*mt)); - memcpy(mt + 1, stream_mt.pbFormat, stream_mt.cbFormat); - mt->pbFormat = (BYTE *)(mt + 1); + if (mt && req_size < *size) + return ASF_E_BUFFERTOOSMALL; return S_OK; }
From: Alfred Agrell floating@muncher.se
--- dlls/winegstreamer/wm_reader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winegstreamer/wm_reader.c b/dlls/winegstreamer/wm_reader.c index 6bb73e9a47b..e3a2bfc343b 100644 --- a/dlls/winegstreamer/wm_reader.c +++ b/dlls/winegstreamer/wm_reader.c @@ -2462,7 +2462,7 @@ static HRESULT WINAPI reader_SetStreamsSelected(IWMSyncReader2 *iface, TRACE("Disabling stream %u.\n", stream_numbers[i]); wg_parser_stream_disable(stream->wg_stream); } - else if (selections[i] == WMT_ON) + else { if (selections[i] != WMT_ON) FIXME("Ignoring selection %#x for stream %u; treating as enabled.\n",
This merge request was approved by Zebediah Figura.
Thank you for your patience with my prior MRs. 8.2/10 would contribute again (I've seen a few other games with broken videos that I suspect have still-unfixed causes)
Thank you for your patience with the review process :-)