ReactOS 0.4.17-dev-966-gf06eace
strmbase.h
Go to the documentation of this file.
1/*
2 * Header file for Wine's strmbase implementation
3 *
4 * Copyright 2003 Robert Shearman
5 * Copyright 2010 Aric Stewart, CodeWeavers
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#include "dshow.h"
23#include "wine/debug.h"
24
26void WINAPI FreeMediaType(AM_MEDIA_TYPE * pMediaType);
28void WINAPI DeleteMediaType(AM_MEDIA_TYPE * pMediaType);
29
31
32static inline const char *debugstr_time(REFERENCE_TIME time)
33{
34 ULONGLONG abstime = time >= 0 ? time : -time;
35 unsigned int i = 0, j = 0;
36 char buffer[23], rev[23];
37
38 while (abstime || i <= 8)
39 {
40 buffer[i++] = '0' + (abstime % 10);
41 abstime /= 10;
42 if (i == 7) buffer[i++] = '.';
43 }
44 if (time < 0) buffer[i++] = '-';
45
46 while (i--) rev[j++] = buffer[i];
47 while (rev[j-1] == '0' && rev[j-2] != '.') --j;
48 rev[j] = 0;
49
50 return wine_dbg_sprintf("%s", rev);
51}
52
53/* Pin functions */
54
56{
60 WCHAR name[128];
61 WCHAR id[128];
64
65 const struct strmbase_pin_ops *ops;
66};
67
69{
70 /* Required for QueryAccept(), Connect(), ReceiveConnection(). */
72 /* Required for EnumMediaTypes(). */
73 HRESULT (*pin_get_media_type)(struct strmbase_pin *pin, unsigned int index, AM_MEDIA_TYPE *mt);
74 HRESULT (*pin_query_interface)(struct strmbase_pin *pin, REFIID iid, void **out);
75};
76
78{
82
84};
85
89
91{
93
94 /* Required for Connect(). */
96 /* Required for BaseOutputPinImpl_DecideAllocator */
98 /* Required for BaseOutputPinImpl_AttemptConnection */
100
102};
103
105{
107
112
114};
115
117
119{
122 HRESULT (*sink_connect)(struct strmbase_sink *pin, IPin *peer, const AM_MEDIA_TYPE *mt);
128};
129
130/* Base Pin */
133
136 const WCHAR *name, const struct strmbase_source_ops *func_table);
137
139 const WCHAR *name, const struct strmbase_sink_ops *ops, IMemAllocator *allocator);
141
143{
150
151 FILTER_STATE state;
157
159};
160
162{
163 struct strmbase_pin *(*filter_get_pin)(struct strmbase_filter *iface, unsigned int index);
166
172};
173
175
177 const CLSID *clsid, const struct strmbase_filter_ops *func_table);
179
180/* Source Seeking */
184
185typedef struct SourceSeeking
186{
188
194 double dRate;
199
200HRESULT strmbase_seeking_init(SourceSeeking *seeking, const IMediaSeekingVtbl *vtbl,
201 SourceSeeking_ChangeStop fnChangeStop, SourceSeeking_ChangeStart fnChangeStart,
202 SourceSeeking_ChangeRate fnChangeRate);
204
215HRESULT WINAPI SourceSeekingImpl_ConvertTimeFormat(IMediaSeeking * iface, LONGLONG * pTarget, const GUID * pTargetFormat, LONGLONG Source, const GUID * pSourceFormat);
216HRESULT WINAPI SourceSeekingImpl_SetPositions(IMediaSeeking * iface, LONGLONG * pCurrent, DWORD dwCurrentFlags, LONGLONG * pStop, DWORD dwStopFlags);
222
224{
233
236
238{
241 IMediaPosition IMediaPosition_iface;
242
249};
250
252void strmbase_passthrough_cleanup(struct strmbase_passthrough *passthrough);
253
254void strmbase_passthrough_eos(struct strmbase_passthrough *passthrough);
257
259{
263
265
266 /* Signaled when the filter has completed a state change. The filter waits
267 * for this event in IBaseFilter::GetState(). */
269 /* Signaled when the sample presentation time occurs. The streaming thread
270 * waits for this event in Receive() if applicable. */
272 /* Signaled when the filter is running. The streaming thread waits for this
273 * event in Receive() while paused. */
275 /* Signaled when a flush or state change occurs, i.e. anything that needs
276 * to immediately unblock the streaming thread. */
279
281
284 double avg_rate;
285
287
289};
290
292{
303};
304
306 const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops);
unsigned int rate
Definition: audiorecord.c:87
enum _PinDirection PIN_DIRECTION
int rev
Definition: sort.c:17
#define index(s, c)
Definition: various.h:29
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
FxIoTarget * pTarget
Definition: fxdeviceapi.cpp:97
GLuint start
Definition: gl.h:1545
GLuint buffer
Definition: glext.h:5915
GLsizei GLenum GLboolean sink
Definition: glext.h:5672
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
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 GLint GLint j
Definition: glfuncs.h:250
static TfClientId tid
Definition: axcore.idl:92
__u16 time
Definition: mkdosfs.c:8
static IUnknown * outer
Definition: compobj.c:82
const CLSID * clsid
Definition: msctf.cpp:50
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
HRESULT WINAPI SourceSeekingImpl_SetTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
Definition: seeking.c:138
static const char * debugstr_time(REFERENCE_TIME time)
Definition: strmbase.h:32
void strmbase_passthrough_update_time(struct strmbase_passthrough *passthrough, REFERENCE_TIME time)
Definition: pospass.c:744
HRESULT WINAPI SourceSeekingImpl_SetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
Definition: seeking.c:219
void strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer, const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops)
Definition: renderer.c:584
strmbase_type_id
Definition: strmbase.h:224
@ last_tid
Definition: strmbase.h:231
@ IBasicVideo_tid
Definition: strmbase.h:226
@ IVideoWindow_tid
Definition: strmbase.h:230
@ IBasicAudio_tid
Definition: strmbase.h:225
@ IMediaEvent_tid
Definition: strmbase.h:228
@ IMediaPosition_tid
Definition: strmbase.h:229
@ IMediaControl_tid
Definition: strmbase.h:227
HRESULT WINAPI CopyMediaType(AM_MEDIA_TYPE *pDest, const AM_MEDIA_TYPE *pSrc)
Definition: mediatype.c:150
void WINAPI FreeMediaType(AM_MEDIA_TYPE *pMediaType)
Definition: mediatype.c:165
HRESULT WINAPI SourceSeekingImpl_IsUsingTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
Definition: seeking.c:123
HRESULT strmbase_get_typeinfo(enum strmbase_type_id tid, ITypeInfo **typeinfo)
Definition: dispatch.c:38
HRESULT WINAPI BaseOutputPinImpl_DecideAllocator(struct strmbase_source *pin, IMemInputPin *peer, IMemAllocator **allocator)
Definition: pin.c:680
void strmbase_passthrough_cleanup(struct strmbase_passthrough *passthrough)
Definition: pospass.c:738
HRESULT strmbase_seeking_init(SourceSeeking *seeking, const IMediaSeekingVtbl *vtbl, SourceSeeking_ChangeStop fnChangeStop, SourceSeeking_ChangeStart fnChangeStart, SourceSeeking_ChangeRate fnChangeRate)
Definition: seeking.c:31
void strmbase_seeking_cleanup(SourceSeeking *seeking)
Definition: seeking.c:58
HRESULT(WINAPI * BaseOutputPin_DecideAllocator)(struct strmbase_source *pin, IMemInputPin *peer, IMemAllocator **allocator)
Definition: strmbase.h:88
HRESULT WINAPI SourceSeekingImpl_GetRate(IMediaSeeking *iface, double *dRate)
Definition: seeking.c:309
void strmbase_source_init(struct strmbase_source *pin, struct strmbase_filter *filter, const WCHAR *name, const struct strmbase_source_ops *func_table)
Definition: pin.c:765
HRESULT WINAPI SourceSeekingImpl_GetTimeFormat(IMediaSeeking *iface, GUID *pFormat)
Definition: seeking.c:111
HRESULT WINAPI SourceSeekingImpl_GetCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
Definition: seeking.c:64
HRESULT WINAPI SourceSeekingImpl_GetCurrentPosition(IMediaSeeking *iface, LONGLONG *pCurrent)
Definition: seeking.c:173
void strmbase_dump_media_type(const AM_MEDIA_TYPE *mt)
Definition: mediatype.c:58
HRESULT WINAPI SourceSeekingImpl_GetPreroll(IMediaSeeking *iface, LONGLONG *pPreroll)
Definition: seeking.c:323
void strmbase_sink_cleanup(struct strmbase_sink *pin)
Definition: pin.c:1185
AM_MEDIA_TYPE *WINAPI CreateMediaType(AM_MEDIA_TYPE const *pSrc)
Definition: mediatype.c:176
HRESULT(WINAPI * SourceSeeking_ChangeStop)(IMediaSeeking *iface)
Definition: strmbase.h:183
HRESULT(WINAPI * BaseOutputPin_AttemptConnection)(struct strmbase_source *pin, IPin *peer, const AM_MEDIA_TYPE *mt)
Definition: strmbase.h:86
HRESULT(WINAPI * BaseOutputPin_DecideBufferSize)(struct strmbase_source *pin, IMemAllocator *allocator, ALLOCATOR_PROPERTIES *props)
Definition: strmbase.h:87
void strmbase_sink_init(struct strmbase_sink *pin, struct strmbase_filter *filter, const WCHAR *name, const struct strmbase_sink_ops *ops, IMemAllocator *allocator)
Definition: pin.c:1168
void strmbase_renderer_cleanup(struct strmbase_renderer *filter)
Definition: renderer.c:568
HRESULT WINAPI SourceSeekingImpl_SetRate(IMediaSeeking *iface, double dRate)
Definition: seeking.c:286
void strmbase_filter_cleanup(struct strmbase_filter *filter)
Definition: filter.c:540
HRESULT WINAPI SourceSeekingImpl_ConvertTimeFormat(IMediaSeeking *iface, LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
Definition: seeking.c:186
HRESULT(WINAPI * SourceSeeking_ChangeRate)(IMediaSeeking *iface)
Definition: strmbase.h:181
void strmbase_passthrough_init(struct strmbase_passthrough *passthrough, IUnknown *outer)
Definition: pospass.c:725
void strmbase_source_cleanup(struct strmbase_source *pin)
Definition: pin.c:778
void strmbase_filter_init(struct strmbase_filter *filter, IUnknown *outer, const CLSID *clsid, const struct strmbase_filter_ops *func_table)
Definition: filter.c:517
HRESULT WINAPI SourceSeekingImpl_IsFormatSupported(IMediaSeeking *iface, const GUID *pFormat)
Definition: seeking.c:96
HRESULT WINAPI SourceSeekingImpl_GetStopPosition(IMediaSeeking *iface, LONGLONG *pStop)
Definition: seeking.c:159
HRESULT WINAPI BaseOutputPinImpl_AttemptConnection(struct strmbase_source *pin, IPin *peer, const AM_MEDIA_TYPE *mt)
Definition: pin.c:710
void strmbase_passthrough_invalidate_time(struct strmbase_passthrough *passthrough)
Definition: pospass.c:752
VOID WINAPI BaseFilterImpl_IncrementPinVersion(struct strmbase_filter *filter)
Definition: filter.c:512
void WINAPI DeleteMediaType(AM_MEDIA_TYPE *pMediaType)
Definition: mediatype.c:193
HRESULT WINAPI SourceSeekingImpl_GetDuration(IMediaSeeking *iface, LONGLONG *pDuration)
Definition: seeking.c:146
HRESULT WINAPI SourceSeekingImpl_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, LONGLONG *pStop)
Definition: seeking.c:258
HRESULT WINAPI SourceSeekingImpl_CheckCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
Definition: seeking.c:75
HRESULT(WINAPI * BaseInputPin_Receive)(struct strmbase_sink *This, IMediaSample *pSample)
Definition: strmbase.h:116
void strmbase_release_typelibs(void)
Definition: dispatch.c:72
HRESULT WINAPI SourceSeekingImpl_QueryPreferredFormat(IMediaSeeking *iface, GUID *pFormat)
Definition: seeking.c:103
HRESULT(WINAPI * SourceSeeking_ChangeStart)(IMediaSeeking *iface)
Definition: strmbase.h:182
HRESULT WINAPI SourceSeekingImpl_GetAvailable(IMediaSeeking *iface, LONGLONG *pEarliest, LONGLONG *pLatest)
Definition: seeking.c:272
void strmbase_passthrough_eos(struct strmbase_passthrough *passthrough)
Definition: pospass.c:759
LONGLONG llCurrent
Definition: strmbase.h:195
CRITICAL_SECTION cs
Definition: strmbase.h:197
LONGLONG llStop
Definition: strmbase.h:195
double dRate
Definition: strmbase.h:194
SourceSeeking_ChangeRate fnChangeRate
Definition: strmbase.h:192
LONGLONG llDuration
Definition: strmbase.h:195
DWORD dwCapabilities
Definition: strmbase.h:193
SourceSeeking_ChangeStart fnChangeStart
Definition: strmbase.h:191
ULONG refCount
Definition: strmbase.h:189
GUID timeformat
Definition: strmbase.h:196
SourceSeeking_ChangeStop fnChangeStop
Definition: strmbase.h:190
IMediaSeeking IMediaSeeking_iface
Definition: strmbase.h:187
Definition: filter.c:165
Definition: name.c:39
Definition: wave.c:25
HRESULT(* filter_stop_stream)(struct strmbase_filter *iface)
Definition: strmbase.h:169
void(* filter_destroy)(struct strmbase_filter *iface)
Definition: strmbase.h:164
HRESULT(* filter_start_stream)(struct strmbase_filter *iface, REFERENCE_TIME time)
Definition: strmbase.h:168
HRESULT(* filter_init_stream)(struct strmbase_filter *iface)
Definition: strmbase.h:167
HRESULT(* filter_query_interface)(struct strmbase_filter *iface, REFIID iid, void **out)
Definition: strmbase.h:165
HRESULT(* filter_cleanup_stream)(struct strmbase_filter *iface)
Definition: strmbase.h:170
HRESULT(* filter_wait_state)(struct strmbase_filter *iface, DWORD timeout)
Definition: strmbase.h:171
const struct strmbase_filter_ops * ops
Definition: strmbase.h:158
IBaseFilter IBaseFilter_iface
Definition: strmbase.h:144
IUnknown IUnknown_inner
Definition: strmbase.h:145
FILTER_STATE state
Definition: strmbase.h:151
LONG pin_version
Definition: strmbase.h:156
IFilterGraph * graph
Definition: strmbase.h:154
CRITICAL_SECTION filter_cs
Definition: strmbase.h:148
IUnknown * outer_unk
Definition: strmbase.h:146
IReferenceClock * clock
Definition: strmbase.h:152
CRITICAL_SECTION stream_cs
Definition: strmbase.h:149
ISeekingPassThru ISeekingPassThru_iface
Definition: strmbase.h:239
IMediaPosition IMediaPosition_iface
Definition: strmbase.h:241
IMediaSeeking IMediaSeeking_iface
Definition: strmbase.h:240
CRITICAL_SECTION time_cs
Definition: strmbase.h:247
REFERENCE_TIME time_earliest
Definition: strmbase.h:248
IUnknown * outer_unk
Definition: strmbase.h:243
HRESULT(* pin_get_media_type)(struct strmbase_pin *pin, unsigned int index, AM_MEDIA_TYPE *mt)
Definition: strmbase.h:73
HRESULT(* pin_query_accept)(struct strmbase_pin *pin, const AM_MEDIA_TYPE *mt)
Definition: strmbase.h:71
HRESULT(* pin_query_interface)(struct strmbase_pin *pin, REFIID iid, void **out)
Definition: strmbase.h:74
IPin * peer
Definition: strmbase.h:62
IPin IPin_iface
Definition: strmbase.h:57
const struct strmbase_pin_ops * ops
Definition: strmbase.h:65
AM_MEDIA_TYPE mt
Definition: strmbase.h:63
struct strmbase_filter * filter
Definition: strmbase.h:58
PIN_DIRECTION dir
Definition: strmbase.h:59
HRESULT(* renderer_query_accept)(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
Definition: strmbase.h:293
HRESULT(* renderer_render)(struct strmbase_renderer *iface, IMediaSample *sample)
Definition: strmbase.h:294
void(* renderer_start_stream)(struct strmbase_renderer *iface)
Definition: strmbase.h:296
void(* renderer_init_stream)(struct strmbase_renderer *iface)
Definition: strmbase.h:295
void(* renderer_stop_stream)(struct strmbase_renderer *iface)
Definition: strmbase.h:297
void(* renderer_disconnect)(struct strmbase_renderer *iface)
Definition: strmbase.h:299
HRESULT(* renderer_query_interface)(struct strmbase_renderer *iface, REFIID iid, void **out)
Definition: strmbase.h:301
HRESULT(* renderer_connect)(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
Definition: strmbase.h:298
HRESULT(* renderer_pin_query_interface)(struct strmbase_renderer *iface, REFIID iid, void **out)
Definition: strmbase.h:302
void(* renderer_destroy)(struct strmbase_renderer *iface)
Definition: strmbase.h:300
HANDLE advise_event
Definition: strmbase.h:271
REFERENCE_TIME last_left
Definition: strmbase.h:283
HANDLE state_event
Definition: strmbase.h:268
REFERENCE_TIME avg_pt
Definition: strmbase.h:283
HANDLE flush_event
Definition: strmbase.h:277
IQualityControl * qc_sink
Definition: strmbase.h:282
IMediaSample * current_sample
Definition: strmbase.h:280
REFERENCE_TIME avg_duration
Definition: strmbase.h:283
IQualityControl IQualityControl_iface
Definition: strmbase.h:262
const struct strmbase_renderer_ops * ops
Definition: strmbase.h:286
REFERENCE_TIME stream_start
Definition: strmbase.h:278
struct strmbase_passthrough passthrough
Definition: strmbase.h:261
HANDLE run_event
Definition: strmbase.h:274
void(* sink_disconnect)(struct strmbase_sink *pin)
Definition: strmbase.h:123
HRESULT(* sink_eos)(struct strmbase_sink *pin)
Definition: strmbase.h:124
BaseInputPin_Receive pfnReceive
Definition: strmbase.h:121
HRESULT(* sink_end_flush)(struct strmbase_sink *pin)
Definition: strmbase.h:126
HRESULT(* sink_connect)(struct strmbase_sink *pin, IPin *peer, const AM_MEDIA_TYPE *mt)
Definition: strmbase.h:122
HRESULT(* sink_begin_flush)(struct strmbase_sink *pin)
Definition: strmbase.h:125
HRESULT(* sink_new_segment)(struct strmbase_sink *pin, REFERENCE_TIME start, REFERENCE_TIME stop, double rate)
Definition: strmbase.h:127
const struct strmbase_sink_ops * pFuncsTable
Definition: strmbase.h:113
struct strmbase_pin pin
Definition: strmbase.h:106
IMemAllocator * pAllocator
Definition: strmbase.h:109
BOOL flushing
Definition: strmbase.h:110
IMemAllocator * preferred_allocator
Definition: strmbase.h:111
IMemInputPin IMemInputPin_iface
Definition: strmbase.h:108
BaseOutputPin_DecideAllocator pfnDecideAllocator
Definition: strmbase.h:99
BaseOutputPin_DecideBufferSize pfnDecideBufferSize
Definition: strmbase.h:97
void(* source_disconnect)(struct strmbase_source *pin)
Definition: strmbase.h:101
BaseOutputPin_AttemptConnection pfnAttemptConnection
Definition: strmbase.h:95
IMemInputPin * pMemInputPin
Definition: strmbase.h:80
struct strmbase_pin pin
Definition: strmbase.h:79
const struct strmbase_source_ops * pFuncsTable
Definition: strmbase.h:83
IMemAllocator * pAllocator
Definition: strmbase.h:81
Definition: dhcpd.h:248
int64_t LONGLONG
Definition: typedefs.h:68
uint64_t ULONGLONG
Definition: typedefs.h:67
uint32_t ULONG
Definition: typedefs.h:59
static const WCHAR props[]
Definition: wbemdisp.c:288
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6