Nikolay Sivov : mfreadwrite: Query presentation descriptor on reader creation.

Alexandre Julliard julliard at winehq.org
Mon Mar 18 16:20:15 CDT 2019


Module: wine
Branch: master
Commit: fcae0bc7550850a0b2800017045ba5121eb708c6
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=fcae0bc7550850a0b2800017045ba5121eb708c6

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Mon Mar 18 13:01:01 2019 +0300

mfreadwrite: Query presentation descriptor on reader creation.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mfreadwrite/main.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/dlls/mfreadwrite/main.c b/dlls/mfreadwrite/main.c
index 034d5f8..df8f89a 100644
--- a/dlls/mfreadwrite/main.c
+++ b/dlls/mfreadwrite/main.c
@@ -76,6 +76,7 @@ typedef struct source_reader
     IMFSourceReader IMFSourceReader_iface;
     LONG refcount;
     IMFMediaSource *source;
+    IMFPresentationDescriptor *descriptor;
 } srcreader;
 
 struct sink_writer
@@ -135,6 +136,8 @@ static ULONG WINAPI src_reader_Release(IMFSourceReader *iface)
 
     if (!refcount)
     {
+        if (reader->descriptor)
+            IMFPresentationDescriptor_Release(reader->descriptor);
         IMFMediaSource_Release(reader->source);
         heap_free(reader);
     }
@@ -279,7 +282,12 @@ static HRESULT create_source_reader_from_source(IMFMediaSource *source, IMFAttri
     object->source = source;
     IMFMediaSource_AddRef(object->source);
 
+    if (FAILED(hr = IMFMediaSource_CreatePresentationDescriptor(object->source, &object->descriptor)))
+        goto failed;
+
     hr = IMFSourceReader_QueryInterface(&object->IMFSourceReader_iface, riid, out);
+
+failed:
     IMFSourceReader_Release(&object->IMFSourceReader_iface);
     return hr;
 }




More information about the wine-cvs mailing list