From: Giovanni Mascellani gmascellani@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com ---
Supersedes 226745.
dlls/mfplat/mediatype.c | 8 ++++---- dlls/mfplat/tests/mfplat.c | 5 +++++ 2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c index a63ae6eafaf..71d55e2d232 100644 --- a/dlls/mfplat/mediatype.c +++ b/dlls/mfplat/mediatype.c @@ -2755,10 +2755,10 @@ HRESULT WINAPI MFGetPlaneSize(DWORD fourcc, DWORD width, DWORD height, DWORD *si memcpy(&subtype, &MFVideoFormat_Base, sizeof(subtype)); subtype.Data1 = fourcc;
- if (!(format = mf_get_video_format(&subtype))) - return MF_E_INVALIDMEDIATYPE; - - stride = mf_get_stride_for_format(format, width); + if ((format = mf_get_video_format(&subtype))) + stride = mf_get_stride_for_format(format, width); + else + stride = 0;
switch (fourcc) { diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 50f4e059205..c013b7b5c23 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -4254,6 +4254,11 @@ static void test_MFGetPlaneSize(void) return; }
+ size = 1; + hr = pMFGetPlaneSize(0xdeadbeef, 64, 64, &size); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + ok(size == 0, "Unexpected size %u.\n", size); + for (i = 0; i < ARRAY_SIZE(image_size_tests); ++i) { const struct image_size_test *ptr = &image_size_tests[i];