amstream: Add graph to stream in IMediaStreamFilter::AddMediaStream().
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com> Signed-off-by: Zebediah Figura <z.figura12@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
2d38551dd9
commit
388c53160d
|
@ -497,6 +497,10 @@ static HRESULT WINAPI filter_AddMediaStream(IMediaStreamFilter *iface, IAMMediaS
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
hr = IAMMediaStream_JoinFilterGraph(pAMMediaStream, This->graph);
|
||||||
|
if (FAILED(hr))
|
||||||
|
return hr;
|
||||||
|
|
||||||
This->streams[This->nb_streams] = pAMMediaStream;
|
This->streams[This->nb_streams] = pAMMediaStream;
|
||||||
This->nb_streams++;
|
This->nb_streams++;
|
||||||
|
|
||||||
|
|
|
@ -686,6 +686,7 @@ static void test_add_stream(void)
|
||||||
IEnumFilters *enum_filters;
|
IEnumFilters *enum_filters;
|
||||||
IBaseFilter *filters[3];
|
IBaseFilter *filters[3];
|
||||||
IGraphBuilder *graph;
|
IGraphBuilder *graph;
|
||||||
|
FILTER_INFO info;
|
||||||
ULONG ref, count;
|
ULONG ref, count;
|
||||||
CLSID clsid;
|
CLSID clsid;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
@ -755,13 +756,18 @@ static void test_add_stream(void)
|
||||||
hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)&teststream, &IID_IUnknown, 0, &stream);
|
hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)&teststream, &IID_IUnknown, 0, &stream);
|
||||||
ok(hr == MS_E_PURPOSEID, "Got hr %#x.\n", hr);
|
ok(hr == MS_E_PURPOSEID, "Got hr %#x.\n", hr);
|
||||||
|
|
||||||
|
hr = IMediaStreamFilter_QueryFilterInfo(stream_filter, &info);
|
||||||
|
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||||
|
|
||||||
hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)&teststream, &test_mspid, 0, &stream);
|
hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)&teststream, &test_mspid, 0, &stream);
|
||||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||||
ok(stream == (IMediaStream *)&teststream, "Streams didn't match.\n");
|
ok(stream == (IMediaStream *)&teststream, "Streams didn't match.\n");
|
||||||
if (hr == S_OK) IMediaStream_Release(stream);
|
IMediaStream_Release(stream);
|
||||||
ok(teststream.mmstream == mmstream, "IAMMultiMediaStream objects didn't match.\n");
|
ok(teststream.mmstream == mmstream, "IAMMultiMediaStream objects didn't match.\n");
|
||||||
ok(teststream.filter == stream_filter, "IMediaStreamFilter objects didn't match.\n");
|
ok(teststream.filter == stream_filter, "IMediaStreamFilter objects didn't match.\n");
|
||||||
todo_wine ok(!!teststream.graph, "Expected a non-NULL graph.\n");
|
ok(teststream.graph == info.pGraph, "IFilterGraph objects didn't match.\n");
|
||||||
|
|
||||||
|
IFilterGraph_Release(info.pGraph);
|
||||||
|
|
||||||
check_enum_stream(mmstream, stream_filter, 0, video_stream);
|
check_enum_stream(mmstream, stream_filter, 0, video_stream);
|
||||||
check_enum_stream(mmstream, stream_filter, 1, audio_stream);
|
check_enum_stream(mmstream, stream_filter, 1, audio_stream);
|
||||||
|
|
Loading…
Reference in New Issue