ReactOS 0.4.17-dev-1071-gb2116d0
pospass.c File Reference
#include "strmbase_private.h"
Include dependency graph for pospass.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (quartz)
 
static struct strmbase_passthrough * impl_from_ISeekingPassThru (ISeekingPassThru *iface)
 
static struct strmbase_passthrough * impl_from_IMediaSeeking (IMediaSeeking *iface)
 
static struct strmbase_passthrough * impl_from_IMediaPosition (IMediaPosition *iface)
 
static HRESULT WINAPI SeekingPassThru_QueryInterface (ISeekingPassThru *iface, REFIID iid, void **out)
 
static ULONG WINAPI SeekingPassThru_AddRef (ISeekingPassThru *iface)
 
static ULONG WINAPI SeekingPassThru_Release (ISeekingPassThru *iface)
 
static HRESULT WINAPI SeekingPassThru_Init (ISeekingPassThru *iface, BOOL renderer, IPin *pin)
 
static HRESULT WINAPI MediaSeekingPassThru_QueryInterface (IMediaSeeking *iface, REFIID iid, void **out)
 
static ULONG WINAPI MediaSeekingPassThru_AddRef (IMediaSeeking *iface)
 
static ULONG WINAPI MediaSeekingPassThru_Release (IMediaSeeking *iface)
 
static HRESULT get_connected (struct strmbase_passthrough *This, REFIID riid, void **ppvObj)
 
static HRESULT WINAPI MediaSeekingPassThru_GetCapabilities (IMediaSeeking *iface, DWORD *pCapabilities)
 
static HRESULT WINAPI MediaSeekingPassThru_CheckCapabilities (IMediaSeeking *iface, DWORD *pCapabilities)
 
