[PATCH v6 7/7] qasf: Configure WMReader stream selection in asf_reader_init_stream.

Rémi Bernon wine at gitlab.winehq.org
Tue Jul 5 06:03:10 CDT 2022


From: Rémi Bernon <rbernon at codeweavers.com>

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/qasf/asfreader.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/dlls/qasf/asfreader.c b/dlls/qasf/asfreader.c
index 6db1a5ca01f..0fcd2d0848c 100644
--- a/dlls/qasf/asfreader.c
+++ b/dlls/qasf/asfreader.c
@@ -153,16 +153,25 @@ static HRESULT asf_reader_query_interface(struct strmbase_filter *iface, REFIID
 static HRESULT asf_reader_init_stream(struct strmbase_filter *iface)
 {
     struct asf_reader *filter = impl_from_strmbase_filter(iface);
+    WMT_STREAM_SELECTION selections[ARRAY_SIZE(filter->streams)];
+    WORD stream_numbers[ARRAY_SIZE(filter->streams)];
+    IWMReaderAdvanced *reader_advanced;
     HRESULT hr;
     int i;
 
     TRACE("iface %p\n", iface);
 
+    if (FAILED(hr = IWMReader_QueryInterface(filter->reader, &IID_IWMReaderAdvanced, (void **)&reader_advanced)))
+        return hr;
+
     for (i = 0; i < filter->stream_count; ++i)
     {
         struct asf_stream *stream = filter->streams + i;
         IWMOutputMediaProps *props;
 
+        stream_numbers[i] = i + 1;
+        selections[i] = WMT_OFF;
+
         if (!stream->source.pin.peer)
             continue;
 
@@ -196,8 +205,18 @@ static HRESULT asf_reader_init_stream(struct strmbase_filter *iface)
             WARN("Failed to set stream %u output format, hr %#lx\n", i, hr);
             continue;
         }
+
+        selections[i] = WMT_ON;
     }
 
+    hr = IWMReaderAdvanced_SetStreamsSelected(reader_advanced, filter->stream_count, stream_numbers, selections);
+    if (FAILED(hr))
+    {
+        WARN("Failed to set stream selection, hr %#lx\n", hr);
+    }
+
+    IWMReaderAdvanced_Release(reader_advanced);
+
     return IWMReader_Start(filter->reader, 0, 0, 1, NULL);
 }
 
-- 
GitLab

https://gitlab.winehq.org/wine/wine/-/merge_requests/140



More information about the wine-devel mailing list