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,...)
long ff_dshow_enumpins_Skip(DShowEnumPins *this, unsigned long n)
static int ff_dshow_enumpins_Setup(DShowEnumPins *this, DShowPin *pin, DShowFilter *filter)
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)
unsigned long ff_dshow_pin_AddRef(DShowPin *)
unsigned long ff_dshow_filter_Release(DShowFilter *)
DECLARE_QUERYINTERFACE(enumpins, DShowEnumPins, { {&IID_IUnknown, 0}, {&IID_IEnumPins, 0} })
#define SETVTBL(vtbl, prefix, fn)
long ff_dshow_enumpins_Reset(DShowEnumPins *this)
#define DECLARE_DESTROY(prefix, class, func)
unsigned long ff_dshow_filter_AddRef(DShowFilter *)
long ff_dshow_enumpins_Next(DShowEnumPins *, unsigned long, IPin **, unsigned long *)
DShowEnumPins * ff_dshow_enumpins_Create(DShowPin *pin, DShowFilter *filter)
long ff_dshow_enumpins_Clone(DShowEnumPins *this, DShowEnumPins **pins)
#define DECLARE_RELEASE(prefix, class)