Nikolay Sivov : mfplat: Fix scanline pointer returned with Lock2D().

Alexandre Julliard julliard at winehq.org
Thu Mar 19 16:27:47 CDT 2020


Module: wine
Branch: master
Commit: bd3f27abda15c7f169a53a63d61972053d0e4227
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=bd3f27abda15c7f169a53a63d61972053d0e4227

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Thu Mar 19 15:07:37 2020 +0300

mfplat: Fix scanline pointer returned with Lock2D().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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);
 




More information about the wine-cvs mailing list