Nikolay Sivov : mfreadwrite: Use source resolver when creating reader from bytestream.
Alexandre Julliard
julliard at winehq.org
Tue Mar 12 16:56:15 CDT 2019
Module: wine
Branch: master
Commit: 95ab51105b3eae4076ea304c33b87ce38566766e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=95ab51105b3eae4076ea304c33b87ce38566766e
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue Mar 12 09:07:45 2019 +0300
mfreadwrite: Use source resolver when creating reader from bytestream.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/mfreadwrite/Makefile.in | 2 +-
dlls/mfreadwrite/main.c | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/dlls/mfreadwrite/Makefile.in b/dlls/mfreadwrite/Makefile.in
index afefdb5..edc7ebd 100644
--- a/dlls/mfreadwrite/Makefile.in
+++ b/dlls/mfreadwrite/Makefile.in
@@ -1,6 +1,6 @@
MODULE = mfreadwrite.dll
IMPORTLIB = mfreadwrite
-IMPORTS = mfuuid uuid
+IMPORTS = mfuuid uuid mfplat
C_SRCS = \
main.c
diff --git a/dlls/mfreadwrite/main.c b/dlls/mfreadwrite/main.c
index 098100df..bcf79a8 100644
--- a/dlls/mfreadwrite/main.c
+++ b/dlls/mfreadwrite/main.c
@@ -254,9 +254,23 @@ static HRESULT create_source_reader_from_source(IMFMediaSource *source, IMFAttri
static HRESULT create_source_reader_from_stream(IMFByteStream *stream, IMFAttributes *attributes,
REFIID riid, void **out)
{
- /* FIXME: resolve bytestream to media source */
+ IMFSourceResolver *resolver;
+ MF_OBJECT_TYPE obj_type;
+ IMFMediaSource *source;
+ HRESULT hr;
+
+ if (FAILED(hr = MFCreateSourceResolver(&resolver)))
+ return hr;
- return create_source_reader_from_source(NULL, attributes, riid, out);
+ hr = IMFSourceResolver_CreateObjectFromByteStream(resolver, stream, NULL, MF_RESOLUTION_MEDIASOURCE, NULL,
+ &obj_type, (IUnknown **)&source);
+ IMFSourceResolver_Release(resolver);
+ if (FAILED(hr))
+ return hr;
+
+ hr = create_source_reader_from_source(source, attributes, riid, out);
+ IMFMediaSource_Release(source);
+ return hr;
}
static HRESULT WINAPI sink_writer_QueryInterface(IMFSinkWriter *iface, REFIID riid, void **out)
More information about the wine-cvs
mailing list