mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
118 lines
5.1 KiB
Diff
118 lines
5.1 KiB
Diff
From 7e2bb678c70a7a5c3ba3d06e413b4446e6bcf02e Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
|
Date: Tue, 28 Jul 2015 18:21:20 +0200
|
|
Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream.
|
|
|
|
---
|
|
dlls/amstream/mediastream.c | 30 ++++++++++++++++++++++++------
|
|
dlls/amstream/tests/amstream.c | 12 ++++++------
|
|
2 files changed, 30 insertions(+), 12 deletions(-)
|
|
|
|
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
|
|
index 51349abb8ea..98fca62e449 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) stub!\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,
|
|
@@ -517,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA
|
|
{
|
|
AudioMediaStreamImpl *This = impl_from_AudioMediaStream_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 AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface,
|
|
@@ -678,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream
|
|
{
|
|
AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
|
|
|
|
- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream);
|
|
+ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream);
|
|
|
|
- return S_FALSE;
|
|
+ if (!multimedia_stream)
|
|
+ return E_POINTER;
|
|
+
|
|
+ IMultiMediaStream_AddRef(This->parent);
|
|
+ *multimedia_stream = This->parent;
|
|
+
|
|
+ return S_OK;
|
|
}
|
|
|
|
static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface,
|
|
diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c
|
|
index eb9c5f962ce..4afa3e0489d 100644
|
|
--- a/dlls/amstream/tests/amstream.c
|
|
+++ b/dlls/amstream/tests/amstream.c
|
|
@@ -263,11 +263,11 @@ 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);
|
|
+ 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);
|
|
@@ -376,11 +376,11 @@ static void test_media_streams(void)
|
|
ok((void*)am_media_stream == (void*)audio_stream, "Not same interface, got %p expected %p\n", am_media_stream, audio_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);
|
|
+ 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);
|
|
@@ -414,11 +414,11 @@ static void test_media_streams(void)
|
|
ok(hr == S_OK, "IAudioMediaStream_CreateSample returned: %x\n", hr);
|
|
|
|
hr = IAudioMediaStream_GetMultiMediaStream(audio_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 = IAudioMediaStream_GetMultiMediaStream(audio_media_stream, &multi_media_stream);
|
|
- todo_wine ok(hr == S_OK, "IAudioMediaStream_GetMultiMediaStream returned: %x\n", hr);
|
|
+ ok(hr == S_OK, "IAudioMediaStream_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);
|
|
--
|
|
2.11.0
|
|
|