From cbd7be3f19c503aec47ebdeaa3b09ad8a085cc4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Mon, 22 Aug 2022 10:54:05 +0200 Subject: [PATCH] winegstreamer: Implement IWMSyncReader2_GetReadStreamSamples. --- dlls/winegstreamer/wm_reader.c | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/dlls/winegstreamer/wm_reader.c b/dlls/winegstreamer/wm_reader.c index 85332926d49..09745ae2023 100644 --- a/dlls/winegstreamer/wm_reader.c +++ b/dlls/winegstreamer/wm_reader.c @@ -2348,11 +2348,25 @@ static HRESULT WINAPI reader_GetOutputSetting(IWMSyncReader2 *iface, DWORD outpu return E_NOTIMPL; } -static HRESULT WINAPI reader_GetReadStreamSamples(IWMSyncReader2 *iface, WORD stream_num, BOOL *compressed) +static HRESULT WINAPI reader_GetReadStreamSamples(IWMSyncReader2 *iface, WORD stream_number, BOOL *compressed) { - struct wm_reader *This = impl_from_IWMSyncReader2(iface); - FIXME("(%p)->(%d %p): stub!\n", This, stream_num, compressed); - return E_NOTIMPL; + struct wm_reader *reader = impl_from_IWMSyncReader2(iface); + struct wm_stream *stream; + + TRACE("reader %p, stream_number %u, compressed %p.\n", reader, stream_number, compressed); + + EnterCriticalSection(&reader->cs); + + if (!(stream = wm_reader_get_stream_by_stream_number(reader, stream_number))) + { + LeaveCriticalSection(&reader->cs); + return E_INVALIDARG; + } + + *compressed = stream->read_compressed; + + LeaveCriticalSection(&reader->cs); + return S_OK; } static HRESULT WINAPI reader_GetStreamNumberForOutput(IWMSyncReader2 *iface,