amstream: Allow AMMSF_ADDDEFAULTRENDERER only with MSPID_PrimaryAudio.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
c6d436f7fd
commit
3e6eaaa2c5
|
@ -305,26 +305,21 @@ static HRESULT WINAPI multimedia_stream_AddMediaStream(IAMMultiMediaStream *ifac
|
||||||
|
|
||||||
if (dwFlags & AMMSF_ADDDEFAULTRENDERER)
|
if (dwFlags & AMMSF_ADDDEFAULTRENDERER)
|
||||||
{
|
{
|
||||||
if (IsEqualGUID(PurposeId, &MSPID_PrimaryVideo))
|
IBaseFilter *dsound_render;
|
||||||
|
|
||||||
|
if (!IsEqualGUID(PurposeId, &MSPID_PrimaryAudio))
|
||||||
{
|
{
|
||||||
/* Default renderer not supported by video stream */
|
WARN("AMMSF_ADDDEFAULTRENDERER requested with id %s, returning MS_E_PURPOSEID.\n", debugstr_guid(PurposeId));
|
||||||
return MS_E_PURPOSEID;
|
return MS_E_PURPOSEID;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (SUCCEEDED(hr = CoCreateInstance(&CLSID_DSoundRender, NULL,
|
||||||
|
CLSCTX_INPROC_SERVER, &IID_IBaseFilter, (void **)&dsound_render)))
|
||||||
{
|
{
|
||||||
IBaseFilter* dsoundrender_filter;
|
hr = IGraphBuilder_AddFilter(This->pFilterGraph, dsound_render, NULL);
|
||||||
|
IBaseFilter_Release(dsound_render);
|
||||||
/* Create the default renderer for audio */
|
|
||||||
hr = CoCreateInstance(&CLSID_DSoundRender, NULL, CLSCTX_INPROC_SERVER, &IID_IBaseFilter, (LPVOID*)&dsoundrender_filter);
|
|
||||||
if (SUCCEEDED(hr))
|
|
||||||
{
|
|
||||||
hr = IGraphBuilder_AddFilter(This->pFilterGraph, dsoundrender_filter, NULL);
|
|
||||||
IBaseFilter_Release(dsoundrender_filter);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* No media stream created when the default renderer is used */
|
|
||||||
return hr;
|
|
||||||
}
|
}
|
||||||
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsEqualGUID(PurposeId, &MSPID_PrimaryVideo))
|
if (IsEqualGUID(PurposeId, &MSPID_PrimaryVideo))
|
||||||
|
|
|
@ -840,6 +840,9 @@ static void test_add_stream(void)
|
||||||
IGraphBuilder_Release(graph);
|
IGraphBuilder_Release(graph);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hr = IAMMultiMediaStream_AddMediaStream(mmstream, NULL, &test_mspid,
|
||||||
|
AMMSF_ADDDEFAULTRENDERER, NULL);
|
||||||
|
ok(hr == MS_E_PURPOSEID, "Got hr %#x.\n", hr);
|
||||||
hr = IAMMultiMediaStream_AddMediaStream(mmstream, NULL, &test_mspid,
|
hr = IAMMultiMediaStream_AddMediaStream(mmstream, NULL, &test_mspid,
|
||||||
AMMSF_ADDDEFAULTRENDERER, &audio_stream);
|
AMMSF_ADDDEFAULTRENDERER, &audio_stream);
|
||||||
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
|
todo_wine ok(hr == E_INVALIDARG, "Got hr %#x.\n", hr);
|
||||||
|
|
Loading…
Reference in New Issue