From 964cf9cfce5c4eec804db0294dfdb33a76488168 Mon Sep 17 00:00:00 2001 From: Derek Lesho Date: Mon, 2 Nov 2020 15:48:33 -0600 Subject: [PATCH] winegstreamer: Require media source's IMFByteStream to be seekable. Signed-off-by: Derek Lesho Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/winegstreamer/media_source.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c index 06f35ce24b6..e69eeba4294 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c @@ -1235,6 +1235,7 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ struct media_source *object = heap_alloc_zero(sizeof(*object)); IMFStreamDescriptor **descriptors = NULL; + DWORD bytestream_caps; unsigned int i; HRESULT hr; int ret; @@ -1242,6 +1243,15 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ if (!object) return E_OUTOFMEMORY; + if (FAILED(hr = IMFByteStream_GetCapabilities(bytestream, &bytestream_caps))) + return hr; + + if (!(bytestream_caps & MFBYTESTREAM_IS_SEEKABLE)) + { + FIXME("Non-seekable bytestreams not supported.\n"); + return MF_E_BYTESTREAM_NOT_SEEKABLE; + } + object->IMFMediaSource_iface.lpVtbl = &IMFMediaSource_vtbl; object->async_commands_callback.lpVtbl = &source_async_commands_callback_vtbl; object->ref = 1;