mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-15 02:01:16 +00:00
winegstreamer: Support MFT_SET_TYPE_TEST_ONLY flag in the MF transforms.
This commit is contained in:
parent
d4e6a01fae
commit
ddf7026d4c
|
@ -278,7 +278,6 @@ static void check_mft_set_input_type_required_(int line, IMFTransform *transform
|
|||
hr = IMFTransform_SetInputType(transform, 0, media_type, MFT_SET_TYPE_TEST_ONLY);
|
||||
ok_(__FILE__, line)(hr == S_OK, "SetInputType returned %#lx.\n", hr);
|
||||
ref = IMFMediaType_Release(media_type);
|
||||
todo_wine_if(ref == 1)
|
||||
ok_(__FILE__, line)(!ref, "Release returned %lu\n", ref);
|
||||
}
|
||||
|
||||
|
@ -309,7 +308,6 @@ static void check_mft_set_output_type_required_(int line, IMFTransform *transfor
|
|||
hr = IMFTransform_SetOutputType(transform, 0, media_type, MFT_SET_TYPE_TEST_ONLY);
|
||||
ok_(__FILE__, line)(hr == S_OK, "SetOutputType returned %#lx.\n", hr);
|
||||
ref = IMFMediaType_Release(media_type);
|
||||
todo_wine_if(ref == 1)
|
||||
ok_(__FILE__, line)(!ref, "Release returned %lu\n", ref);
|
||||
}
|
||||
|
||||
|
|
|
@ -401,6 +401,8 @@ static HRESULT WINAPI transform_SetInputType(IMFTransform *iface, DWORD id, IMFM
|
|||
break;
|
||||
if (i == ARRAY_SIZE(input_types))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (!impl->input_type && FAILED(hr = MFCreateMediaType(&impl->input_type)))
|
||||
return hr;
|
||||
|
@ -444,6 +446,8 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
|
|||
break;
|
||||
if (i == ARRAY_SIZE(output_types))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (!impl->output_type && FAILED(hr = MFCreateMediaType(&impl->output_type)))
|
||||
return hr;
|
||||
|
|
|
@ -419,6 +419,8 @@ static HRESULT WINAPI transform_SetInputType(IMFTransform *iface, DWORD id, IMFM
|
|||
break;
|
||||
if (i == ARRAY_SIZE(h264_decoder_input_types))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (decoder->output_type)
|
||||
{
|
||||
|
@ -469,6 +471,8 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
|
|||
|| (frame_size >> 32) != decoder->wg_format.u.video.width
|
||||
|| (UINT32)frame_size != decoder->wg_format.u.video.height)
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (decoder->output_type)
|
||||
IMFMediaType_Release(decoder->output_type);
|
||||
|
|
|
@ -383,6 +383,8 @@ static HRESULT WINAPI transform_SetInputType(IMFTransform *iface, DWORD id, IMFM
|
|||
|
||||
if (FAILED(hr = check_media_type(type)))
|
||||
return hr;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (!impl->input_type && FAILED(hr = MFCreateMediaType(&impl->input_type)))
|
||||
return hr;
|
||||
|
@ -414,6 +416,8 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
|
|||
|
||||
if (FAILED(hr = check_media_type(type)))
|
||||
return hr;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (!impl->output_type && FAILED(hr = MFCreateMediaType(&impl->output_type)))
|
||||
return hr;
|
||||
|
|
|
@ -376,6 +376,8 @@ static HRESULT WINAPI video_processor_SetInputType(IMFTransform *iface, DWORD id
|
|||
break;
|
||||
if (i == ARRAY_SIZE(input_types))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (impl->input_type)
|
||||
IMFMediaType_Release(impl->input_type);
|
||||
|
@ -413,6 +415,8 @@ static HRESULT WINAPI video_processor_SetOutputType(IMFTransform *iface, DWORD i
|
|||
break;
|
||||
if (i == ARRAY_SIZE(output_types))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (impl->output_type)
|
||||
IMFMediaType_Release(impl->output_type);
|
||||
|
|
|
@ -387,6 +387,8 @@ static HRESULT WINAPI transform_SetInputType(IMFTransform *iface, DWORD id, IMFM
|
|||
if (FAILED(IMFMediaType_GetItemType(type, &MF_MT_AUDIO_NUM_CHANNELS, &item_type)) ||
|
||||
item_type != MF_ATTRIBUTE_UINT32)
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (!decoder->input_type && FAILED(hr = MFCreateMediaType(&decoder->input_type)))
|
||||
return hr;
|
||||
|
@ -443,9 +445,6 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
|
|||
return hr;
|
||||
}
|
||||
|
||||
if (FAILED(IMFMediaType_SetUINT32(decoder->input_type, &MF_MT_AUDIO_BITS_PER_SAMPLE, sample_size)))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
|
||||
if (FAILED(IMFMediaType_GetItemType(type, &MF_MT_AUDIO_AVG_BYTES_PER_SECOND, &item_type)) ||
|
||||
item_type != MF_ATTRIBUTE_UINT32)
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
|
@ -461,6 +460,11 @@ static HRESULT WINAPI transform_SetOutputType(IMFTransform *iface, DWORD id, IMF
|
|||
if (FAILED(IMFMediaType_GetItemType(type, &MF_MT_AUDIO_BLOCK_ALIGNMENT, &item_type)) ||
|
||||
item_type != MF_ATTRIBUTE_UINT32)
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
if (flags & MFT_SET_TYPE_TEST_ONLY)
|
||||
return S_OK;
|
||||
|
||||
if (FAILED(IMFMediaType_SetUINT32(decoder->input_type, &MF_MT_AUDIO_BITS_PER_SAMPLE, sample_size)))
|
||||
return MF_E_INVALIDMEDIATYPE;
|
||||
|
||||
if (!decoder->output_type && FAILED(hr = MFCreateMediaType(&decoder->output_type)))
|
||||
return hr;
|
||||
|
|
Loading…
Reference in a new issue