46 return IUnknown_QueryInterface(passthrough->
outer_unk, iid,
out);
53 return IUnknown_AddRef(passthrough->
outer_unk);
60 return IUnknown_Release(passthrough->
outer_unk);
70 FIXME(
"Re-initializing?\n");
90 return IUnknown_QueryInterface(passthrough->
outer_unk, iid,
out);
97 return IUnknown_AddRef(passthrough->
outer_unk);
104 return IUnknown_Release(passthrough->
outer_unk);
115 hr = IPin_QueryInterface(
pin,
riid, ppvObj);
127 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pCapabilities);
130 hr = IMediaSeeking_GetCapabilities(
seek, pCapabilities);
131 IMediaSeeking_Release(
seek);
143 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pCapabilities);
146 hr = IMediaSeeking_CheckCapabilities(
seek, pCapabilities);
147 IMediaSeeking_Release(
seek);
162 hr = IMediaSeeking_IsFormatSupported(
seek, pFormat);
163 IMediaSeeking_Release(
seek);
175 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pFormat);
178 hr = IMediaSeeking_QueryPreferredFormat(
seek, pFormat);
179 IMediaSeeking_Release(
seek);
191 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pFormat);
194 hr = IMediaSeeking_GetTimeFormat(
seek, pFormat);
195 IMediaSeeking_Release(
seek);
210 hr = IMediaSeeking_IsUsingTimeFormat(
seek, pFormat);
211 IMediaSeeking_Release(
seek);
226 hr = IMediaSeeking_SetTimeFormat(
seek, pFormat);
227 IMediaSeeking_Release(
seek);
239 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pDuration);
242 hr = IMediaSeeking_GetDuration(
seek, pDuration);
243 IMediaSeeking_Release(
seek);
255 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pStop);
258 hr = IMediaSeeking_GetStopPosition(
seek, pStop);
259 IMediaSeeking_Release(
seek);
271 TRACE(
"(%p/%p)->(%p)\n", iface,
This, pCurrent);
276 *pCurrent =
This->time_earliest;
281 hr = IMediaSeeking_ConvertTimeFormat(iface, pCurrent,
NULL, *pCurrent, &TIME_FORMAT_MEDIA_TIME);
286 hr = IMediaSeeking_GetCurrentPosition(
seek, pCurrent);
287 IMediaSeeking_Release(
seek);
300 TRACE(
"iface %p, target %p, target_format %s, source %s, source_format %s.\n",
307 IMediaSeeking_Release(
seek);
320 TRACE(
"iface %p, current %p, current_flags %#lx, stop %p, stop_flags %#lx.\n",
321 iface, pCurrent, dwCurrentFlags, pStop, dwStopFlags);
325 hr = IMediaSeeking_SetPositions(
seek, pCurrent, dwCurrentFlags, pStop, dwStopFlags);
326 IMediaSeeking_Release(
seek);
337 TRACE(
"(%p/%p)->(%p, %p)\n", iface,
This, pCurrent, pStop);
340 hr = IMediaSeeking_GetPositions(
seek, pCurrent, pStop);
341 IMediaSeeking_Release(
seek);
353 TRACE(
"(%p/%p)->(%p,%p)\n", iface,
This, pEarliest, pLatest);
356 hr = IMediaSeeking_GetAvailable(
seek, pEarliest, pLatest);
357 IMediaSeeking_Release(
seek);
369 TRACE(
"(%p/%p)->(%e)\n", iface,
This, dRate);
372 hr = IMediaSeeking_SetRate(
seek, dRate);
373 IMediaSeeking_Release(
seek);
385 TRACE(
"(%p/%p)->(%p)\n", iface,
This, dRate);
388 hr = IMediaSeeking_GetRate(
seek, dRate);
389 IMediaSeeking_Release(
seek);
401 TRACE(
"(%p)\n", pPreroll);
404 hr = IMediaSeeking_GetPreroll(
seek, pPreroll);
405 IMediaSeeking_Release(
seek);
440 return IUnknown_QueryInterface(passthrough->
outer_unk, iid,
out);
447 return IUnknown_AddRef(passthrough->
outer_unk);
454 return IUnknown_Release(passthrough->
outer_unk);
477 TRACE(
"iface %p, iid %s, names %p, count %u, lcid %#lx, ids %p.\n",
494 TRACE(
"iface %p, id %ld, iid %s, lcid %#lx, flags %#x, params %p, result %p, excepinfo %p, error_arg %p.\n",
511 TRACE(
"(%p)\n", plength);
515 hr = IMediaPosition_get_Duration(
pos, plength);
516 IMediaPosition_Release(
pos);
529 TRACE(
"iface %p, time %.16e.\n", iface, llTime);
533 hr = IMediaPosition_put_CurrentPosition(
pos, llTime);
534 IMediaPosition_Release(
pos);
547 TRACE(
"(%p)\n", pllTime);
551 hr = IMediaPosition_get_CurrentPosition(
pos, pllTime);
552 IMediaPosition_Release(
pos);
565 TRACE(
"(%p)\n", pllTime);
569 hr = IMediaPosition_get_StopTime(
pos, pllTime);
570 IMediaPosition_Release(
pos);
583 TRACE(
"iface %p, time %.16e.\n", iface, llTime);
587 hr = IMediaPosition_put_StopTime(
pos, llTime);
588 IMediaPosition_Release(
pos);
601 TRACE(
"(%p)\n", pllTime);
605 hr = IMediaPosition_get_PrerollTime(
pos, pllTime);
606 IMediaPosition_Release(
pos);
619 TRACE(
"iface %p, time %.16e.\n", iface, llTime);
623 hr = IMediaPosition_put_PrerollTime(
pos, llTime);
624 IMediaPosition_Release(
pos);
637 TRACE(
"(%f)\n", dRate);
641 hr = IMediaPosition_put_Rate(
pos, dRate);
642 IMediaPosition_Release(
pos);
655 TRACE(
"(%p)\n", pdRate);
659 hr = IMediaPosition_get_Rate(
pos, pdRate);
660 IMediaPosition_Release(
pos);
673 TRACE(
"(%p)\n", pCanSeekForward);
677 hr = IMediaPosition_CanSeekForward(
pos, pCanSeekForward);
678 IMediaPosition_Release(
pos);
691 TRACE(
"(%p)\n", pCanSeekBackward);
695 hr = IMediaPosition_CanSeekBackward(
pos, pCanSeekBackward);
696 IMediaPosition_Release(
pos);
727 memset(passthrough, 0,
sizeof(*passthrough));
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
GLuint GLuint GLsizei count
GLenum const GLfloat * params
static EXCEPINFO excepinfo
static VARIANTARG static DISPID
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
static HRESULT WINAPI MediaSeekingPassThru_GetAvailable(IMediaSeeking *iface, LONGLONG *pEarliest, LONGLONG *pLatest)
static HRESULT WINAPI MediaPositionPassThru_GetIDsOfNames(IMediaPosition *iface, REFIID iid, LPOLESTR *names, UINT count, LCID lcid, DISPID *ids)
static HRESULT WINAPI MediaSeekingPassThru_GetPreroll(IMediaSeeking *iface, LONGLONG *pPreroll)
static ULONG WINAPI SeekingPassThru_Release(ISeekingPassThru *iface)
static const IMediaSeekingVtbl IMediaSeekingPassThru_Vtbl
static HRESULT WINAPI MediaSeekingPassThru_GetDuration(IMediaSeeking *iface, LONGLONG *pDuration)
static HRESULT WINAPI MediaPositionPassThru_put_CurrentPosition(IMediaPosition *iface, REFTIME llTime)
void strmbase_passthrough_update_time(struct strmbase_passthrough *passthrough, REFERENCE_TIME time)
static HRESULT WINAPI MediaPositionPassThru_get_Duration(IMediaPosition *iface, REFTIME *plength)
static HRESULT WINAPI MediaSeekingPassThru_IsFormatSupported(IMediaSeeking *iface, const GUID *pFormat)
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfoCount(IMediaPosition *iface, UINT *count)
static HRESULT WINAPI MediaPositionPassThru_put_StopTime(IMediaPosition *iface, REFTIME llTime)
static struct strmbase_passthrough * impl_from_ISeekingPassThru(ISeekingPassThru *iface)
static struct strmbase_passthrough * impl_from_IMediaPosition(IMediaPosition *iface)
static HRESULT WINAPI MediaSeekingPassThru_QueryInterface(IMediaSeeking *iface, REFIID iid, void **out)
static HRESULT WINAPI MediaPositionPassThru_CanSeekForward(IMediaPosition *iface, LONG *pCanSeekForward)
static ULONG WINAPI MediaPositionPassThru_Release(IMediaPosition *iface)
static HRESULT WINAPI MediaSeekingPassThru_GetCurrentPosition(IMediaSeeking *iface, LONGLONG *pCurrent)
static ULONG WINAPI SeekingPassThru_AddRef(ISeekingPassThru *iface)
static HRESULT WINAPI SeekingPassThru_QueryInterface(ISeekingPassThru *iface, REFIID iid, void **out)
void strmbase_passthrough_cleanup(struct strmbase_passthrough *passthrough)
static HRESULT WINAPI MediaPositionPassThru_get_Rate(IMediaPosition *iface, double *pdRate)
static HRESULT WINAPI MediaSeekingPassThru_ConvertTimeFormat(IMediaSeeking *iface, LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
static ULONG WINAPI MediaPositionPassThru_AddRef(IMediaPosition *iface)
static HRESULT WINAPI MediaSeekingPassThru_SetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
static const ISeekingPassThruVtbl ISeekingPassThru_Vtbl
static HRESULT WINAPI MediaSeekingPassThru_QueryPreferredFormat(IMediaSeeking *iface, GUID *pFormat)
static HRESULT WINAPI MediaPositionPassThru_get_CurrentPosition(IMediaPosition *iface, REFTIME *pllTime)
static HRESULT WINAPI MediaPositionPassThru_get_StopTime(IMediaPosition *iface, REFTIME *pllTime)
static HRESULT WINAPI MediaSeekingPassThru_IsUsingTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
static HRESULT WINAPI MediaSeekingPassThru_GetStopPosition(IMediaSeeking *iface, LONGLONG *pStop)
static HRESULT WINAPI MediaPositionPassThru_get_PrerollTime(IMediaPosition *iface, REFTIME *pllTime)
static HRESULT WINAPI MediaSeekingPassThru_GetCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
static HRESULT WINAPI MediaPositionPassThru_put_PrerollTime(IMediaPosition *iface, REFTIME llTime)
static HRESULT WINAPI MediaPositionPassThru_QueryInterface(IMediaPosition *iface, REFIID iid, void **out)
static HRESULT WINAPI MediaSeekingPassThru_SetRate(IMediaSeeking *iface, double dRate)
static const IMediaPositionVtbl IMediaPositionPassThru_Vtbl
static ULONG WINAPI MediaSeekingPassThru_AddRef(IMediaSeeking *iface)
static HRESULT WINAPI MediaPositionPassThru_CanSeekBackward(IMediaPosition *iface, LONG *pCanSeekBackward)
static HRESULT WINAPI MediaPositionPassThru_Invoke(IMediaPosition *iface, DISPID id, REFIID iid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepinfo, UINT *error_arg)
void strmbase_passthrough_init(struct strmbase_passthrough *passthrough, IUnknown *outer)
static HRESULT WINAPI MediaSeekingPassThru_GetTimeFormat(IMediaSeeking *iface, GUID *pFormat)
static struct strmbase_passthrough * impl_from_IMediaSeeking(IMediaSeeking *iface)
static HRESULT WINAPI MediaSeekingPassThru_SetTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
static HRESULT get_connected(struct strmbase_passthrough *This, REFIID riid, void **ppvObj)
static HRESULT WINAPI MediaSeekingPassThru_CheckCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
static HRESULT WINAPI SeekingPassThru_Init(ISeekingPassThru *iface, BOOL renderer, IPin *pin)
void strmbase_passthrough_invalidate_time(struct strmbase_passthrough *passthrough)
static HRESULT WINAPI MediaSeekingPassThru_GetRate(IMediaSeeking *iface, double *dRate)
static ULONG WINAPI MediaSeekingPassThru_Release(IMediaSeeking *iface)
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfo(IMediaPosition *iface, UINT index, LCID lcid, ITypeInfo **typeinfo)
void strmbase_passthrough_eos(struct strmbase_passthrough *passthrough)
static HRESULT WINAPI MediaSeekingPassThru_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, LONGLONG *pStop)
static HRESULT WINAPI MediaPositionPassThru_put_Rate(IMediaPosition *iface, double dRate)
int seek(void *fd, ulong off, int mode)
HRESULT strmbase_get_typeinfo(enum strmbase_type_id tid, ITypeInfo **typeinfo)
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
ISeekingPassThru ISeekingPassThru_iface
IMediaPosition IMediaPosition_iface
IMediaSeeking IMediaSeeking_iface
REFERENCE_TIME time_earliest
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
#define VFW_E_NOT_CONNECTED
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO