From 0eeb40943242a0ffb75a8082609d8375c5811479 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 4 Mar 2019 13:33:48 +0300 Subject: [PATCH] mfplat: Keep stream descriptor identifier. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/mfplat/mediatype.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c index 79d34405fe1..1bd32cd8b05 100644 --- a/dlls/mfplat/mediatype.c +++ b/dlls/mfplat/mediatype.c @@ -36,6 +36,7 @@ struct stream_desc struct attributes attributes; IMFStreamDescriptor IMFStreamDescriptor_iface; IMFMediaTypeHandler IMFMediaTypeHandler_iface; + DWORD identifier; }; static inline struct media_type *impl_from_IMFMediaType(IMFMediaType *iface) @@ -615,9 +616,13 @@ static HRESULT WINAPI stream_descriptor_CopyAllItems(IMFStreamDescriptor *iface, static HRESULT WINAPI stream_descriptor_GetStreamIdentifier(IMFStreamDescriptor *iface, DWORD *identifier) { - FIXME("%p, %p.\n", iface, identifier); + struct stream_desc *stream_desc = impl_from_IMFStreamDescriptor(iface); - return E_NOTIMPL; + TRACE("%p, %p.\n", iface, identifier); + + *identifier = stream_desc->identifier; + + return S_OK; } static HRESULT WINAPI stream_descriptor_GetMediaTypeHandler(IMFStreamDescriptor *iface, IMFMediaTypeHandler **handler) @@ -774,6 +779,8 @@ HRESULT WINAPI MFCreateStreamDescriptor(DWORD identifier, DWORD count, init_attribute_object(&object->attributes, 0); object->IMFStreamDescriptor_iface.lpVtbl = &streamdescriptorvtbl; object->IMFMediaTypeHandler_iface.lpVtbl = &mediatypehandlervtbl; + object->identifier = identifier; + *descriptor = &object->IMFStreamDescriptor_iface; return S_OK;