1
0
Fork 0
mirror of synced 2025-03-07 03:53:26 +01:00

mfplat/mediatype: Map rcSource to MF_MT_(PAN_SCAN|MINIMUM_DISPLAY)_APERTURE.

This commit is contained in:
Rémi Bernon 2024-02-17 14:04:58 +01:00 committed by Alexandre Julliard
parent 66ea15f13a
commit d0c996b2b4
2 changed files with 14 additions and 19 deletions

View file

@ -3794,6 +3794,20 @@ HRESULT WINAPI MFInitMediaTypeFromVideoInfoHeader2(IMFMediaType *media_type, con
if (vih->bmiHeader.biSizeImage)
mediatype_set_uint32(media_type, &MF_MT_SAMPLE_SIZE, vih->bmiHeader.biSizeImage, &hr);
if (vih->rcSource.left || vih->rcSource.top || vih->rcSource.right || vih->rcSource.bottom)
{
MFVideoArea aperture = {{0}};
aperture.OffsetX.value = vih->rcSource.left;
aperture.OffsetY.value = vih->rcSource.top;
aperture.Area.cx = vih->rcSource.right - vih->rcSource.left;
aperture.Area.cy = vih->rcSource.bottom - vih->rcSource.top;
mediatype_set_uint32(media_type, &MF_MT_PAN_SCAN_ENABLED, 1, &hr);
mediatype_set_blob(media_type, &MF_MT_PAN_SCAN_APERTURE, (BYTE *)&aperture, sizeof(aperture), &hr);
mediatype_set_blob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (BYTE *)&aperture, sizeof(aperture), &hr);
}
return hr;
}

View file

@ -10084,28 +10084,20 @@ static void test_MFInitMediaTypeFromVideoInfoHeader(void)
value32 = 0xdeadbeef;
memset(&aperture, 0xcd, sizeof(aperture));
hr = IMFMediaType_GetBlob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (BYTE *)&aperture, sizeof(aperture), &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == sizeof(aperture), "got %d.\n", value32);
todo_wine
ok(!memcmp(&aperture, &expect_aperture, sizeof(aperture)), "unexpected aperture\n");
value32 = 0xdeadbeef;
hr = IMFMediaType_GetUINT32(media_type, &MF_MT_PAN_SCAN_ENABLED, &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == 1, "got %d.\n", (UINT32)value32);
value32 = 0xdeadbeef;
memset(&aperture, 0xcd, sizeof(aperture));
hr = IMFMediaType_GetBlob(media_type, &MF_MT_PAN_SCAN_APERTURE, (BYTE *)&aperture, sizeof(aperture), &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == sizeof(aperture), "got %d.\n", value32);
todo_wine
ok(!memcmp(&aperture, &expect_aperture, sizeof(aperture)), "unexpected aperture\n");
hr = IMFMediaType_GetItem(media_type, &MF_MT_GEOMETRIC_APERTURE, NULL);
@ -10407,28 +10399,20 @@ static void test_MFInitMediaTypeFromVideoInfoHeader2(void)
value32 = 0xdeadbeef;
memset(&aperture, 0xcd, sizeof(aperture));
hr = IMFMediaType_GetBlob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (BYTE *)&aperture, sizeof(aperture), &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == sizeof(aperture), "got %d.\n", value32);
todo_wine
ok(!memcmp(&aperture, &expect_aperture, sizeof(aperture)), "unexpected aperture\n");
value32 = 0xdeadbeef;
hr = IMFMediaType_GetUINT32(media_type, &MF_MT_PAN_SCAN_ENABLED, &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == 1, "got %d.\n", (UINT32)value32);
value32 = 0xdeadbeef;
memset(&aperture, 0xcd, sizeof(aperture));
hr = IMFMediaType_GetBlob(media_type, &MF_MT_PAN_SCAN_APERTURE, (BYTE *)&aperture, sizeof(aperture), &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == sizeof(aperture), "got %d.\n", value32);
todo_wine
ok(!memcmp(&aperture, &expect_aperture, sizeof(aperture)), "unexpected aperture\n");
hr = IMFMediaType_GetItem(media_type, &MF_MT_GEOMETRIC_APERTURE, NULL);
@ -10706,11 +10690,8 @@ static void test_MFInitMediaTypeFromAMMediaType(void)
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
ok(value32 == 12345678, "got %d.\n", (UINT32)value32);
hr = IMFMediaType_GetBlob(media_type, &MF_MT_MINIMUM_DISPLAY_APERTURE, (BYTE *)&aperture, sizeof(aperture), &value32);
todo_wine
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
todo_wine
ok(value32 == sizeof(aperture), "got %d.\n", value32);
todo_wine
ok(!memcmp(&aperture, &expect_aperture, sizeof(aperture)), "unexpected aperture\n");
vih.bmiHeader.biHeight = 24;