Derek Lesho : winegstreamer: Require media source's IMFByteStream to be seekable.
Alexandre Julliard
julliard at winehq.org
Mon Nov 9 15:11:51 CST 2020
Module: wine
Branch: master
Commit: 964cf9cfce5c4eec804db0294dfdb33a76488168
URL: https://source.winehq.org/git/wine.git/?a=commit;h=964cf9cfce5c4eec804db0294dfdb33a76488168
Author: Derek Lesho <dlesho at codeweavers.com>
Date: Mon Nov 2 15:48:33 2020 -0600
winegstreamer: Require media source's IMFByteStream to be seekable.
Signed-off-by: Derek Lesho <dlesho at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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;
More information about the wine-cvs
mailing list