Nikolay Sivov : mfreadwrite: Query presentation descriptor on reader creation.
Module: wine Branch: master Commit: fcae0bc7550850a0b2800017045ba5121eb708c6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=fcae0bc7550850a0b28000170... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Mon Mar 18 13:01:01 2019 +0300 mfreadwrite: Query presentation descriptor on reader creation. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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; }
participants (1)
-
Alexandre Julliard