ReactOS  0.4.14-dev-358-gbef841c
mediastreamfilter.c File Reference
#include "wine/debug.h"
#include "winbase.h"
#include "wingdi.h"
#include "dshow.h"
#include "wine/strmbase.h"
#include "amstream_private.h"
#include "ddstream.h"
Include dependency graph for mediastreamfilter.c:

Go to the source code of this file.

Classes

struct  IMediaStreamFilterImpl
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (amstream)
 
static IMediaStreamFilterImplimpl_from_IMediaStreamFilter (IMediaStreamFilter *iface)
 
static HRESULT WINAPI MediaStreamFilterImpl_QueryInterface (IMediaStreamFilter *iface, REFIID riid, void **ret_iface)
 
static ULONG WINAPI MediaStreamFilterImpl_AddRef (IMediaStreamFilter *iface)
 
static ULONG WINAPI MediaStreamFilterImpl_Release (IMediaStreamFilter *iface)
 
static HRESULT WINAPI MediaStreamFilterImpl_GetClassID (IMediaStreamFilter *iface, CLSID *clsid)
 
static HRESULT WINAPI MediaStreamFilterImpl_Stop (IMediaStreamFilter *iface)
 
static HRESULT WINAPI MediaStreamFilterImpl_Pause (IMediaStreamFilter *iface)
 
static HRESULT WINAPI MediaStreamFilterImpl_Run (IMediaStreamFilter *iface, REFERENCE_TIME start)
 
static HRESULT WINAPI MediaStreamFilterImpl_GetState (IMediaStreamFilter *iface, DWORD ms_timeout, FILTER_STATE *state)
 
static HRESULT WINAPI MediaStreamFilterImpl_SetSyncSource (IMediaStreamFilter *iface, IReferenceClock *clock)
 
static HRESULT WINAPI MediaStreamFilterImpl_GetSyncSource (IMediaStreamFilter *iface, IReferenceClock **clock)
 
static HRESULT WINAPI MediaStreamFilterImpl_EnumPins (IMediaStreamFilter *iface, IEnumPins **enum_pins)
 
static HRESULT WINAPI MediaStreamFilterImpl_FindPin (IMediaStreamFilter *iface, LPCWSTR id, IPin **pin)
 
static HRESULT WINAPI MediaStreamFilterImpl_QueryFilterInfo (IMediaStreamFilter *iface, FILTER_INFO *info)
 
static HRESULT WINAPI MediaStreamFilterImpl_JoinFilterGraph (IMediaStreamFilter *iface, IFilterGraph *graph, LPCWSTR name)
 
static HRESULT WINAPI MediaStreamFilterImpl_QueryVendorInfo (IMediaStreamFilter *iface, LPWSTR *vendor_info)
 
static HRESULT WINAPI MediaStreamFilterImpl_AddMediaStream (IMediaStreamFilter *iface, IAMMediaStream *pAMMediaStream)
 
static HRESULT WINAPI MediaStreamFilterImpl_GetMediaStream (IMediaStreamFilter *iface, REFMSPID idPurpose, IMediaStream **ppMediaStream)
 
static HRESULT WINAPI MediaStreamFilterImpl_EnumMediaStreams (IMediaStreamFilter *iface, LONG Index, IMediaStream **ppMediaStream)
 
static HRESULT WINAPI MediaStreamFilterImpl_SupportSeeking (IMediaStreamFilter *iface, BOOL bRenderer)
 
static HRESULT WINAPI MediaStreamFilterImpl_ReferenceTimeToStreamTime (IMediaStreamFilter *iface, REFERENCE_TIME *pTime)
 
static HRESULT WINAPI MediaStreamFilterImpl_GetCurrentStreamTime (IMediaStreamFilter *iface, REFERENCE_TIME *pCurrentStreamTime)
 
static HRESULT WINAPI MediaStreamFilterImpl_WaitUntil (IMediaStreamFilter *iface, REFERENCE_TIME WaitStreamTime)
 
