Prior to 98d209752cee9abd8dc31dfe1f28811066b0b83f, the base type format wasn't inserted twice in stream format description. An application (Idol Showdown) fails to play its intro video when the base type format is duplicated.
Signed-off-by: Eric Pouech epouech@codeweavers.com
From: Eric Pouech epouech@codeweavers.com
Prior to 98d209752cee9abd8dc31dfe1f28811066b0b83f, the base type format wasn't inserted twice in stream format description. An application (Idol Showdown) fails to play its intro video when the base type format is duplicated.
Signed-off-by: Eric Pouech epouech@codeweavers.com --- dlls/winegstreamer/media_source.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c index 63147d64b32..bffe4e5ae6a 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c @@ -914,6 +914,7 @@ static HRESULT media_stream_init_desc(struct media_stream *stream) { struct wg_format new_format = format; IMFMediaType *new_type; + GUID new_subtype;
new_format.u.video.format = video_formats[i];
@@ -922,6 +923,12 @@ static HRESULT media_stream_init_desc(struct media_stream *stream) hr = E_OUTOFMEMORY; goto done; } + if (SUCCEEDED(IMFMediaType_GetGUID(new_type, &MF_MT_SUBTYPE, &new_subtype)) && + IsEqualGUID(&base_subtype, &new_subtype)) + { + IMFMediaType_Release(new_type); + continue; + } stream_types[type_count++] = new_type;
if (video_formats[i] == WG_VIDEO_FORMAT_I420)