From: R��mi Bernon rbernon@codeweavers.com
This moves the todo to another test but that's because Wine is missing the mfplat transform registration for the MP3 decoder. --- dlls/mf/tests/mf.c | 6 +++--- dlls/mf/topology_loader.c | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 4e928b13816..f5d110174b0 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -2257,7 +2257,7 @@ static void test_topology_loader(void) .input_type = &audio_mp3_44100, .output_type = &audio_pcm_44100, .sink_method = MF_CONNECT_ALLOW_CONVERTER, .source_method = -1, .current_input = &audio_mp3_44100, .expected_result = MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION, - .flags = LOADER_NEEDS_VIDEO_PROCESSOR, + .flags = LOADER_NEEDS_VIDEO_PROCESSOR | LOADER_TODO, }, { /* MP3 -> PCM */ @@ -2271,13 +2271,13 @@ static void test_topology_loader(void) /* I420 -> RGB32, Color Convert media type */ .input_type = &video_i420_1280, .output_type = &video_color_convert_1280_rgb32, .sink_method = -1, .source_method = -1, .expected_result = MF_E_TOPO_CODEC_NOT_FOUND, - .flags = LOADER_NEEDS_VIDEO_PROCESSOR | LOADER_EXPECTED_CONVERTER | LOADER_TODO, + .flags = LOADER_NEEDS_VIDEO_PROCESSOR | LOADER_EXPECTED_CONVERTER, }, { /* I420 -> RGB32, Video Processor media type */ .input_type = &video_i420_1280, .output_type = &video_video_processor_1280_rgb32, .sink_method = -1, .source_method = -1, .expected_result = S_OK, - .flags = LOADER_NEEDS_VIDEO_PROCESSOR | LOADER_EXPECTED_CONVERTER | LOADER_TODO, + .flags = LOADER_NEEDS_VIDEO_PROCESSOR | LOADER_EXPECTED_CONVERTER, }, { /* I420 -> RGB32, Video Processor media type without frame size */ diff --git a/dlls/mf/topology_loader.c b/dlls/mf/topology_loader.c index 68ac7121a97..f7d1007971d 100644 --- a/dlls/mf/topology_loader.c +++ b/dlls/mf/topology_loader.c @@ -250,7 +250,7 @@ static HRESULT topology_branch_connect_indirect(IMFTopology *topology, MF_CONNEC if (IsEqualGUID(&input_info.guidMajorType, &MFMediaType_Audio)) category = decoder ? MFT_CATEGORY_AUDIO_DECODER : MFT_CATEGORY_AUDIO_EFFECT; else if (IsEqualGUID(&input_info.guidMajorType, &MFMediaType_Video)) - category = decoder ? MFT_CATEGORY_VIDEO_DECODER : MFT_CATEGORY_VIDEO_EFFECT; + category = decoder ? MFT_CATEGORY_VIDEO_DECODER : MFT_CATEGORY_VIDEO_PROCESSOR; else return MF_E_INVALIDMEDIATYPE;
@@ -293,6 +293,8 @@ static HRESULT topology_branch_connect_indirect(IMFTopology *topology, MF_CONNEC IMFActivate_Release(activates[i]); CoTaskMemFree(activates);
+ if (!count) + return MF_E_TOPO_CODEC_NOT_FOUND; return hr; }