Module: wine Branch: master Commit: bd3f27abda15c7f169a53a63d61972053d0e4227 URL: https://source.winehq.org/git/wine.git/?a=commit;h=bd3f27abda15c7f169a53a63d...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Mar 19 15:07:37 2020 +0300
mfplat: Fix scanline pointer returned with Lock2D().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/mfplat/buffer.c | 2 +- dlls/mfplat/tests/mfplat.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/dlls/mfplat/buffer.c b/dlls/mfplat/buffer.c index 71bae4c42f..7206cf6d5a 100644 --- a/dlls/mfplat/buffer.c +++ b/dlls/mfplat/buffer.c @@ -340,7 +340,7 @@ static HRESULT memory_2d_buffer_lock(struct memory_buffer *buffer, BYTE **scanli else { ++buffer->_2d.locks; - *scanline0 = buffer->data; + *scanline0 = buffer->_2d.scanline0; *pitch = buffer->_2d.pitch; if (buffer_start) *buffer_start = buffer->data; diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c index 8e9bf8102a..497c451f72 100644 --- a/dlls/mfplat/tests/mfplat.c +++ b/dlls/mfplat/tests/mfplat.c @@ -4694,7 +4694,7 @@ static void test_MFCreate2DMediaBuffer(void) IMF2DBuffer2 *_2dbuffer2; IMF2DBuffer *_2dbuffer; IMFMediaBuffer *buffer; - int i, pitch; + int i, pitch, pitch2; HRESULT hr; BOOL ret;
@@ -4898,6 +4898,12 @@ static void test_MFCreate2DMediaBuffer(void)
hr = IMF2DBuffer_Lock2D(_2dbuffer, &data, &pitch); ok(hr == S_OK, "Failed to lock buffer, hr %#x.\n", hr); + + hr = IMF2DBuffer_GetScanline0AndPitch(_2dbuffer, &data2, &pitch2); + ok(hr == S_OK, "Failed to get scanline, hr %#x.\n", hr); + ok(data2 == data, "Unexpected data pointer.\n"); + ok(pitch == pitch2, "Unexpected pitch.\n"); + hr = IMF2DBuffer_Unlock2D(_2dbuffer); ok(hr == S_OK, "Failed to unlock buffer, hr %#x.\n", hr);