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,