mfplat: Fix buffer reading with IMF2DBuffer::Lock().

Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Giovanni Mascellani 2022-03-15 14:29:18 +01:00 committed by Alexandre Julliard
parent 8adb6d80d5
commit 135bdc21e8
2 changed files with 4 additions and 1 deletions

View file

@ -311,6 +311,10 @@ static HRESULT WINAPI memory_1d_2d_buffer_Lock(IMFMediaBuffer *iface, BYTE **dat
{
if (!(buffer->_2d.linear_buffer = malloc(ALIGN_SIZE(buffer->_2d.plane_size, MF_64_BYTE_ALIGNMENT))))
hr = E_OUTOFMEMORY;
if (SUCCEEDED(hr))
copy_image(buffer, buffer->_2d.linear_buffer, buffer->_2d.width, buffer->data, buffer->_2d.pitch,
buffer->_2d.width, buffer->_2d.height);
}
if (SUCCEEDED(hr))

View file

@ -5872,7 +5872,6 @@ static void test_MFCreate2DMediaBuffer(void)
hr = IMFMediaBuffer_Lock(buffer, &data, NULL, NULL);
ok(hr == S_OK, "Failed to lock buffer, hr %#lx.\n", hr);
todo_wine
ok(memcmp(data, eight_bbs, sizeof(eight_bbs)) == 0, "Invalid data instead of 0xbb.\n");
hr = IMFMediaBuffer_Unlock(buffer);