mfreadwrite: Accept new media type only when format data are equal.
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:
parent
aef6a2343c
commit
ac39b313b6
|
@ -1578,7 +1578,7 @@ static HRESULT source_reader_set_compatible_media_type(struct source_reader *rea
|
|||
return MF_E_INVALIDMEDIATYPE;
|
||||
|
||||
/* No need for a decoder or type change. */
|
||||
if (flags & MF_MEDIATYPE_EQUAL_FORMAT_TYPES)
|
||||
if (flags & MF_MEDIATYPE_EQUAL_FORMAT_DATA)
|
||||
return S_OK;
|
||||
|
||||
if (FAILED(hr = source_reader_get_source_type_handler(reader, index, &type_handler)))
|
||||
|
@ -1586,7 +1586,7 @@ static HRESULT source_reader_set_compatible_media_type(struct source_reader *rea
|
|||
|
||||
while (!type_set && IMFMediaTypeHandler_GetMediaTypeByIndex(type_handler, i++, &native_type) == S_OK)
|
||||
{
|
||||
static const DWORD compare_flags = MF_MEDIATYPE_EQUAL_MAJOR_TYPES | MF_MEDIATYPE_EQUAL_FORMAT_TYPES;
|
||||
static const DWORD compare_flags = MF_MEDIATYPE_EQUAL_MAJOR_TYPES | MF_MEDIATYPE_EQUAL_FORMAT_DATA;
|
||||
|
||||
if (SUCCEEDED(IMFMediaType_IsEqual(native_type, type, &flags)) && (flags & compare_flags) == compare_flags)
|
||||
{
|
||||
|
|
|
@ -1062,7 +1062,6 @@ static void test_source_reader_from_media_source(void)
|
|||
ok(hr == S_OK, "Failed to set attribute, hr %#x.\n", hr);
|
||||
|
||||
hr = IMFSourceReader_SetCurrentMediaType(reader, 0, NULL, media_type);
|
||||
todo_wine
|
||||
ok(hr == MF_E_TOPO_CODEC_NOT_FOUND, "Unexpected success setting current media type, hr %#x.\n", hr);
|
||||
|
||||
IMFMediaType_Release(media_type);
|
||||
|
|
Loading…
Reference in New Issue