static HRESULT WINAPI MediaSeekingPassThru_IsFormatSupported (IMediaSeeking *iface, const GUID *pFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_QueryPreferredFormat (IMediaSeeking *iface, GUID *pFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_GetTimeFormat (IMediaSeeking *iface, GUID *pFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_IsUsingTimeFormat (IMediaSeeking *iface, const GUID *pFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_SetTimeFormat (IMediaSeeking *iface, const GUID *pFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_GetDuration (IMediaSeeking *iface, LONGLONG *pDuration)
 
static HRESULT WINAPI MediaSeekingPassThru_GetStopPosition (IMediaSeeking *iface, LONGLONG *pStop)
 
static HRESULT WINAPI MediaSeekingPassThru_GetCurrentPosition (IMediaSeeking *iface, LONGLONG *pCurrent)
 
static HRESULT WINAPI MediaSeekingPassThru_ConvertTimeFormat (IMediaSeeking *iface, LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
 
static HRESULT WINAPI MediaSeekingPassThru_SetPositions (IMediaSeeking *iface, LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
 
static HRESULT WINAPI MediaSeekingPassThru_GetPositions (IMediaSeeking *iface, LONGLONG *pCurrent, LONGLONG *pStop)
 
static HRESULT WINAPI MediaSeekingPassThru_GetAvailable (IMediaSeeking *iface, LONGLONG *pEarliest, LONGLONG *pLatest)
 
static HRESULT WINAPI MediaSeekingPassThru_SetRate (IMediaSeeking *iface, double dRate)
 
static HRESULT WINAPI MediaSeekingPassThru_GetRate (IMediaSeeking *iface, double *dRate)
 
static HRESULT WINAPI MediaSeekingPassThru_GetPreroll (IMediaSeeking *iface, LONGLONG *pPreroll)
 
static HRESULT WINAPI MediaPositionPassThru_QueryInterface (IMediaPosition *iface, REFIID iid, void **out)
 
static ULONG WINAPI MediaPositionPassThru_AddRef (IMediaPosition *iface)
 
static ULONG WINAPI MediaPositionPassThru_Release (IMediaPosition *iface)
 
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfoCount (IMediaPosition *iface, UINT *count)
 
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfo (IMediaPosition *iface, UINT index, LCID lcid, ITypeInfo **typeinfo)
 
static HRESULT WINAPI MediaPositionPassThru_GetIDsOfNames (IMediaPosition *iface, REFIID iid, LPOLESTR *names, UINT count, LCID lcid, DISPID *ids)
 
static HRESULT WINAPI MediaPositionPassThru_Invoke (IMediaPosition *iface, DISPID id, REFIID iid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepinfo, UINT *error_arg)
 
static HRESULT WINAPI MediaPositionPassThru_get_Duration (IMediaPosition *iface, REFTIME *plength)
 
static HRESULT WINAPI MediaPositionPassThru_put_CurrentPosition (IMediaPosition *iface, REFTIME llTime)
 
static HRESULT WINAPI MediaPositionPassThru_get_CurrentPosition (IMediaPosition *iface, REFTIME *pllTime)
 
static HRESULT WINAPI MediaPositionPassThru_get_StopTime (IMediaPosition *iface, REFTIME *pllTime)
 
static HRESULT WINAPI MediaPositionPassThru_put_StopTime (IMediaPosition *iface, REFTIME llTime)
 
static HRESULT WINAPI MediaPositionPassThru_get_PrerollTime (IMediaPosition *iface, REFTIME *pllTime)
 
static HRESULT WINAPI MediaPositionPassThru_put_PrerollTime (IMediaPosition *iface, REFTIME llTime)
 
static HRESULT WINAPI MediaPositionPassThru_put_Rate (IMediaPosition *iface, double dRate)
 
static HRESULT WINAPI MediaPositionPassThru_get_Rate (IMediaPosition *iface, double *pdRate)
 
static HRESULT WINAPI MediaPositionPassThru_CanSeekForward (IMediaPosition *iface, LONG *pCanSeekForward)
 
static HRESULT WINAPI MediaPositionPassThru_CanSeekBackward (IMediaPosition *iface, LONG *pCanSeekBackward)
 
void strmbase_passthrough_init (struct strmbase_passthrough *passthrough, IUnknown *outer)
 
void strmbase_passthrough_cleanup (struct strmbase_passthrough *passthrough)
 
void strmbase_passthrough_update_time (struct strmbase_passthrough *passthrough, REFERENCE_TIME time)
 
void strmbase_passthrough_invalidate_time (struct strmbase_passthrough *passthrough)
 
void strmbase_passthrough_eos (struct strmbase_passthrough *passthrough)
 

Variables

static const ISeekingPassThruVtbl ISeekingPassThru_Vtbl
 
static const IMediaSeekingVtbl IMediaSeekingPassThru_Vtbl
 
static const IMediaPositionVtbl IMediaPositionPassThru_Vtbl
 

Function Documentation

◆ get_connected()

static HRESULT get_connected ( struct strmbase_passthrough *  This,
REFIID  riid,
void **  ppvObj 
)
static

Definition at line 107 of file pospass.c.

108{
109 HRESULT hr;
110 IPin *pin;
111 *ppvObj = NULL;
112 hr = IPin_ConnectedTo(This->pin, &pin);
113 if (FAILED(hr))
114 return VFW_E_NOT_CONNECTED;
115 hr = IPin_QueryInterface(pin, riid, ppvObj);
116 IPin_Release(pin);
117 if (FAILED(hr))
118 hr = E_NOTIMPL;
119 return hr;
120}
#define E_NOTIMPL
Definition: ddrawi.h:99
HRESULT hr
Definition: delayimp.cpp:582
#define NULL
Definition: types.h:112
REFIID riid
Definition: atlbase.h:39
Definition: axcore.idl:92
#define FAILED(hr)
Definition: intsafe.h:51
#define VFW_E_NOT_CONNECTED
Definition: vfwmsgs.h:48

Referenced by MediaPositionPassThru_CanSeekBackward(), MediaPositionPassThru_CanSeekForward(), MediaPositionPassThru_get_CurrentPosition(), MediaPositionPassThru_get_Duration(), MediaPositionPassThru_get_PrerollTime(), MediaPositionPassThru_get_Rate(), MediaPositionPassThru_get_StopTime(), MediaPositionPassThru_put_CurrentPosition(), MediaPositionPassThru_put_PrerollTime(), MediaPositionPassThru_put_Rate(), MediaPositionPassThru_put_StopTime(), MediaSeekingPassThru_CheckCapabilities(), MediaSeekingPassThru_ConvertTimeFormat(), MediaSeekingPassThru_GetAvailable(), MediaSeekingPassThru_GetCapabilities(), MediaSeekingPassThru_GetCurrentPosition(), MediaSeekingPassThru_GetDuration(), MediaSeekingPassThru_GetPositions(), MediaSeekingPassThru_GetPreroll(), MediaSeekingPassThru_GetRate(), MediaSeekingPassThru_GetStopPosition(), MediaSeekingPassThru_GetTimeFormat(), MediaSeekingPassThru_IsFormatSupported(), MediaSeekingPassThru_IsUsingTimeFormat(), MediaSeekingPassThru_QueryPreferredFormat(), MediaSeekingPassThru_SetPositions(), MediaSeekingPassThru_SetRate(), and MediaSeekingPassThru_SetTimeFormat().

◆ impl_from_IMediaPosition()

◆ impl_from_IMediaSeeking()

◆ impl_from_ISeekingPassThru()

static struct strmbase_passthrough * impl_from_ISeekingPassThru ( ISeekingPassThru *  iface)
static

Definition at line 27 of file pospass.c.

28{
29 return CONTAINING_RECORD(iface, struct strmbase_passthrough, ISeekingPassThru_iface);
30}

Referenced by SeekingPassThru_AddRef(), SeekingPassThru_Init(), SeekingPassThru_QueryInterface(), and SeekingPassThru_Release().

◆ MediaPositionPassThru_AddRef()

static ULONG WINAPI MediaPositionPassThru_AddRef ( IMediaPosition *  iface)
static

Definition at line 443 of file pospass.c.

444{
445 struct strmbase_passthrough *passthrough = impl_from_IMediaPosition(iface);
446
447 return IUnknown_AddRef(passthrough->outer_unk);
448}
static struct strmbase_passthrough * impl_from_IMediaPosition(IMediaPosition *iface)
Definition: pospass.c:37
IUnknown * outer_unk
Definition: strmbase.h:243

◆ MediaPositionPassThru_CanSeekBackward()

static HRESULT WINAPI MediaPositionPassThru_CanSeekBackward ( IMediaPosition *  iface,
LONG *  pCanSeekBackward 
)
static

Definition at line 685 of file pospass.c.

686{
688 IMediaPosition *pos;
689 HRESULT hr;
690
691 TRACE("(%p)\n", pCanSeekBackward);
692
693 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
694 if (SUCCEEDED(hr)) {
695 hr = IMediaPosition_CanSeekBackward(pos, pCanSeekBackward);
696 IMediaPosition_Release(pos);
697 }
698 else
699 return E_NOTIMPL;
700 return hr;
701}
#define SUCCEEDED(hr)
Definition: intsafe.h:50
static HRESULT get_connected(struct strmbase_passthrough *This, REFIID riid, void **ppvObj)
Definition: pospass.c:107
#define TRACE(s)
Definition: solgame.cpp:4

◆ MediaPositionPassThru_CanSeekForward()

static HRESULT WINAPI MediaPositionPassThru_CanSeekForward ( IMediaPosition *  iface,
LONG *  pCanSeekForward 
)
static

Definition at line 667 of file pospass.c.

668{
670 IMediaPosition *pos;
671 HRESULT hr;
672
673 TRACE("(%p)\n", pCanSeekForward);
674
675 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
676 if (SUCCEEDED(hr)) {
677 hr = IMediaPosition_CanSeekForward(pos, pCanSeekForward);
678 IMediaPosition_Release(pos);
679 }
680 else
681 return E_NOTIMPL;
682 return hr;
683}

◆ MediaPositionPassThru_get_CurrentPosition()

static HRESULT WINAPI MediaPositionPassThru_get_CurrentPosition ( IMediaPosition *  iface,
REFTIME *  pllTime 
)
static

Definition at line 541 of file pospass.c.

542{
544 IMediaPosition *pos;
545 HRESULT hr;
546
547 TRACE("(%p)\n", pllTime);
548
549 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
550 if (SUCCEEDED(hr)) {
551 hr = IMediaPosition_get_CurrentPosition(pos, pllTime);
552 IMediaPosition_Release(pos);
553 }
554 else
555 return E_NOTIMPL;
556 return hr;
557}

◆ MediaPositionPassThru_get_Duration()

static HRESULT WINAPI MediaPositionPassThru_get_Duration ( IMediaPosition *  iface,
REFTIME *  plength 
)
static

Definition at line 505 of file pospass.c.

506{
508 IMediaPosition *pos;
509 HRESULT hr;
510
511 TRACE("(%p)\n", plength);
512
513 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
514 if (SUCCEEDED(hr)) {
515 hr = IMediaPosition_get_Duration(pos, plength);
516 IMediaPosition_Release(pos);
517 }
518 else
519 return E_NOTIMPL;
520 return hr;
521}

◆ MediaPositionPassThru_get_PrerollTime()

static HRESULT WINAPI MediaPositionPassThru_get_PrerollTime ( IMediaPosition *  iface,
REFTIME *  pllTime 
)
static

Definition at line 595 of file pospass.c.

596{
598 IMediaPosition *pos;
599 HRESULT hr;
600
601 TRACE("(%p)\n", pllTime);
602
603 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
604 if (SUCCEEDED(hr)) {
605 hr = IMediaPosition_get_PrerollTime(pos, pllTime);
606 IMediaPosition_Release(pos);
607 }
608 else
609 return E_NOTIMPL;
610 return hr;
611}

◆ MediaPositionPassThru_get_Rate()

static HRESULT WINAPI MediaPositionPassThru_get_Rate ( IMediaPosition *  iface,
double *  pdRate 
)
static

Definition at line 649 of file pospass.c.

650{
652 IMediaPosition *pos;
653 HRESULT hr;
654
655 TRACE("(%p)\n", pdRate);
656
657 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
658 if (SUCCEEDED(hr)) {
659 hr = IMediaPosition_get_Rate(pos, pdRate);
660 IMediaPosition_Release(pos);
661 }
662 else
663 return E_NOTIMPL;
664 return hr;
665}

◆ MediaPositionPassThru_get_StopTime()

static HRESULT WINAPI MediaPositionPassThru_get_StopTime ( IMediaPosition *  iface,
REFTIME *  pllTime 
)
static

Definition at line 559 of file pospass.c.

560{
562 IMediaPosition *pos;
563 HRESULT hr;
564
565 TRACE("(%p)\n", pllTime);
566
567 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
568 if (SUCCEEDED(hr)) {
569 hr = IMediaPosition_get_StopTime(pos, pllTime);
570 IMediaPosition_Release(pos);
571 }
572 else
573 return E_NOTIMPL;
574 return hr;
575}

◆ MediaPositionPassThru_GetIDsOfNames()

static HRESULT WINAPI MediaPositionPassThru_GetIDsOfNames ( IMediaPosition *  iface,
REFIID  iid,
LPOLESTR *  names,
UINT  count,
LCID  lcid,
DISPID *  ids 
)
static

Definition at line 471 of file pospass.c.

473{
475 HRESULT hr;
476
477 TRACE("iface %p, iid %s, names %p, count %u, lcid %#lx, ids %p.\n",
478 iface, debugstr_guid(iid), names, count, lcid, ids);
479
481 {
482 hr = ITypeInfo_GetIDsOfNames(typeinfo, names, count, ids);
483 ITypeInfo_Release(typeinfo);
484 }
485 return hr;
486}
LCID lcid
Definition: locale.c:5660
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint * ids
Definition: glext.h:5907
GLuint GLuint * names
Definition: glext.h:11545
#define debugstr_guid
Definition: kernel32.h:35
@ IMediaPosition_tid
Definition: strmbase.h:229
HRESULT strmbase_get_typeinfo(enum strmbase_type_id tid, ITypeInfo **typeinfo)
Definition: dispatch.c:38

◆ MediaPositionPassThru_GetTypeInfo()

static HRESULT WINAPI MediaPositionPassThru_GetTypeInfo ( IMediaPosition *  iface,
UINT  index,
LCID  lcid,
ITypeInfo **  typeinfo 
)
static

Definition at line 464 of file pospass.c.

466{
467 TRACE("iface %p, index %u, lcid %#lx, typeinfo %p.\n", iface, index, lcid, typeinfo);
469}
GLuint index
Definition: glext.h:6031

◆ MediaPositionPassThru_GetTypeInfoCount()

static HRESULT WINAPI MediaPositionPassThru_GetTypeInfoCount ( IMediaPosition *  iface,
UINT *  count 
)
static

Definition at line 457 of file pospass.c.

458{
459 TRACE("iface %p, count %p.\n", iface, count);
460 *count = 1;
461 return S_OK;
462}
#define S_OK
Definition: intsafe.h:52

◆ MediaPositionPassThru_Invoke()

static HRESULT WINAPI MediaPositionPassThru_Invoke ( IMediaPosition *  iface,
DISPID  id,
REFIID  iid,
LCID  lcid,
WORD  flags,
DISPPARAMS *  params,
VARIANT *  result,
EXCEPINFO *  excepinfo,
UINT *  error_arg 
)
static

Definition at line 488 of file pospass.c.

490{
492 HRESULT hr;
493
494 TRACE("iface %p, id %ld, iid %s, lcid %#lx, flags %#x, params %p, result %p, excepinfo %p, error_arg %p.\n",
495 iface, id, debugstr_guid(iid), lcid, flags, params, result, excepinfo, error_arg);
496
498 {
499 hr = ITypeInfo_Invoke(typeinfo, iface, id, flags, params, result, excepinfo, error_arg);
500 ITypeInfo_Release(typeinfo);
501 }
502 return hr;
503}
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
GLenum const GLfloat * params
Definition: glext.h:5645
static EXCEPINFO excepinfo
Definition: automation.c:47

◆ MediaPositionPassThru_put_CurrentPosition()

static HRESULT WINAPI MediaPositionPassThru_put_CurrentPosition ( IMediaPosition *  iface,
REFTIME  llTime 
)
static

Definition at line 523 of file pospass.c.

524{
526 IMediaPosition *pos;
527 HRESULT hr;
528
529 TRACE("iface %p, time %.16e.\n", iface, llTime);
530
531 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
532 if (SUCCEEDED(hr)) {
533 hr = IMediaPosition_put_CurrentPosition(pos, llTime);
534 IMediaPosition_Release(pos);
535 }
536 else
537 return E_NOTIMPL;
538 return hr;
539}

◆ MediaPositionPassThru_put_PrerollTime()

static HRESULT WINAPI MediaPositionPassThru_put_PrerollTime ( IMediaPosition *  iface,
REFTIME  llTime 
)
static

Definition at line 613 of file pospass.c.

614{
616 IMediaPosition *pos;
617 HRESULT hr;
618
619 TRACE("iface %p, time %.16e.\n", iface, llTime);
620
621 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
622 if (SUCCEEDED(hr)) {
623 hr = IMediaPosition_put_PrerollTime(pos, llTime);
624 IMediaPosition_Release(pos);
625 }
626 else
627 return E_NOTIMPL;
628 return hr;
629}

◆ MediaPositionPassThru_put_Rate()

static HRESULT WINAPI MediaPositionPassThru_put_Rate ( IMediaPosition *  iface,
double  dRate 
)
static

Definition at line 631 of file pospass.c.

632{
634 IMediaPosition *pos;
635 HRESULT hr;
636
637 TRACE("(%f)\n", dRate);
638
639 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
640 if (SUCCEEDED(hr)) {
641 hr = IMediaPosition_put_Rate(pos, dRate);
642 IMediaPosition_Release(pos);
643 }
644 else
645 return E_NOTIMPL;
646 return hr;
647}

◆ MediaPositionPassThru_put_StopTime()

static HRESULT WINAPI MediaPositionPassThru_put_StopTime ( IMediaPosition *  iface,
REFTIME  llTime 
)
static

Definition at line 577 of file pospass.c.

578{
580 IMediaPosition *pos;
581 HRESULT hr;
582
583 TRACE("iface %p, time %.16e.\n", iface, llTime);
584
585 hr = get_connected(This, &IID_IMediaPosition, (LPVOID*)&pos);
586 if (SUCCEEDED(hr)) {
587 hr = IMediaPosition_put_StopTime(pos, llTime);
588 IMediaPosition_Release(pos);
589 }
590 else
591 return E_NOTIMPL;
592 return hr;
593}

◆ MediaPositionPassThru_QueryInterface()

static HRESULT WINAPI MediaPositionPassThru_QueryInterface ( IMediaPosition *  iface,
REFIID  iid,
void **  out 
)
static

Definition at line 436 of file pospass.c.

437{
438 struct strmbase_passthrough *passthrough = impl_from_IMediaPosition(iface);
439
440 return IUnknown_QueryInterface(passthrough->outer_unk, iid, out);
441}
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ MediaPositionPassThru_Release()

static ULONG WINAPI MediaPositionPassThru_Release ( IMediaPosition *  iface)
static

Definition at line 450 of file pospass.c.

451{
452 struct strmbase_passthrough *passthrough = impl_from_IMediaPosition(iface);
453
454 return IUnknown_Release(passthrough->outer_unk);
455}

◆ MediaSeekingPassThru_AddRef()

static ULONG WINAPI MediaSeekingPassThru_AddRef ( IMediaSeeking *  iface)
static

Definition at line 93 of file pospass.c.

94{
95 struct strmbase_passthrough *passthrough = impl_from_IMediaSeeking(iface);
96
97 return IUnknown_AddRef(passthrough->outer_unk);
98}
static struct strmbase_passthrough * impl_from_IMediaSeeking(IMediaSeeking *iface)
Definition: pospass.c:32

◆ MediaSeekingPassThru_CheckCapabilities()

static HRESULT WINAPI MediaSeekingPassThru_CheckCapabilities ( IMediaSeeking *  iface,
DWORD *  pCapabilities 
)
static

Definition at line 138 of file pospass.c.

139{
142 HRESULT hr;
143 TRACE("(%p/%p)->(%p)\n", iface, This, pCapabilities);
144 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
145 if (SUCCEEDED(hr)) {
146 hr = IMediaSeeking_CheckCapabilities(seek, pCapabilities);
147 IMediaSeeking_Release(seek);
148 }
149 else
150 return E_NOTIMPL;
151 return hr;
152}
int seek(void *fd, ulong off, int mode)
Definition: pe.c:51

◆ MediaSeekingPassThru_ConvertTimeFormat()

static HRESULT WINAPI MediaSeekingPassThru_ConvertTimeFormat ( IMediaSeeking *  iface,
LONGLONG *  pTarget,
const GUID *  pTargetFormat,
LONGLONG  Source,
const GUID *  pSourceFormat 
)
static

Definition at line 294 of file pospass.c.

295{
298 HRESULT hr;
299
300 TRACE("iface %p, target %p, target_format %s, source %s, source_format %s.\n",
301 iface, pTarget, debugstr_guid(pTargetFormat),
302 wine_dbgstr_longlong(Source), debugstr_guid(pSourceFormat));
303
304 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
305 if (SUCCEEDED(hr)) {
306 hr = IMediaSeeking_ConvertTimeFormat(seek, pTarget, pTargetFormat, Source, pSourceFormat);
307 IMediaSeeking_Release(seek);
308 }
309 else
310 return E_NOTIMPL;
311 return hr;
312}
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
Definition: compat.h:49
FxIoTarget * pTarget
Definition: fxdeviceapi.cpp:97
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169

◆ MediaSeekingPassThru_GetAvailable()

static HRESULT WINAPI MediaSeekingPassThru_GetAvailable ( IMediaSeeking *  iface,
LONGLONG *  pEarliest,
LONGLONG *  pLatest 
)
static

Definition at line 348 of file pospass.c.

349{
352 HRESULT hr;
353 TRACE("(%p/%p)->(%p,%p)\n", iface, This, pEarliest, pLatest);
354 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
355 if (SUCCEEDED(hr)) {
356 hr = IMediaSeeking_GetAvailable(seek, pEarliest, pLatest);
357 IMediaSeeking_Release(seek);
358 }
359 else
360 return E_NOTIMPL;
361 return hr;
362}

◆ MediaSeekingPassThru_GetCapabilities()

static HRESULT WINAPI MediaSeekingPassThru_GetCapabilities ( IMediaSeeking *  iface,
DWORD *  pCapabilities 
)
static

Definition at line 122 of file pospass.c.

123{
126 HRESULT hr;
127 TRACE("(%p/%p)->(%p)\n", iface, This, pCapabilities);
128 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
129 if (SUCCEEDED(hr)) {
130 hr = IMediaSeeking_GetCapabilities(seek, pCapabilities);
131 IMediaSeeking_Release(seek);
132 }
133 else
134 return E_NOTIMPL;
135 return hr;
136}

◆ MediaSeekingPassThru_GetCurrentPosition()

static HRESULT WINAPI MediaSeekingPassThru_GetCurrentPosition ( IMediaSeeking *  iface,
LONGLONG *  pCurrent 
)
static

Definition at line 266 of file pospass.c.

267{
270 HRESULT hr = S_OK;
271 TRACE("(%p/%p)->(%p)\n", iface, This, pCurrent);
272 if (!pCurrent)
273 return E_POINTER;
274 EnterCriticalSection(&This->time_cs);
275 if (This->timevalid)
276 *pCurrent = This->time_earliest;
277 else
278 hr = E_FAIL;
279 LeaveCriticalSection(&This->time_cs);
280 if (SUCCEEDED(hr)) {
281 hr = IMediaSeeking_ConvertTimeFormat(iface, pCurrent, NULL, *pCurrent, &TIME_FORMAT_MEDIA_TIME);
282 return hr;
283 }
284 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
285 if (SUCCEEDED(hr)) {
286 hr = IMediaSeeking_GetCurrentPosition(seek, pCurrent);
287 IMediaSeeking_Release(seek);
288 }
289 else
290 return E_NOTIMPL;
291 return hr;
292}
#define E_FAIL
Definition: ddrawi.h:102
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define E_POINTER
Definition: winerror.h:3480

◆ MediaSeekingPassThru_GetDuration()

static HRESULT WINAPI MediaSeekingPassThru_GetDuration ( IMediaSeeking *  iface,
LONGLONG *  pDuration 
)
static

Definition at line 234 of file pospass.c.

235{
238 HRESULT hr;
239 TRACE("(%p/%p)->(%p)\n", iface, This, pDuration);
240 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
241 if (SUCCEEDED(hr)) {
242 hr = IMediaSeeking_GetDuration(seek, pDuration);
243 IMediaSeeking_Release(seek);
244 }
245 else
246 return E_NOTIMPL;
247 return hr;
248}

◆ MediaSeekingPassThru_GetPositions()

static HRESULT WINAPI MediaSeekingPassThru_GetPositions ( IMediaSeeking *  iface,
LONGLONG *  pCurrent,
LONGLONG *  pStop 
)
static

Definition at line 332 of file pospass.c.

333{
336 HRESULT hr;
337 TRACE("(%p/%p)->(%p, %p)\n", iface, This, pCurrent, pStop);
338 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
339 if (SUCCEEDED(hr)) {
340 hr = IMediaSeeking_GetPositions(seek, pCurrent, pStop);
341 IMediaSeeking_Release(seek);
342 }
343 else
344 return E_NOTIMPL;
345 return hr;
346}

◆ MediaSeekingPassThru_GetPreroll()

static HRESULT WINAPI MediaSeekingPassThru_GetPreroll ( IMediaSeeking *  iface,
LONGLONG *  pPreroll 
)
static

Definition at line 396 of file pospass.c.

397{
400 HRESULT hr;
401 TRACE("(%p)\n", pPreroll);
402 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
403 if (SUCCEEDED(hr)) {
404 hr = IMediaSeeking_GetPreroll(seek, pPreroll);
405 IMediaSeeking_Release(seek);
406 }
407 else
408 return E_NOTIMPL;
409 return hr;
410}

◆ MediaSeekingPassThru_GetRate()

static HRESULT WINAPI MediaSeekingPassThru_GetRate ( IMediaSeeking *  iface,
double *  dRate 
)
static

Definition at line 380 of file pospass.c.

381{
384 HRESULT hr;
385 TRACE("(%p/%p)->(%p)\n", iface, This, dRate);
386 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
387 if (SUCCEEDED(hr)) {
388 hr = IMediaSeeking_GetRate(seek, dRate);
389 IMediaSeeking_Release(seek);
390 }
391 else
392 return E_NOTIMPL;
393 return hr;
394}

◆ MediaSeekingPassThru_GetStopPosition()

static HRESULT WINAPI MediaSeekingPassThru_GetStopPosition ( IMediaSeeking *  iface,
LONGLONG *  pStop 
)
static

Definition at line 250 of file pospass.c.

251{
254 HRESULT hr;
255 TRACE("(%p/%p)->(%p)\n", iface, This, pStop);
256 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
257 if (SUCCEEDED(hr)) {
258 hr = IMediaSeeking_GetStopPosition(seek, pStop);
259 IMediaSeeking_Release(seek);
260 }
261 else
262 return E_NOTIMPL;
263 return hr;
264}

◆ MediaSeekingPassThru_GetTimeFormat()

static HRESULT WINAPI MediaSeekingPassThru_GetTimeFormat ( IMediaSeeking *  iface,
GUID *  pFormat 
)
static

Definition at line 186 of file pospass.c.

187{
190 HRESULT hr;
191 TRACE("(%p/%p)->(%p)\n", iface, This, pFormat);
192 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
193 if (SUCCEEDED(hr)) {
194 hr = IMediaSeeking_GetTimeFormat(seek, pFormat);
195 IMediaSeeking_Release(seek);
196 }
197 else
198 return E_NOTIMPL;
199 return hr;
200}

◆ MediaSeekingPassThru_IsFormatSupported()

static HRESULT WINAPI MediaSeekingPassThru_IsFormatSupported ( IMediaSeeking *  iface,
const GUID *  pFormat 
)
static

Definition at line 154 of file pospass.c.

155{
158 HRESULT hr;
159 TRACE("(%p/%p)->(%s)\n", iface, This, debugstr_guid(pFormat));
160 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
161 if (SUCCEEDED(hr)) {
162 hr = IMediaSeeking_IsFormatSupported(seek, pFormat);
163 IMediaSeeking_Release(seek);
164 }
165 else
166 return E_NOTIMPL;
167 return hr;
168}

◆ MediaSeekingPassThru_IsUsingTimeFormat()

static HRESULT WINAPI MediaSeekingPassThru_IsUsingTimeFormat ( IMediaSeeking *  iface,
const GUID *  pFormat 
)
static

Definition at line 202 of file pospass.c.

203{
206 HRESULT hr;
207 TRACE("(%p/%p)->(%s)\n", iface, This, debugstr_guid(pFormat));
208 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
209 if (SUCCEEDED(hr)) {
210 hr = IMediaSeeking_IsUsingTimeFormat(seek, pFormat);
211 IMediaSeeking_Release(seek);
212 }
213 else
214 return E_NOTIMPL;
215 return hr;
216}

◆ MediaSeekingPassThru_QueryInterface()

static HRESULT WINAPI MediaSeekingPassThru_QueryInterface ( IMediaSeeking *  iface,
REFIID  iid,
void **  out 
)
static

Definition at line 86 of file pospass.c.

87{
88 struct strmbase_passthrough *passthrough = impl_from_IMediaSeeking(iface);
89
90 return IUnknown_QueryInterface(passthrough->outer_unk, iid, out);
91}

◆ MediaSeekingPassThru_QueryPreferredFormat()

static HRESULT WINAPI MediaSeekingPassThru_QueryPreferredFormat ( IMediaSeeking *  iface,
GUID *  pFormat 
)
static

Definition at line 170 of file pospass.c.

171{
174 HRESULT hr;
175 TRACE("(%p/%p)->(%p)\n", iface, This, pFormat);
176 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
177 if (SUCCEEDED(hr)) {
178 hr = IMediaSeeking_QueryPreferredFormat(seek, pFormat);
179 IMediaSeeking_Release(seek);
180 }
181 else
182 return E_NOTIMPL;
183 return hr;
184}

◆ MediaSeekingPassThru_Release()

static ULONG WINAPI MediaSeekingPassThru_Release ( IMediaSeeking *  iface)
static

Definition at line 100 of file pospass.c.

101{
102 struct strmbase_passthrough *passthrough = impl_from_IMediaSeeking(iface);
103
104 return IUnknown_Release(passthrough->outer_unk);
105}

◆ MediaSeekingPassThru_SetPositions()

static HRESULT WINAPI MediaSeekingPassThru_SetPositions ( IMediaSeeking *  iface,
LONGLONG *  pCurrent,
DWORD  dwCurrentFlags,
LONGLONG *  pStop,
DWORD  dwStopFlags 
)
static

Definition at line 314 of file pospass.c.

315{
318 HRESULT hr;
319
320 TRACE("iface %p, current %p, current_flags %#lx, stop %p, stop_flags %#lx.\n",
321 iface, pCurrent, dwCurrentFlags, pStop, dwStopFlags);
322
323 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
324 if (SUCCEEDED(hr)) {
325 hr = IMediaSeeking_SetPositions(seek, pCurrent, dwCurrentFlags, pStop, dwStopFlags);
326 IMediaSeeking_Release(seek);
327 } else if (hr == VFW_E_NOT_CONNECTED)
328 hr = S_OK;
329 return hr;
330}

◆ MediaSeekingPassThru_SetRate()

static HRESULT WINAPI MediaSeekingPassThru_SetRate ( IMediaSeeking *  iface,
double  dRate 
)
static

Definition at line 364 of file pospass.c.

365{
368 HRESULT hr;
369 TRACE("(%p/%p)->(%e)\n", iface, This, dRate);
370 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
371 if (SUCCEEDED(hr)) {
372 hr = IMediaSeeking_SetRate(seek, dRate);
373 IMediaSeeking_Release(seek);
374 }
375 else
376 return E_NOTIMPL;
377 return hr;
378}

◆ MediaSeekingPassThru_SetTimeFormat()

static HRESULT WINAPI MediaSeekingPassThru_SetTimeFormat ( IMediaSeeking *  iface,
const GUID *  pFormat 
)
static

Definition at line 218 of file pospass.c.

219{
222 HRESULT hr;
223 TRACE("(%p/%p)->(%s)\n", iface, This, debugstr_guid(pFormat));
224 hr = get_connected(This, &IID_IMediaSeeking, (LPVOID*)&seek);
225 if (SUCCEEDED(hr)) {
226 hr = IMediaSeeking_SetTimeFormat(seek, pFormat);
227 IMediaSeeking_Release(seek);
228 }
229 else
230 return E_NOTIMPL;
231 return hr;
232}

◆ SeekingPassThru_AddRef()

static ULONG WINAPI SeekingPassThru_AddRef ( ISeekingPassThru *  iface)
static

Definition at line 49 of file pospass.c.

50{
51 struct strmbase_passthrough *passthrough = impl_from_ISeekingPassThru(iface);
52
53 return IUnknown_AddRef(passthrough->outer_unk);
54}
static struct strmbase_passthrough * impl_from_ISeekingPassThru(ISeekingPassThru *iface)
Definition: pospass.c:27

◆ SeekingPassThru_Init()

static HRESULT WINAPI SeekingPassThru_Init ( ISeekingPassThru *  iface,
BOOL  renderer,
IPin *  pin 
)
static

Definition at line 63 of file pospass.c.

64{
66
67 TRACE("(%p/%p)->(%d, %p)\n", This, iface, renderer, pin);
68
69 if (This->pin)
70 FIXME("Re-initializing?\n");
71
72 This->renderer = renderer;
73 This->pin = pin;
74
75 return S_OK;
76}
#define FIXME(fmt,...)
Definition: precomp.h:53

◆ SeekingPassThru_QueryInterface()

static HRESULT WINAPI SeekingPassThru_QueryInterface ( ISeekingPassThru *  iface,
REFIID  iid,
void **  out 
)
static

Definition at line 42 of file pospass.c.

43{
44 struct strmbase_passthrough *passthrough = impl_from_ISeekingPassThru(iface);
45
46 return IUnknown_QueryInterface(passthrough->outer_unk, iid, out);
47}

◆ SeekingPassThru_Release()

static ULONG WINAPI SeekingPassThru_Release ( ISeekingPassThru *  iface)
static

Definition at line 56 of file pospass.c.

57{
58 struct strmbase_passthrough *passthrough = impl_from_ISeekingPassThru(iface);
59
60 return IUnknown_Release(passthrough->outer_unk);
61}

◆ strmbase_passthrough_cleanup()

void strmbase_passthrough_cleanup ( struct strmbase_passthrough *  passthrough)

Definition at line 738 of file pospass.c.

739{
740 passthrough->time_cs.DebugInfo->Spare[0] = 0;
741 DeleteCriticalSection(&passthrough->time_cs);
742}
PRTL_CRITICAL_SECTION_DEBUG DebugInfo
Definition: rtltypes.h:1478
CRITICAL_SECTION time_cs
Definition: strmbase.h:247
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

Referenced by acm_wrapper_destroy(), avi_decompressor_destroy(), dsound_render_destroy(), sample_grabber_destroy(), seeking_passthrough_Release(), and strmbase_renderer_cleanup().

◆ strmbase_passthrough_eos()

void strmbase_passthrough_eos ( struct strmbase_passthrough *  passthrough)

Definition at line 759 of file pospass.c.

760{
762 HRESULT hr;
763
764 hr = IMediaSeeking_GetStopPosition(&passthrough->IMediaSeeking_iface, &time);
765 EnterCriticalSection(&passthrough->time_cs);
766 if (SUCCEEDED(hr))
767 {
768 passthrough->timevalid = TRUE;
769 passthrough->time_earliest = time;
770 }
771 else
772 passthrough->timevalid = FALSE;
773 LeaveCriticalSection(&passthrough->time_cs);
774}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
__u16 time
Definition: mkdosfs.c:8
IMediaSeeking IMediaSeeking_iface
Definition: strmbase.h:240
REFERENCE_TIME time_earliest
Definition: strmbase.h:248

Referenced by sink_eos().

◆ strmbase_passthrough_init()

void strmbase_passthrough_init ( struct strmbase_passthrough *  passthrough,
IUnknown *  outer 
)

Definition at line 725 of file pospass.c.

726{
727 memset(passthrough, 0, sizeof(*passthrough));
728
729 passthrough->outer_unk = outer;
731 passthrough->IMediaSeeking_iface.lpVtbl = &IMediaSeekingPassThru_Vtbl;
732 passthrough->ISeekingPassThru_iface.lpVtbl = &ISeekingPassThru_Vtbl;
734 InitializeCriticalSection(&passthrough->time_cs);
735 passthrough->time_cs.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": strmbase_passthrough.time_cs" );
736}
BOOL WINAPI InitializeCriticalSectionEx(OUT LPCRITICAL_SECTION lpCriticalSection, IN DWORD dwSpinCount, IN DWORD flags)
Definition: sync.c:107
static IUnknown * outer
Definition: compobj.c:82
static const IMediaSeekingVtbl IMediaSeekingPassThru_Vtbl
Definition: pospass.c:412
static const ISeekingPassThruVtbl ISeekingPassThru_Vtbl
Definition: pospass.c:78
static const IMediaPositionVtbl IMediaPositionPassThru_Vtbl
Definition: pospass.c:703
#define memset(x, y, z)
Definition: compat.h:39
ISeekingPassThru ISeekingPassThru_iface
Definition: strmbase.h:239
IMediaPosition IMediaPosition_iface
Definition: strmbase.h:241
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:687
#define DWORD_PTR
Definition: treelist.c:76
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
Definition: winnt_old.h:1156

Referenced by acm_wrapper_create(), avi_dec_create(), dsound_render_create(), sample_grabber_create(), seeking_passthrough_create(), and strmbase_renderer_init().

◆ strmbase_passthrough_invalidate_time()

void strmbase_passthrough_invalidate_time ( struct strmbase_passthrough *  passthrough)

Definition at line 752 of file pospass.c.

753{
754 EnterCriticalSection(&passthrough->time_cs);
755 passthrough->timevalid = FALSE;
756 LeaveCriticalSection(&passthrough->time_cs);
757}

Referenced by renderer_cleanup_stream(), and sink_end_flush().

◆ strmbase_passthrough_update_time()

void strmbase_passthrough_update_time ( struct strmbase_passthrough *  passthrough,
REFERENCE_TIME  time 
)

Definition at line 744 of file pospass.c.

745{
746 EnterCriticalSection(&passthrough->time_cs);
747 passthrough->time_earliest = time;
748 passthrough->timevalid = TRUE;
749 LeaveCriticalSection(&passthrough->time_cs);
750}

Referenced by BaseRenderer_Receive().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( quartz  )

Variable Documentation

◆ IMediaPositionPassThru_Vtbl

const IMediaPositionVtbl IMediaPositionPassThru_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI MediaPositionPassThru_GetIDsOfNames(IMediaPosition *iface, REFIID iid, LPOLESTR *names, UINT count, LCID lcid, DISPID *ids)
Definition: pospass.c:471
static HRESULT WINAPI MediaPositionPassThru_put_CurrentPosition(IMediaPosition *iface, REFTIME llTime)
Definition: pospass.c:523
static HRESULT WINAPI MediaPositionPassThru_get_Duration(IMediaPosition *iface, REFTIME *plength)
Definition: pospass.c:505
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfoCount(IMediaPosition *iface, UINT *count)
Definition: pospass.c:457
static HRESULT WINAPI MediaPositionPassThru_put_StopTime(IMediaPosition *iface, REFTIME llTime)
Definition: pospass.c:577
static HRESULT WINAPI MediaPositionPassThru_CanSeekForward(IMediaPosition *iface, LONG *pCanSeekForward)
Definition: pospass.c:667
static ULONG WINAPI MediaPositionPassThru_Release(IMediaPosition *iface)
Definition: pospass.c:450
static HRESULT WINAPI MediaPositionPassThru_get_Rate(IMediaPosition *iface, double *pdRate)
Definition: pospass.c:649
static ULONG WINAPI MediaPositionPassThru_AddRef(IMediaPosition *iface)
Definition: pospass.c:443
static HRESULT WINAPI MediaPositionPassThru_get_CurrentPosition(IMediaPosition *iface, REFTIME *pllTime)
Definition: pospass.c:541
static HRESULT WINAPI MediaPositionPassThru_get_StopTime(IMediaPosition *iface, REFTIME *pllTime)
Definition: pospass.c:559
static HRESULT WINAPI MediaPositionPassThru_get_PrerollTime(IMediaPosition *iface, REFTIME *pllTime)
Definition: pospass.c:595
static HRESULT WINAPI MediaPositionPassThru_put_PrerollTime(IMediaPosition *iface, REFTIME llTime)
Definition: pospass.c:613
static HRESULT WINAPI MediaPositionPassThru_QueryInterface(IMediaPosition *iface, REFIID iid, void **out)
Definition: pospass.c:436
static HRESULT WINAPI MediaPositionPassThru_CanSeekBackward(IMediaPosition *iface, LONG *pCanSeekBackward)
Definition: pospass.c:685
static HRESULT WINAPI MediaPositionPassThru_Invoke(IMediaPosition *iface, DISPID id, REFIID iid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepinfo, UINT *error_arg)
Definition: pospass.c:488
static HRESULT WINAPI MediaPositionPassThru_GetTypeInfo(IMediaPosition *iface, UINT index, LCID lcid, ITypeInfo **typeinfo)
Definition: pospass.c:464
static HRESULT WINAPI MediaPositionPassThru_put_Rate(IMediaPosition *iface, double dRate)
Definition: pospass.c:631

Definition at line 703 of file pospass.c.

Referenced by strmbase_passthrough_init().

◆ IMediaSeekingPassThru_Vtbl

const IMediaSeekingVtbl IMediaSeekingPassThru_Vtbl
static
Initial value:
=
{
}
static HRESULT WINAPI MediaSeekingPassThru_GetAvailable(IMediaSeeking *iface, LONGLONG *pEarliest, LONGLONG *pLatest)
Definition: pospass.c:348
static HRESULT WINAPI MediaSeekingPassThru_GetPreroll(IMediaSeeking *iface, LONGLONG *pPreroll)
Definition: pospass.c:396
static HRESULT WINAPI MediaSeekingPassThru_GetDuration(IMediaSeeking *iface, LONGLONG *pDuration)
Definition: pospass.c:234
static HRESULT WINAPI MediaSeekingPassThru_IsFormatSupported(IMediaSeeking *iface, const GUID *pFormat)
Definition: pospass.c:154
static HRESULT WINAPI MediaSeekingPassThru_QueryInterface(IMediaSeeking *iface, REFIID iid, void **out)
Definition: pospass.c:86
static HRESULT WINAPI MediaSeekingPassThru_GetCurrentPosition(IMediaSeeking *iface, LONGLONG *pCurrent)
Definition: pospass.c:266
static HRESULT WINAPI MediaSeekingPassThru_ConvertTimeFormat(IMediaSeeking *iface, LONGLONG *pTarget, const GUID *pTargetFormat, LONGLONG Source, const GUID *pSourceFormat)
Definition: pospass.c:294
static HRESULT WINAPI MediaSeekingPassThru_SetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, DWORD dwCurrentFlags, LONGLONG *pStop, DWORD dwStopFlags)
Definition: pospass.c:314
static HRESULT WINAPI MediaSeekingPassThru_QueryPreferredFormat(IMediaSeeking *iface, GUID *pFormat)
Definition: pospass.c:170
static HRESULT WINAPI MediaSeekingPassThru_IsUsingTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
Definition: pospass.c:202
static HRESULT WINAPI MediaSeekingPassThru_GetStopPosition(IMediaSeeking *iface, LONGLONG *pStop)
Definition: pospass.c:250
static HRESULT WINAPI MediaSeekingPassThru_GetCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
Definition: pospass.c:122
static HRESULT WINAPI MediaSeekingPassThru_SetRate(IMediaSeeking *iface, double dRate)
Definition: pospass.c:364
static ULONG WINAPI MediaSeekingPassThru_AddRef(IMediaSeeking *iface)
Definition: pospass.c:93
static HRESULT WINAPI MediaSeekingPassThru_GetTimeFormat(IMediaSeeking *iface, GUID *pFormat)
Definition: pospass.c:186
static HRESULT WINAPI MediaSeekingPassThru_SetTimeFormat(IMediaSeeking *iface, const GUID *pFormat)
Definition: pospass.c:218
static HRESULT WINAPI MediaSeekingPassThru_CheckCapabilities(IMediaSeeking *iface, DWORD *pCapabilities)
Definition: pospass.c:138
static HRESULT WINAPI MediaSeekingPassThru_GetRate(IMediaSeeking *iface, double *dRate)
Definition: pospass.c:380
static ULONG WINAPI MediaSeekingPassThru_Release(IMediaSeeking *iface)
Definition: pospass.c:100
static HRESULT WINAPI MediaSeekingPassThru_GetPositions(IMediaSeeking *iface, LONGLONG *pCurrent, LONGLONG *pStop)
Definition: pospass.c:332

Definition at line 412 of file pospass.c.

Referenced by strmbase_passthrough_init().

◆ ISeekingPassThru_Vtbl

const ISeekingPassThruVtbl ISeekingPassThru_Vtbl
static
Initial value:
=
{
}
static ULONG WINAPI SeekingPassThru_Release(ISeekingPassThru *iface)
Definition: pospass.c:56
static ULONG WINAPI SeekingPassThru_AddRef(ISeekingPassThru *iface)
Definition: pospass.c:49
static HRESULT WINAPI SeekingPassThru_QueryInterface(ISeekingPassThru *iface, REFIID iid, void **out)
Definition: pospass.c:42
static HRESULT WINAPI SeekingPassThru_Init(ISeekingPassThru *iface, BOOL renderer, IPin *pin)
Definition: pospass.c:63

Definition at line 78 of file pospass.c.

Referenced by strmbase_passthrough_init().