static HRESULT WINAPI MediaStreamFilterImpl_Flush (IMediaStreamFilter *iface, BOOL bCancelEOS)
 
static HRESULT WINAPI MediaStreamFilterImpl_EndOfStream (IMediaStreamFilter *iface)
 
static IPin *WINAPI MediaStreamFilterImpl_GetPin (BaseFilter *iface, int pos)
 
static LONG WINAPI MediaStreamFilterImpl_GetPinCount (BaseFilter *iface)
 
HRESULT MediaStreamFilter_create (IUnknown *pUnkOuter, void **ppObj)
 

Variables

static const IMediaStreamFilterVtbl MediaStreamFilter_Vtbl
 
static const BaseFilterFuncTable BaseFuncTable
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 23 of file mediastreamfilter.c.

Function Documentation

◆ impl_from_IMediaStreamFilter()

static IMediaStreamFilterImpl* impl_from_IMediaStreamFilter ( IMediaStreamFilter iface)
inlinestatic

Definition at line 43 of file mediastreamfilter.c.

44 {
45  return CONTAINING_RECORD((IBaseFilter *)iface, IMediaStreamFilterImpl, filter.IBaseFilter_iface);
46 }
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
Definition: Messaging.c:560
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005

Referenced by MediaStreamFilterImpl_AddMediaStream(), MediaStreamFilterImpl_AddRef(), MediaStreamFilterImpl_EnumPins(), MediaStreamFilterImpl_GetClassID(), MediaStreamFilterImpl_GetMediaStream(), MediaStreamFilterImpl_GetState(), MediaStreamFilterImpl_GetSyncSource(), MediaStreamFilterImpl_JoinFilterGraph(), MediaStreamFilterImpl_QueryFilterInfo(), MediaStreamFilterImpl_QueryVendorInfo(), MediaStreamFilterImpl_Release(), and MediaStreamFilterImpl_SetSyncSource().

◆ MediaStreamFilter_create()

HRESULT MediaStreamFilter_create ( IUnknown pUnkOuter,
void **  ppObj 
)

Definition at line 337 of file mediastreamfilter.c.

338 {
340 
341  TRACE("(%p,%p)\n", pUnkOuter, ppObj);
342 
343  if( pUnkOuter )
344  return CLASS_E_NOAGGREGATION;
345 
347  if (!object)
348  return E_OUTOFMEMORY;
349 
350  BaseFilter_Init(&object->filter, (IBaseFilterVtbl*)&MediaStreamFilter_Vtbl, &CLSID_MediaStreamFilter, (DWORD_PTR)(__FILE__ ": MediaStreamFilterImpl.csFilter"), &BaseFuncTable);
351 
352  *ppObj = &object->filter.IBaseFilter_iface;
353 
354  return S_OK;
355 }
static const IMediaStreamFilterVtbl MediaStreamFilter_Vtbl
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
static const BaseFilterFuncTable BaseFuncTable
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662
uint32_t DWORD_PTR
Definition: typedefs.h:63
#define S_OK
Definition: intsafe.h:59
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
HRESULT WINAPI BaseFilter_Init(BaseFilter *This, const IBaseFilterVtbl *Vtbl, const CLSID *pClsid, DWORD_PTR DebugInfo, const BaseFilterFuncTable *pBaseFuncsTable)
Definition: filter.c:196
void * object
Definition: jmemsys.h:48

◆ MediaStreamFilterImpl_AddMediaStream()

static HRESULT WINAPI MediaStreamFilterImpl_AddMediaStream ( IMediaStreamFilter iface,
IAMMediaStream pAMMediaStream 
)
static

Definition at line 187 of file mediastreamfilter.c.

