View Single Post
Old 18th April 2018, 11:19   #8  |  Link
shekh
Registered User
 
Join Date: Mar 2015
Posts: 775
Hi,

> This specific filter can have two input clips

No, it is not input clips.
the two sets of mpSourceFrames are generated by PrefetchProc from same source:

prefetcher->PrefetchFrame(0, frame, 0); --> mpSourceFrames[0]
prefetcher->PrefetchFrame(0, frame+param.width, 0); --> mpSourceFrames[1]

Btw I have cloned sdk.chm, here is related stuff:
prefetching
multiple sources
Haven't experimented with multiple sources yet, this is a bit complex.

videofilter.h provides helpers for the plugin, it is not part of binary interface.
VDXFilterDefinition2 is helper struct, this is full code:

Code:
struct VDXFilterDefinition2: public VDXFilterDefinition{
	FilterModDefinition filterMod;

	VDXFilterDefinition2() {
		fm = 0;
	}

	VDXFilterDefinition2(const VDXFilterDefinition2& a)
		:VDXFilterDefinition(a)
	{
		filterMod = a.filterMod;
		fm = &filterMod;
	}
};
Its purpose is to supply FilterModDefinition pointer to VDXFilterDefinition, the added size is plugin's private, not used by host.

Unrolled:

Code:
VDXFilterDefinition2{
  VDXFilterDefinition{
    ...
    // NEW - V17 / 1.10.2
    VDXShowStaticAboutProc  mpStaticAboutProc;
    VDXShowStaticConfigureProc  mpStaticConfigureProc;

    // NEW - V20
    FilterModDefinition* fm;  ---------\  points to filterMod
  }                                    |
  FilterModDefinition filterMod;  <---/
}
__________________
VirtualDub2
shekh is offline   Reply With Quote