Gijs Vermeulen : amstream: Add graph to stream in IMediaStreamFilter::AddMediaStream().

Alexandre Julliard julliard at winehq.org
Tue Jul 7 15:47:07 CDT 2020


Module: wine
Branch: master
Commit: 388c53160dff455c05e87315e6d7c986b78bad45
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=388c53160dff455c05e87315e6d7c986b78bad45

Author: Gijs Vermeulen <gijsvrm at gmail.com>
Date:   Tue Jul  7 00:58:14 2020 +0200

amstream: Add graph to stream in IMediaStreamFilter::AddMediaStream().

Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/amstream/filter.c         |  4 ++++
 dlls/amstream/tests/amstream.c | 10 ++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/amstream/filter.c b/dlls/amstream/filter.c
index 0e09e492cb..0a06e78180 100644
--- a/dlls/amstream/filter.c
+++ b/dlls/amstream/filter.c
@@ -497,6 +497,10 @@ static HRESULT WINAPI filter_AddMediaStream(IMediaStreamFilter *iface, IAMMediaS
     if (FAILED(hr))
         return hr;
 
+    hr = IAMMediaStream_JoinFilterGraph(pAMMediaStream, This->graph);
+    if (FAILED(hr))
+        return hr;
+
     This->streams[This->nb_streams] = pAMMediaStream;
     This->nb_streams++;
 
diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c
index 608bb2267f..0e9c40d118 100644
--- a/dlls/amstream/tests/amstream.c
+++ b/dlls/amstream/tests/amstream.c
@@ -686,6 +686,7 @@ static void test_add_stream(void)
     IEnumFilters *enum_filters;
     IBaseFilter *filters[3];
     IGraphBuilder *graph;
+    FILTER_INFO info;
     ULONG ref, count;
     CLSID clsid;
     HRESULT hr;
@@ -755,13 +756,18 @@ static void test_add_stream(void)
     hr = IAMMultiMediaStream_AddMediaStream(mmstream, (IUnknown *)&teststream, &IID_IUnknown, 0, &stream);
     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);
     ok(hr == S_OK, "Got hr %#x.\n", hr);
     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.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, 1, audio_stream);




More information about the wine-cvs mailing list