188 {
190  IAMMediaStream** streams;
191  HRESULT hr;
192 
193  TRACE("(%p)->(%p)\n", iface, pAMMediaStream);
194 
195  streams = CoTaskMemRealloc(This->streams, (This->nb_streams + 1) * sizeof(IAMMediaStream*));
196  if (!streams)
197  return E_OUTOFMEMORY;
198  This->streams = streams;
199 
200  hr = IAMMediaStream_JoinFilter(pAMMediaStream, iface);
201  if (FAILED(hr))
202  return hr;
203 
204  This->streams[This->nb_streams] = pAMMediaStream;
205  This->nb_streams++;
206 
207  IAMMediaStream_AddRef(pAMMediaStream);
208 
209  return S_OK;
210 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT hr
Definition: shlfolder.c:183
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define TRACE(s)
Definition: solgame.cpp:4
LONG HRESULT
Definition: typedefs.h:77
#define S_OK
Definition: intsafe.h:59
LPVOID WINAPI CoTaskMemRealloc(LPVOID pvOld, SIZE_T size)
Definition: ifs.c:438

◆ MediaStreamFilterImpl_AddRef()

static ULONG WINAPI MediaStreamFilterImpl_AddRef ( IMediaStreamFilter iface)
static

Definition at line 72 of file mediastreamfilter.c.

73 {
75  ULONG ref = BaseFilterImpl_AddRef(&This->filter.IBaseFilter_iface);
76 
77  TRACE("(%p)->(): new ref = %u\n", iface, ref);
78 
79  return ref;
80 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
Definition: send.c:47
GLenum GLint ref
Definition: glext.h:6028
#define TRACE(s)
Definition: solgame.cpp:4
ULONG WINAPI BaseFilterImpl_AddRef(IBaseFilter *iface)
Definition: filter.c:54
unsigned int ULONG
Definition: retypes.h:1

◆ MediaStreamFilterImpl_EndOfStream()

static HRESULT WINAPI MediaStreamFilterImpl_EndOfStream ( IMediaStreamFilter iface)
static

Definition at line 276 of file mediastreamfilter.c.

277 {
278  FIXME("(%p)->(): Stub!\n", iface);
279 
280  return E_NOTIMPL;
281 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_EnumMediaStreams()

static HRESULT WINAPI MediaStreamFilterImpl_EnumMediaStreams ( IMediaStreamFilter iface,
LONG  Index,
IMediaStream **  ppMediaStream 
)
static

Definition at line 234 of file mediastreamfilter.c.

235 {
236  FIXME("(%p)->(%d,%p): Stub!\n", iface, Index, ppMediaStream);
237 
238  return E_NOTIMPL;
239 }
#define FIXME(fmt,...)
Definition: debug.h:110
static const UCHAR Index[8]
Definition: usbohci.c:18
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_EnumPins()

static HRESULT WINAPI MediaStreamFilterImpl_EnumPins ( IMediaStreamFilter iface,
IEnumPins **  enum_pins 
)
static

Definition at line 154 of file mediastreamfilter.c.

155 {
157  return BaseFilterImpl_EnumPins(&This->filter.IBaseFilter_iface, enum_pins);
158 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_EnumPins(IBaseFilter *iface, IEnumPins **ppEnum)
Definition: filter.c:135

◆ MediaStreamFilterImpl_FindPin()

static HRESULT WINAPI MediaStreamFilterImpl_FindPin ( IMediaStreamFilter iface,
LPCWSTR  id,
IPin **  pin 
)
static

Definition at line 160 of file mediastreamfilter.c.

161 {
162  FIXME("(%p)->(%s,%p): Stub!\n", iface, debugstr_w(id), pin);
163 
164  return E_NOTIMPL;
165 }
Definition: regsvr.c:103
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_Flush()

static HRESULT WINAPI MediaStreamFilterImpl_Flush ( IMediaStreamFilter iface,
BOOL  bCancelEOS 
)
static

Definition at line 269 of file mediastreamfilter.c.

270 {
271  FIXME("(%p)->(%d): Stub!\n", iface, bCancelEOS);
272 
273  return E_NOTIMPL;
274 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_GetClassID()

static HRESULT WINAPI MediaStreamFilterImpl_GetClassID ( IMediaStreamFilter iface,
CLSID clsid 
)
static

Definition at line 107 of file mediastreamfilter.c.

108 {
110  return BaseFilterImpl_GetClassID(&This->filter.IBaseFilter_iface, clsid);
111 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_GetClassID(IBaseFilter *iface, CLSID *pClsid)
Definition: filter.c:77
REFCLSID clsid
Definition: msctf.c:82

◆ MediaStreamFilterImpl_GetCurrentStreamTime()

static HRESULT WINAPI MediaStreamFilterImpl_GetCurrentStreamTime ( IMediaStreamFilter iface,
REFERENCE_TIME pCurrentStreamTime 
)
static

Definition at line 255 of file mediastreamfilter.c.

256 {
257  FIXME("(%p)->(%p): Stub!\n", iface, pCurrentStreamTime);
258 
259  return E_NOTIMPL;
260 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_GetMediaStream()

static HRESULT WINAPI MediaStreamFilterImpl_GetMediaStream ( IMediaStreamFilter iface,
REFMSPID  idPurpose,
IMediaStream **  ppMediaStream 
)
static

Definition at line 212 of file mediastreamfilter.c.

213 {
215  MSPID purpose_id;
216  unsigned int i;
217 
218  TRACE("(%p)->(%s,%p)\n", iface, debugstr_guid(idPurpose), ppMediaStream);
219 
220  for (i = 0; i < This->nb_streams; i++)
221  {
222  IAMMediaStream_GetInformation(This->streams[i], &purpose_id, NULL);
223  if (IsEqualIID(&purpose_id, idPurpose))
224  {
225  *ppMediaStream = (IMediaStream *)This->streams[i];
226  IMediaStream_AddRef(*ppMediaStream);
227  return S_OK;
228  }
229  }
230 
231  return MS_E_NOSTREAM;
232 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
#define S_OK
Definition: intsafe.h:59
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ MediaStreamFilterImpl_GetPin()

static IPin* WINAPI MediaStreamFilterImpl_GetPin ( BaseFilter iface,
int  pos 
)
static

Definition at line 311 of file mediastreamfilter.c.

312 {
314 
315  if (pos < This->nb_streams)
316  {
317  IPin *pin = NULL;
318  IAMMediaStream_QueryInterface(This->streams[pos], &IID_IPin, (void **)&pin);
319  return pin;
320  }
321 
322  return NULL;
323 }
Definition: regsvr.c:103
smooth NULL
Definition: ftsmooth.c:416
Definition: axcore.idl:91
const GUID IID_IPin
Definition: pincontrol.cpp:15

◆ MediaStreamFilterImpl_GetPinCount()

static LONG WINAPI MediaStreamFilterImpl_GetPinCount ( BaseFilter iface)
static

Definition at line 325 of file mediastreamfilter.c.

326 {
328 
329  return This->nb_streams;
330 }

◆ MediaStreamFilterImpl_GetState()

static HRESULT WINAPI MediaStreamFilterImpl_GetState ( IMediaStreamFilter iface,
DWORD  ms_timeout,
FILTER_STATE *  state 
)
static

Definition at line 136 of file mediastreamfilter.c.

137 {
139  return BaseFilterImpl_GetState(&This->filter.IBaseFilter_iface, ms_timeout, state);
140 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_GetState(IBaseFilter *iface, DWORD dwMilliSecsTimeout, FILTER_STATE *pState)
Definition: filter.c:87
static int state
Definition: maze.c:121

◆ MediaStreamFilterImpl_GetSyncSource()

static HRESULT WINAPI MediaStreamFilterImpl_GetSyncSource ( IMediaStreamFilter iface,
IReferenceClock **  clock 
)
static

Definition at line 148 of file mediastreamfilter.c.

149 {
151  return BaseFilterImpl_GetSyncSource(&This->filter.IBaseFilter_iface, clock);
152 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
_Check_return_ _CRTIMP clock_t __cdecl clock(void)
Definition: clock.c:23
HRESULT WINAPI BaseFilterImpl_GetSyncSource(IBaseFilter *iface, IReferenceClock **ppClock)
Definition: filter.c:119

◆ MediaStreamFilterImpl_JoinFilterGraph()

static HRESULT WINAPI MediaStreamFilterImpl_JoinFilterGraph ( IMediaStreamFilter iface,
IFilterGraph graph,
LPCWSTR  name 
)
static

Definition at line 173 of file mediastreamfilter.c.

174 {
176  return BaseFilterImpl_JoinFilterGraph(&This->filter.IBaseFilter_iface, graph, name);
177 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
Definition: name.c:36
HRESULT WINAPI BaseFilterImpl_JoinFilterGraph(IBaseFilter *iface, IFilterGraph *pGraph, LPCWSTR pName)
Definition: filter.c:159

◆ MediaStreamFilterImpl_Pause()

static HRESULT WINAPI MediaStreamFilterImpl_Pause ( IMediaStreamFilter iface)
static

Definition at line 122 of file mediastreamfilter.c.

123 {
124  FIXME("(%p)->(): Stub!\n", iface);
125 
126  return E_NOTIMPL;
127 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_QueryFilterInfo()

static HRESULT WINAPI MediaStreamFilterImpl_QueryFilterInfo ( IMediaStreamFilter iface,
FILTER_INFO *  info 
)
static

Definition at line 167 of file mediastreamfilter.c.

168 {
170  return BaseFilterImpl_QueryFilterInfo(&This->filter.IBaseFilter_iface, info);
171 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_QueryFilterInfo(IBaseFilter *iface, FILTER_INFO *pInfo)
Definition: filter.c:145

◆ MediaStreamFilterImpl_QueryInterface()

static HRESULT WINAPI MediaStreamFilterImpl_QueryInterface ( IMediaStreamFilter iface,
REFIID  riid,
void **  ret_iface 
)
static

Definition at line 50 of file mediastreamfilter.c.

51 {
52  TRACE("(%p)->(%s, %p)\n", iface, debugstr_guid(riid), ret_iface);
53 
54  *ret_iface = NULL;
55 
56  if (IsEqualIID(riid, &IID_IUnknown) ||
58  IsEqualIID(riid, &IID_IMediaFilter) ||
60  IsEqualIID(riid, &IID_IMediaStreamFilter))
61  *ret_iface = iface;
62 
63  if (*ret_iface)
64  {
65  IMediaStreamFilter_AddRef(*ret_iface);
66  return S_OK;
67  }
68 
69  return E_NOINTERFACE;
70 }
const GUID IID_IBaseFilter
#define E_NOINTERFACE
Definition: winerror.h:2364
REFIID riid
Definition: precomp.h:44
const GUID IID_IPersist
Definition: proxy.cpp:14
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
const GUID IID_IUnknown
#define S_OK
Definition: intsafe.h:59
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95

◆ MediaStreamFilterImpl_QueryVendorInfo()

static HRESULT WINAPI MediaStreamFilterImpl_QueryVendorInfo ( IMediaStreamFilter iface,
LPWSTR vendor_info 
)
static

Definition at line 179 of file mediastreamfilter.c.

180 {
182  return BaseFilterImpl_QueryVendorInfo(&This->filter.IBaseFilter_iface, vendor_info);
183 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_QueryVendorInfo(IBaseFilter *iface, LPWSTR *pVendorInfo)
Definition: filter.c:178

◆ MediaStreamFilterImpl_ReferenceTimeToStreamTime()

static HRESULT WINAPI MediaStreamFilterImpl_ReferenceTimeToStreamTime ( IMediaStreamFilter iface,
REFERENCE_TIME pTime 
)
static

Definition at line 248 of file mediastreamfilter.c.

249 {
250  FIXME("(%p)->(%p): Stub!\n", iface, pTime);
251 
252  return E_NOTIMPL;
253 }
#define FIXME(fmt,...)
Definition: debug.h:110
_In_ PCCERT_CONTEXT _In_opt_ LPFILETIME pTime
Definition: wincrypt.h:4840
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_Release()

static ULONG WINAPI MediaStreamFilterImpl_Release ( IMediaStreamFilter iface)
static

Definition at line 82 of file mediastreamfilter.c.

83 {
85  ULONG ref = InterlockedDecrement(&This->filter.refCount);
86 
87  TRACE("(%p)->(): new ref = %u\n", iface, ref);
88 
89  if (!ref)
90  {
91  ULONG i;
92  for (i = 0; i < This->nb_streams; i++)
93  {
94  IAMMediaStream_JoinFilter(This->streams[i], NULL);
95  IAMMediaStream_Release(This->streams[i]);
96  }
97  CoTaskMemFree(This->streams);
98  BaseFilter_Destroy(&This->filter);
100  }
101 
102  return ref;
103 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:420
Definition: send.c:47
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLenum GLint ref
Definition: glext.h:6028
smooth NULL
Definition: ftsmooth.c:416
HRESULT WINAPI BaseFilter_Destroy(BaseFilter *This)
Definition: filter.c:214
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
#define InterlockedDecrement
Definition: armddk.h:52
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:402

◆ MediaStreamFilterImpl_Run()

static HRESULT WINAPI MediaStreamFilterImpl_Run ( IMediaStreamFilter iface,
REFERENCE_TIME  start 
)
static

Definition at line 129 of file mediastreamfilter.c.

130 {
131  FIXME("(%p)->(%s): Stub!\n", iface, wine_dbgstr_longlong(start));
132 
133  return E_NOTIMPL;
134 }
#define FIXME(fmt,...)
Definition: debug.h:110
GLuint start
Definition: gl.h:1545
#define E_NOTIMPL
Definition: ddrawi.h:99
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:41

◆ MediaStreamFilterImpl_SetSyncSource()

static HRESULT WINAPI MediaStreamFilterImpl_SetSyncSource ( IMediaStreamFilter iface,
IReferenceClock clock 
)
static

Definition at line 142 of file mediastreamfilter.c.

143 {
145  return BaseFilterImpl_SetSyncSource(&This->filter.IBaseFilter_iface, clock);
146 }
static IMediaStreamFilterImpl * impl_from_IMediaStreamFilter(IMediaStreamFilter *iface)
HRESULT WINAPI BaseFilterImpl_SetSyncSource(IBaseFilter *iface, IReferenceClock *pClock)
Definition: filter.c:101
_Check_return_ _CRTIMP clock_t __cdecl clock(void)
Definition: clock.c:23

◆ MediaStreamFilterImpl_Stop()

static HRESULT WINAPI MediaStreamFilterImpl_Stop ( IMediaStreamFilter iface)
static

Definition at line 115 of file mediastreamfilter.c.

116 {
117  FIXME("(%p)->(): Stub!\n", iface);
118 
119  return E_NOTIMPL;
120 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_SupportSeeking()

static HRESULT WINAPI MediaStreamFilterImpl_SupportSeeking ( IMediaStreamFilter iface,
BOOL  bRenderer 
)
static

Definition at line 241 of file mediastreamfilter.c.

242 {
243  FIXME("(%p)->(%d): Stub!\n", iface, bRenderer);
244 
245  return E_NOTIMPL;
246 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ MediaStreamFilterImpl_WaitUntil()

static HRESULT WINAPI MediaStreamFilterImpl_WaitUntil ( IMediaStreamFilter iface,
REFERENCE_TIME  WaitStreamTime 
)
static

Definition at line 262 of file mediastreamfilter.c.

263 {
264  FIXME("(%p)->(%s): Stub!\n", iface, wine_dbgstr_longlong(WaitStreamTime));
265 
266  return E_NOTIMPL;
267 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define E_NOTIMPL
Definition: ddrawi.h:99
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:41

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( amstream  )

Variable Documentation

◆ BaseFuncTable

const BaseFilterFuncTable BaseFuncTable
static
Initial value:
= {
}
static IPin *WINAPI MediaStreamFilterImpl_GetPin(BaseFilter *iface, int pos)
static LONG WINAPI MediaStreamFilterImpl_GetPinCount(BaseFilter *iface)

Definition at line 332 of file mediastreamfilter.c.

Referenced by MediaStreamFilter_create().

◆ MediaStreamFilter_Vtbl

const IMediaStreamFilterVtbl MediaStreamFilter_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI MediaStreamFilterImpl_GetMediaStream(IMediaStreamFilter *iface, REFMSPID idPurpose, IMediaStream **ppMediaStream)
static HRESULT WINAPI MediaStreamFilterImpl_GetClassID(IMediaStreamFilter *iface, CLSID *clsid)
static HRESULT WINAPI MediaStreamFilterImpl_GetCurrentStreamTime(IMediaStreamFilter *iface, REFERENCE_TIME *pCurrentStreamTime)
static HRESULT WINAPI MediaStreamFilterImpl_SetSyncSource(IMediaStreamFilter *iface, IReferenceClock *clock)
static HRESULT WINAPI MediaStreamFilterImpl_GetSyncSource(IMediaStreamFilter *iface, IReferenceClock **clock)
static HRESULT WINAPI MediaStreamFilterImpl_QueryInterface(IMediaStreamFilter *iface, REFIID riid, void **ret_iface)
static ULONG WINAPI MediaStreamFilterImpl_AddRef(IMediaStreamFilter *iface)
static HRESULT WINAPI MediaStreamFilterImpl_AddMediaStream(IMediaStreamFilter *iface, IAMMediaStream *pAMMediaStream)
static HRESULT WINAPI MediaStreamFilterImpl_Pause(IMediaStreamFilter *iface)
static HRESULT WINAPI MediaStreamFilterImpl_EndOfStream(IMediaStreamFilter *iface)
static HRESULT WINAPI MediaStreamFilterImpl_EnumPins(IMediaStreamFilter *iface, IEnumPins **enum_pins)
static HRESULT WINAPI MediaStreamFilterImpl_WaitUntil(IMediaStreamFilter *iface, REFERENCE_TIME WaitStreamTime)
static ULONG WINAPI MediaStreamFilterImpl_Release(IMediaStreamFilter *iface)
static HRESULT WINAPI MediaStreamFilterImpl_Flush(IMediaStreamFilter *iface, BOOL bCancelEOS)
static HRESULT WINAPI MediaStreamFilterImpl_FindPin(IMediaStreamFilter *iface, LPCWSTR id, IPin **pin)
static HRESULT WINAPI MediaStreamFilterImpl_Stop(IMediaStreamFilter *iface)
static HRESULT WINAPI MediaStreamFilterImpl_QueryVendorInfo(IMediaStreamFilter *iface, LPWSTR *vendor_info)
static HRESULT WINAPI MediaStreamFilterImpl_JoinFilterGraph(IMediaStreamFilter *iface, IFilterGraph *graph, LPCWSTR name)
static HRESULT WINAPI MediaStreamFilterImpl_ReferenceTimeToStreamTime(IMediaStreamFilter *iface, REFERENCE_TIME *pTime)
static HRESULT WINAPI MediaStreamFilterImpl_QueryFilterInfo(IMediaStreamFilter *iface, FILTER_INFO *info)
static HRESULT WINAPI MediaStreamFilterImpl_Run(IMediaStreamFilter *iface, REFERENCE_TIME start)
static HRESULT WINAPI MediaStreamFilterImpl_GetState(IMediaStreamFilter *iface, DWORD ms_timeout, FILTER_STATE *state)
static HRESULT WINAPI MediaStreamFilterImpl_SupportSeeking(IMediaStreamFilter *iface, BOOL bRenderer)
static HRESULT WINAPI MediaStreamFilterImpl_EnumMediaStreams(IMediaStreamFilter *iface, LONG Index, IMediaStream **ppMediaStream)

Definition at line 283 of file mediastreamfilter.c.

Referenced by MediaStreamFilter_create().