Nikolay Sivov : amstream: Get rid of some casts by using proper iface types.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Jun 22 07:44:58 CDT 2015


Module: wine
Branch: master
Commit: 5b248546806c247c8a3c5011fc2d78af8d9da253
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5b248546806c247c8a3c5011fc2d78af8d9da253

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Sat Jun 20 23:34:58 2015 +0300

amstream: Get rid of some casts by using proper iface types.

---

 dlls/amstream/amstream.c          | 41 ++++++++++++++++++---------------------
 dlls/amstream/amstream_private.h  |  5 +++--
 dlls/amstream/audiodata.c         |  2 --
 dlls/amstream/main.c              |  1 -
 dlls/amstream/mediastream.c       |  9 ++++-----
 dlls/amstream/mediastreamfilter.c |  1 -
 6 files changed, 26 insertions(+), 33 deletions(-)

diff --git a/dlls/amstream/amstream.c b/dlls/amstream/amstream.c
index fcef7ec..372ddd6 100644
--- a/dlls/amstream/amstream.c
+++ b/dlls/amstream/amstream.c
@@ -27,7 +27,6 @@
 #include "wingdi.h"
 
 #include "amstream_private.h"
-#include "amstream.h"
 
 WINE_DEFAULT_DEBUG_CHANNEL(amstream);
 
@@ -37,10 +36,10 @@ typedef struct {
     IGraphBuilder* pFilterGraph;
     IMediaSeeking* media_seeking;
     IMediaControl* media_control;
-    IBaseFilter* media_stream_filter;
+    IMediaStreamFilter *media_stream_filter;
     IPin* ipin;
     ULONG nbStreams;
-    IMediaStream** pStreams;
+    IAMMediaStream **pStreams;
     STREAM_TYPE StreamType;
     OAEVENT event;
 } IAMMultiMediaStreamImpl;
