From 31b88c38b0ca95ce75628ea8a815e25df06cbe2d Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Wed, 24 Mar 2021 12:37:21 +0300 Subject: [PATCH] mfplat: Implement GetContiguousLength() for d3d9 buffer. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/mfplat/buffer.c | 9 +-------- dlls/mfplat/tests/mfplat.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/dlls/mfplat/buffer.c b/dlls/mfplat/buffer.c index 3c0f02709ee..abfb3e738d7 100644 --- a/dlls/mfplat/buffer.c +++ b/dlls/mfplat/buffer.c @@ -697,13 +697,6 @@ static HRESULT WINAPI d3d9_surface_buffer_GetScanline0AndPitch(IMF2DBuffer2 *ifa return hr; } -static HRESULT WINAPI d3d9_surface_buffer_GetContiguousLength(IMF2DBuffer2 *iface, DWORD *length) -{ - FIXME("%p, %p.\n", iface, length); - - return E_NOTIMPL; -} - static HRESULT WINAPI d3d9_surface_buffer_Lock2DSize(IMF2DBuffer2 *iface, MF2DBuffer_LockFlags flags, BYTE **scanline0, LONG *pitch, BYTE **buffer_start, DWORD *buffer_length) { @@ -748,7 +741,7 @@ static const IMF2DBuffer2Vtbl d3d9_surface_buffer_vtbl = d3d9_surface_buffer_Unlock2D, d3d9_surface_buffer_GetScanline0AndPitch, memory_2d_buffer_IsContiguousFormat, - d3d9_surface_buffer_GetContiguousLength, + memory_2d_buffer_GetContiguousLength, memory_2d_buffer_ContiguousCopyTo, memory_2d_buffer_ContiguousCopyFrom, d3d9_surface_buffer_Lock2DSize, diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index aa6c0e28da6..b2b595b8fe7 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -5895,6 +5895,10 @@ static void test_MFCreateDXSurfaceBuffer(void) hr = pMFCreateDXSurfaceBuffer(&IID_IDirect3DSurface9, (IUnknown *)backbuffer, FALSE, &buffer); ok(hr == S_OK, "Failed to create a buffer, hr %#x.\n", hr); + check_interface(buffer, &IID_IMF2DBuffer, TRUE); + check_interface(buffer, &IID_IMF2DBuffer2, TRUE); + check_interface(buffer, &IID_IMFGetService, TRUE); + /* Surface is accessible. */ hr = IMFMediaBuffer_QueryInterface(buffer, &IID_IMFGetService, (void **)&gs); ok(hr == S_OK, "Unexpected hr %#x.\n", hr); @@ -5977,6 +5981,12 @@ static void test_MFCreateDXSurfaceBuffer(void) ok(hr == S_OK, "Unexpected hr %#x.\n", hr); ok(!value, "Unexpected return value %d.\n", value); + hr = IMF2DBuffer_GetContiguousLength(_2dbuffer, NULL); + ok(hr == E_POINTER, "Unexpected hr %#x.\n", hr); + hr = IMF2DBuffer_GetContiguousLength(_2dbuffer, &length); + ok(hr == S_OK, "Unexpected hr %#x.\n", hr); + ok(length == max_length, "Unexpected length %u.\n", length); + IMF2DBuffer_Release(_2dbuffer); hr = IMFMediaBuffer_QueryInterface(buffer, &IID_IMF2DBuffer2, (void **)&_2dbuffer2);