From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winegstreamer/media_source.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c index 3ba305b897a..ca1c9c445f4 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c @@ -1615,20 +1615,10 @@ static HRESULT media_source_create(struct object_context *context, IMFMediaSourc unsigned int stream_count = UINT_MAX; struct media_source *object; struct wg_parser *parser; - DWORD bytestream_caps; QWORD file_size; unsigned int i; HRESULT hr;
- if (FAILED(hr = IMFByteStream_GetCapabilities(context->stream, &bytestream_caps))) - return hr; - - if (!(bytestream_caps & MFBYTESTREAM_IS_SEEKABLE)) - { - FIXME("Non-seekable bytestreams not supported.\n"); - return MF_E_BYTESTREAM_NOT_SEEKABLE; - } - if (FAILED(hr = IMFByteStream_GetLength(context->stream, &file_size))) { FIXME("Failed to get byte stream length, hr %#lx.\n", hr); @@ -1870,6 +1860,7 @@ static HRESULT WINAPI stream_handler_BeginCreateObject(IMFByteStreamHandler *ifa IMFAsyncResult *result; IUnknown *context; HRESULT hr; + DWORD caps;
TRACE("%p, %s, %#lx, %p, %p, %p, %p.\n", iface, debugstr_w(url), flags, props, cancel_cookie, callback, state);
@@ -1881,6 +1872,14 @@ static HRESULT WINAPI stream_handler_BeginCreateObject(IMFByteStreamHandler *ifa if (flags != MF_RESOLUTION_MEDIASOURCE) FIXME("Unimplemented flags %#lx\n", flags);
+ if (FAILED(hr = IMFByteStream_GetCapabilities(stream, &caps))) + return hr; + if (!(caps & MFBYTESTREAM_IS_SEEKABLE)) + { + FIXME("Non-seekable bytestreams not supported.\n"); + return MF_E_BYTESTREAM_NOT_SEEKABLE; + } + if (FAILED(hr = MFCreateAsyncResult(NULL, callback, state, &result))) return hr;