@@ -114,11 +113,11 @@ static ULONG WINAPI IAMMultiMediaStreamImpl_Release(IAMMultiMediaStream* iface)
     if (!ref)
     {
         for(i = 0; i < This->nbStreams; i++)
-            IMediaStream_Release(This->pStreams[i]);
+            IAMMediaStream_Release(This->pStreams[i]);
         if (This->ipin)
             IPin_Release(This->ipin);
         if (This->media_stream_filter)
-            IBaseFilter_Release(This->media_stream_filter);
+            IMediaStreamFilter_Release(This->media_stream_filter);
         if (This->media_seeking)
             IMediaSeeking_Release(This->media_seeking);
         if (This->media_control)
@@ -151,10 +150,10 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_GetMediaStream(IAMMultiMediaStream
 
     for (i = 0; i < This->nbStreams; i++)
     {
-        IMediaStream_GetInformation(This->pStreams[i], &PurposeId, NULL);
+        IAMMediaStream_GetInformation(This->pStreams[i], &PurposeId, NULL);
         if (IsEqualIID(&PurposeId, idPurpose))
         {
-            *ppMediaStream = This->pStreams[i];
+            *ppMediaStream = (IMediaStream*)This->pStreams[i];
             IMediaStream_AddRef(*ppMediaStream);
             return S_OK;
         }
@@ -258,9 +257,9 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_Initialize(IAMMultiMediaStream* if
         if (SUCCEEDED(hr))
             hr = IGraphBuilder_QueryInterface(This->pFilterGraph, &IID_IMediaControl, (void**)&This->media_control);
         if (SUCCEEDED(hr))
-            hr = CoCreateInstance(&CLSID_MediaStreamFilter, NULL, CLSCTX_INPROC_SERVER, &IID_IBaseFilter, (LPVOID*)&This->media_stream_filter);
+            hr = CoCreateInstance(&CLSID_MediaStreamFilter, NULL, CLSCTX_INPROC_SERVER, &IID_IMediaStreamFilter, (void**)&This->media_stream_filter);
         if (SUCCEEDED(hr))
-            hr = IGraphBuilder_AddFilter(This->pFilterGraph, This->media_stream_filter, filternameW);
+            hr = IGraphBuilder_AddFilter(This->pFilterGraph, (IBaseFilter*)This->media_stream_filter, filternameW);
         if (SUCCEEDED(hr))
         {
             IMediaEventEx* media_event = NULL;
@@ -277,7 +276,7 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_Initialize(IAMMultiMediaStream* if
     if (FAILED(hr))
     {
         if (This->media_stream_filter)
-            IBaseFilter_Release(This->media_stream_filter);
+            IMediaStreamFilter_Release(This->media_stream_filter);
         This->media_stream_filter = NULL;
         if (This->media_seeking)
             IMediaSeeking_Release(This->media_seeking);
@@ -313,19 +312,17 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_GetFilterGraph(IAMMultiMediaStream
 static HRESULT WINAPI IAMMultiMediaStreamImpl_GetFilter(IAMMultiMediaStream* iface, IMediaStreamFilter** ppFilter)
 {
     IAMMultiMediaStreamImpl *This = impl_from_IAMMultiMediaStream(iface);
-    HRESULT hr = S_OK;
 
     TRACE("(%p/%p)->(%p)\n", This, iface, ppFilter);
 
     if (!ppFilter)
         return E_POINTER;
 
-    *ppFilter = NULL;
-
-    if (This->media_stream_filter)
-        hr = IBaseFilter_QueryInterface(This->media_stream_filter, &IID_IMediaStreamFilter, (LPVOID*)ppFilter);
+    *ppFilter = This->media_stream_filter;
+    if (*ppFilter)
+        IMediaStreamFilter_AddRef(*ppFilter);
 
-    return hr;
+    return S_OK;
 }
 
 static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream* iface, IUnknown* stream_object, const MSPID* PurposeId,
@@ -333,8 +330,8 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream
 {
     IAMMultiMediaStreamImpl *This = impl_from_IAMMultiMediaStream(iface);
     HRESULT hr;
-    IMediaStream* pStream;
-    IMediaStream** pNewStreams;
+    IAMMediaStream* pStream;
+    IAMMediaStream** pNewStreams;
 
     TRACE("(%p/%p)->(%p,%s,%x,%p)\n", This, iface, stream_object, debugstr_guid(PurposeId), dwFlags, ppNewStream);
 
@@ -374,10 +371,10 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream
         hr = audiomediastream_create((IMultiMediaStream*)iface, PurposeId, This->StreamType, &pStream);
     if (SUCCEEDED(hr))
     {
-        pNewStreams = CoTaskMemRealloc(This->pStreams, (This->nbStreams+1) * sizeof(IMediaStream*));
+        pNewStreams = CoTaskMemRealloc(This->pStreams, (This->nbStreams+1) * sizeof(IAMMediaStream*));
         if (!pNewStreams)
         {
-            IMediaStream_Release(pStream);
+            IAMMediaStream_Release(pStream);
             return E_OUTOFMEMORY;
         }
         This->pStreams = pNewStreams;
@@ -385,13 +382,13 @@ static HRESULT WINAPI IAMMultiMediaStreamImpl_AddMediaStream(IAMMultiMediaStream
         This->nbStreams++;
 
         if (ppNewStream)
-            *ppNewStream = pStream;
+            *ppNewStream = (IMediaStream*)pStream;
     }
 
     if (SUCCEEDED(hr))
     {
         /* Add stream to the media stream filter */
-        IMediaStreamFilter_AddMediaStream((IMediaStreamFilter*)This->media_stream_filter, (IAMMediaStream*)pStream);
+        IMediaStreamFilter_AddMediaStream(This->media_stream_filter, pStream);
     }
 
     return hr;
diff --git a/dlls/amstream/amstream_private.h b/dlls/amstream/amstream_private.h
index 0881c3e..64a376f 100644
--- a/dlls/amstream/amstream_private.h
+++ b/dlls/amstream/amstream_private.h
@@ -31,13 +31,14 @@
 #include "dshow.h"
 #include "mmstream.h"
 #include "austream.h"
+#include "amstream.h"
 
 HRESULT AM_create(IUnknown *pUnkOuter, LPVOID *ppObj) DECLSPEC_HIDDEN;
 HRESULT AMAudioData_create(IUnknown *pUnkOuter, LPVOID *ppObj) DECLSPEC_HIDDEN;
 HRESULT MediaStreamFilter_create(IUnknown *pUnkOuter, LPVOID *ppObj) DECLSPEC_HIDDEN;
 HRESULT ddrawmediastream_create(IMultiMediaStream *Parent, const MSPID *pPurposeId,
-        STREAM_TYPE StreamType, IMediaStream **ppMediaStream) DECLSPEC_HIDDEN;
+        STREAM_TYPE StreamType, IAMMediaStream **ppMediaStream) DECLSPEC_HIDDEN;
 HRESULT audiomediastream_create(IMultiMediaStream *parent, const MSPID *purpose_id,
-        STREAM_TYPE stream_type, IMediaStream **media_stream) DECLSPEC_HIDDEN;
+        STREAM_TYPE stream_type, IAMMediaStream **media_stream) DECLSPEC_HIDDEN;
 
 #endif /* __AMSTREAM_PRIVATE_INCLUDED__ */
diff --git a/dlls/amstream/audiodata.c b/dlls/amstream/audiodata.c
index 3a62a9f..c3bc1a6 100644
--- a/dlls/amstream/audiodata.c
+++ b/dlls/amstream/audiodata.c
@@ -25,8 +25,6 @@
 #include "winbase.h"
 #include "amstream_private.h"
 
-#include "amstream.h"
-
 WINE_DEFAULT_DEBUG_CHANNEL(amstream);
 
 typedef struct {
diff --git a/dlls/amstream/main.c b/dlls/amstream/main.c
index e80c491..1149584 100644
--- a/dlls/amstream/main.c
+++ b/dlls/amstream/main.c
@@ -32,7 +32,6 @@
 #include "rpcproxy.h"
 
 #include "amstream_private.h"
-#include "amstream.h"
 
 #include "wine/debug.h"
 
diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c
index f619cbd..b457d1f 100644
--- a/dlls/amstream/mediastream.c
+++ b/dlls/amstream/mediastream.c
@@ -26,7 +26,6 @@
 #include "wingdi.h"
 
 #include "amstream_private.h"
-#include "amstream.h"
 
 #include "ddstream.h"
 
@@ -428,7 +427,7 @@ static const struct IDirectDrawMediaStreamVtbl DirectDrawMediaStreamImpl_IDirect
 };
 
 HRESULT ddrawmediastream_create(IMultiMediaStream *parent, const MSPID *purpose_id,
-        STREAM_TYPE stream_type, IMediaStream **media_stream)
+        STREAM_TYPE stream_type, IAMMediaStream **media_stream)
 {
     DirectDrawMediaStreamImpl *object;
 
@@ -446,7 +445,7 @@ HRESULT ddrawmediastream_create(IMultiMediaStream *parent, const MSPID *purpose_
     object->purpose_id = *purpose_id;
     object->stream_type = stream_type;
 
-    *media_stream = (IMediaStream*)&object->IAMMediaStream_iface;
+    *media_stream = &object->IAMMediaStream_iface;
 
     return S_OK;
 }
@@ -828,7 +827,7 @@ static const struct IAudioMediaStreamVtbl AudioMediaStreamImpl_IAudioMediaStream
 };
 
 HRESULT audiomediastream_create(IMultiMediaStream *parent, const MSPID *purpose_id,
-        STREAM_TYPE stream_type, IMediaStream **media_stream)
+        STREAM_TYPE stream_type, IAMMediaStream **media_stream)
 {
     AudioMediaStreamImpl *object;
 
@@ -846,7 +845,7 @@ HRESULT audiomediastream_create(IMultiMediaStream *parent, const MSPID *purpose_
     object->purpose_id = *purpose_id;
     object->stream_type = stream_type;
 
-    *media_stream = (IMediaStream*)&object->IAMMediaStream_iface;
+    *media_stream = &object->IAMMediaStream_iface;
 
     return S_OK;
 }
diff --git a/dlls/amstream/mediastreamfilter.c b/dlls/amstream/mediastreamfilter.c
index 8c26c8e..d428970 100644
--- a/dlls/amstream/mediastreamfilter.c
+++ b/dlls/amstream/mediastreamfilter.c
@@ -29,7 +29,6 @@
 #include "wine/strmbase.h"
 
 #include "amstream_private.h"
-#include "amstream.h"
 
 #include "ddstream.h"
 




More information about the wine-cvs mailing list