[PATCH 8/9] mfplat: Keep stream descriptor identifier.

Nikolay Sivov nsivov at codeweavers.com
Mon Mar 4 03:27:25 CST 2019


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/mfplat/mediatype.c    | 11 +++++++++--
 dlls/mfplat/tests/mfplat.c |  3 +--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/dlls/mfplat/mediatype.c b/dlls/mfplat/mediatype.c
index 79d34405fe..1bd32cd8b0 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;
diff --git a/dlls/mfplat/tests/mfplat.c b/dlls/mfplat/tests/mfplat.c
index ad608ac77f..7d297d6179 100644
--- a/dlls/mfplat/tests/mfplat.c
+++ b/dlls/mfplat/tests/mfplat.c
@@ -1453,10 +1453,9 @@ todo_wine
     ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
 
     hr = IMFStreamDescriptor_GetStreamIdentifier(stream_desc, &id);
-todo_wine {
     ok(hr == S_OK, "Failed to get descriptor id, hr %#x.\n", hr);
     ok(id == 123, "Unexpected id %#x.\n", id);
-}
+
     hr = IMFStreamDescriptor_GetMediaTypeHandler(stream_desc, &type_handler);
     ok(hr == S_OK, "Failed to get type handler, hr %#x.\n", hr);
 
-- 
2.20.1




More information about the wine-devel mailing list