From 0dc09c032dba44a63a072579077dba1a6ee1ed77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Sat, 30 Apr 2016 03:56:38 +0200 Subject: [PATCH] amstream: Implement IAMMediaStream::GetMultiMediaStream for video. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Michael Müller Signed-off-by: Sebastian Lackner Signed-off-by: Alexandre Julliard --- dlls/amstream/mediastream.c | 10 ++++++++-- dlls/amstream/tests/amstream.c | 11 ++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c index 79f9822e874..af7bdaf13d7 100644 --- a/dlls/amstream/mediastream.c +++ b/dlls/amstream/mediastream.c @@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre { DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface); - FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream); + TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream); - return S_FALSE; + if (!multi_media_stream) + return E_POINTER; + + IMultiMediaStream_AddRef(This->parent); + *multi_media_stream = This->parent; + + return S_OK; } static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface, diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index 353ba019316..1b411602ae3 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -263,16 +263,13 @@ static void test_media_streams(void) ok((void*)am_media_stream == (void*)video_stream, "Not same interface, got %p expected %p\n", am_media_stream, video_stream); hr = IAMMediaStream_GetMultiMediaStream(am_media_stream, NULL); - todo_wine ok(hr == E_POINTER, "Expected E_POINTER, got %x\n", hr); + ok(hr == E_POINTER, "Expected E_POINTER, got %x\n", hr); multi_media_stream = (void *)0xdeadbeef; hr = IAMMediaStream_GetMultiMediaStream(am_media_stream, &multi_media_stream); - todo_wine ok(hr == S_OK, "IAMMediaStream_GetMultiMediaStream returned: %x\n", hr); - if (hr == S_OK) - { - ok((void *)multi_media_stream == (void *)pams, "Expected %p, got %p\n", pams, multi_media_stream); - IMultiMediaStream_Release(multi_media_stream); - } + ok(hr == S_OK, "IAMMediaStream_GetMultiMediaStream returned: %x\n", hr); + ok((void *)multi_media_stream == (void *)pams, "Expected %p, got %p\n", pams, multi_media_stream); + IMultiMediaStream_Release(multi_media_stream); IAMMediaStream_Release(am_media_stream);