From: Rémi Bernon <rbernon@codeweavers.com> --- dlls/mfplat/mediatype.c | 10 +++++++--- dlls/mfplat/tests/mfplat.c | 4 ---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c index 10a92ad7464..0b49b87d1c2 100644 --- a/dlls/mfplat/mediatype.c +++ b/dlls/mfplat/mediatype.c @@ -3936,12 +3936,16 @@ HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *media_type, con mediatype_set_guid(media_type, &MF_MT_MAJOR_TYPE, &MFMediaType_Video, &hr); mediatype_set_guid(media_type, &MF_MT_SUBTYPE, subtype, &hr); mediatype_set_uint64(media_type, &MF_MT_PIXEL_ASPECT_RATIO, 1, 1, &hr); - mediatype_set_uint64(media_type, &MF_MT_FRAME_SIZE, vih->bmiHeader.biWidth, height, &hr); + if (vih->bmiHeader.biWidth || height) + mediatype_set_uint64(media_type, &MF_MT_FRAME_SIZE, vih->bmiHeader.biWidth, height, &hr); if (SUCCEEDED(mf_get_stride_for_bitmap_info_header(subtype->Data1, &vih->bmiHeader, &stride))) { - mediatype_set_uint32(media_type, &MF_MT_DEFAULT_STRIDE, stride, &hr); - mediatype_set_uint32(media_type, &MF_MT_SAMPLE_SIZE, abs(stride) * height, &hr); + if (stride) + { + mediatype_set_uint32(media_type, &MF_MT_DEFAULT_STRIDE, stride, &hr); + mediatype_set_uint32(media_type, &MF_MT_SAMPLE_SIZE, abs(stride) * height, &hr); + } mediatype_set_uint32(media_type, &MF_MT_FIXED_SIZE_SAMPLES, 1, &hr); mediatype_set_uint32(media_type, &MF_MT_ALL_SAMPLES_INDEPENDENT, 1, &hr); } diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index c9514293c49..8a4f7792f8c 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -12334,7 +12334,6 @@ static void test_MFInitMediaTypeFromVideoInfoHeader(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(IsEqualGUID(&guid, &GUID_NULL), "Unexpected guid %s.\n", debugstr_guid(&guid)); hr = IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_SIZE, &value64); - todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr); vih.bmiHeader.biWidth = 16; @@ -12679,7 +12678,6 @@ static void test_MFInitMediaTypeFromVideoInfoHeader2(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(IsEqualGUID(&guid, &GUID_NULL), "Unexpected guid %s.\n", debugstr_guid(&guid)); hr = IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_SIZE, &value64); - todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr); vih.bmiHeader.biWidth = 16; @@ -13047,7 +13045,6 @@ static void test_MFInitMediaTypeFromMPEG1VideoInfo(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(IsEqualGUID(&guid, &GUID_NULL), "Unexpected guid %s.\n", debugstr_guid(&guid)); hr = IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_SIZE, &value64); - todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr); vih.hdr.bmiHeader.biWidth = 16; @@ -13159,7 +13156,6 @@ static void test_MFInitMediaTypeFromMPEG2VideoInfo(void) ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); ok(IsEqualGUID(&guid, &GUID_NULL), "Unexpected guid %s.\n", debugstr_guid(&guid)); hr = IMFMediaType_GetUINT64(media_type, &MF_MT_FRAME_SIZE, &value64); - todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr); vih.hdr.bmiHeader.biWidth = 16; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10668