mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-14 17:27:18 +00:00
mfplat: Implement MFCreateAMMediaTypeFromMFMediaType.
This commit is contained in:
parent
7f1eef65bf
commit
77a71bc43b
|
@ -3178,8 +3178,22 @@ static void media_type_get_ratio(IMFMediaType *media_type, const GUID *attr, DWO
|
|||
*/
|
||||
HRESULT WINAPI MFCreateAMMediaTypeFromMFMediaType(IMFMediaType *media_type, GUID format, AM_MEDIA_TYPE **am_type)
|
||||
{
|
||||
FIXME("%p, %s, %p stub!\n", media_type, debugstr_mf_guid(&format), am_type);
|
||||
return E_NOTIMPL;
|
||||
AM_MEDIA_TYPE *mt;
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("%p, %s, %p.\n", media_type, debugstr_mf_guid(&format), am_type);
|
||||
|
||||
*am_type = NULL;
|
||||
if (!(mt = CoTaskMemAlloc(sizeof(*mt))))
|
||||
return E_OUTOFMEMORY;
|
||||
if (FAILED(hr = MFInitAMMediaTypeFromMFMediaType(media_type, format, mt)))
|
||||
{
|
||||
CoTaskMemFree(mt);
|
||||
return hr;
|
||||
}
|
||||
|
||||
*am_type = mt;
|
||||
return hr;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
|
@ -7566,23 +7566,22 @@ static void test_MFCreateAMMediaTypeFromMFMediaType(void)
|
|||
ok(hr == S_OK, "Failed to create media type, hr %#lx.\n", hr);
|
||||
|
||||
hr = MFCreateAMMediaTypeFromMFMediaType(media_type, GUID_NULL, &am_type);
|
||||
todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
hr = IMFMediaType_SetGUID(media_type, &MF_MT_MAJOR_TYPE, &MFMediaType_Audio);
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
hr = MFCreateAMMediaTypeFromMFMediaType(media_type, GUID_NULL, &am_type);
|
||||
todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
hr = IMFMediaType_SetGUID(media_type, &MF_MT_MAJOR_TYPE, &MFMediaType_Video);
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
hr = MFCreateAMMediaTypeFromMFMediaType(media_type, GUID_NULL, &am_type);
|
||||
todo_wine ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
ok(hr == MF_E_ATTRIBUTENOTFOUND, "Unexpected hr %#lx.\n", hr);
|
||||
|
||||
hr = IMFMediaType_SetGUID(media_type, &MF_MT_MAJOR_TYPE, &MFMediaType_Audio);
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
hr = IMFMediaType_SetGUID(media_type, &MF_MT_SUBTYPE, &MFAudioFormat_PCM);
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
hr = MFCreateAMMediaTypeFromMFMediaType(media_type, GUID_NULL, &am_type);
|
||||
todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
if (hr != S_OK) goto skip_tests;
|
||||
ok(hr == S_OK, "Unexpected hr %#lx.\n", hr);
|
||||
ok(IsEqualGUID(&am_type->majortype, &MFMediaType_Audio), "got %s.\n", debugstr_guid(&am_type->majortype));
|
||||
ok(IsEqualGUID(&am_type->subtype, &MFAudioFormat_PCM), "got %s.\n", debugstr_guid(&am_type->subtype));
|
||||
ok(IsEqualGUID(&am_type->formattype, &FORMAT_WaveFormatEx), "got %s.\n", debugstr_guid(&am_type->formattype));
|
||||
|
@ -7590,7 +7589,6 @@ static void test_MFCreateAMMediaTypeFromMFMediaType(void)
|
|||
CoTaskMemFree(am_type->pbFormat);
|
||||
CoTaskMemFree(am_type);
|
||||
|
||||
skip_tests:
|
||||
IMFMediaType_Release(media_type);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue