Go to the documentation of this file.
25 { {&IID_IUnknown,0}, {&IID_IEnumPins,0} })
30 unsigned long *fetched)
33 dshowdebug(
"ff_dshow_enumpins_Next(%p)\n",
this);
36 if (!this->
pos && n == 1) {
38 *pins = (IPin *) this->pin;
50 dshowdebug(
"ff_dshow_enumpins_Skip(%p)\n",
this);
57 dshowdebug(
"ff_dshow_enumpins_Reset(%p)\n",
this);
64 dshowdebug(
"ff_dshow_enumpins_Clone(%p)\n",
this);
77 IEnumPinsVtbl *vtbl = this->vtbl;
78 SETVTBL(vtbl, enumpins, QueryInterface);
79 SETVTBL(vtbl, enumpins, AddRef);
80 SETVTBL(vtbl, enumpins, Release);
#define DECLARE_CREATE(prefix, class, setup,...)
static int ff_dshow_enumpins_Setup(DShowEnumPins *this, DShowPin *pin, DShowFilter *filter)
long WINAPI ff_dshow_enumpins_Skip(DShowEnumPins *this, unsigned long n)
long WINAPI ff_dshow_enumpins_Clone(DShowEnumPins *this, DShowEnumPins **pins)
filter_frame For filters that do not use the this method is called when a frame is pushed to the filter s input It can be called at any time except in a reentrant way If the input frame is enough to produce then the filter should push the output frames on the output link immediately As an exception to the previous rule if the input frame is enough to produce several output frames then the filter needs output only at least one per link The additional frames can be left buffered in the filter
static int ff_dshow_enumpins_Cleanup(DShowEnumPins *this)
#define DECLARE_ADDREF(prefix, class)
DECLARE_QUERYINTERFACE(enumpins, DShowEnumPins, { {&IID_IUnknown, 0}, {&IID_IEnumPins, 0} })
#define SETVTBL(vtbl, prefix, fn)
#define DECLARE_DESTROY(prefix, class, func)
DShowEnumPins * ff_dshow_enumpins_Create(DShowPin *pin, DShowFilter *filter)
unsigned long WINAPI ff_dshow_filter_AddRef(DShowFilter *)
#define DECLARE_RELEASE(prefix, class)
long WINAPI ff_dshow_enumpins_Reset(DShowEnumPins *this)
unsigned long WINAPI ff_dshow_pin_AddRef(DShowPin *)
long WINAPI ff_dshow_enumpins_Next(DShowEnumPins *, unsigned long, IPin **, unsigned long *)
unsigned long WINAPI ff_dshow_filter_Release(DShowFilter *)