8 #include "loadbalance.h"
10 #include "pluginvclient.h"
11 #include "ivtcwindow.h"
12 #include <sys/types.h>
34 class IVTCMain
: public PluginVClient
37 IVTCMain(PluginServer
*server
);
40 // required for all realtime plugins
41 int process_realtime(VFrame
*input_ptr
, VFrame
*output_ptr
);
43 void save_data(KeyFrame
*keyframe
);
44 void read_data(KeyFrame
*keyframe
);
45 PLUGIN_CLASS_MEMBERS(IVTCConfig
, IVTCThread
)
52 void compare_fields(VFrame
*frame1
,
56 int64_t compare(VFrame
*current_avg
,
61 void deinterlace_avg(VFrame
*output
, VFrame
*input
, int dominance
);
64 VFrame
*temp_frame
[2];
65 VFrame
*input
, *output
;
66 int64_t even_vs_current
;
68 int64_t odd_vs_current
;
71 // Closest combination of fields in previous calculation.
77 class IVTCPackage
: public LoadPackage
84 class IVTCUnit
: public LoadClient
87 IVTCUnit(IVTCEngine
*server
, IVTCMain
*plugin
);
88 void process_package(LoadPackage
*package
);
92 int64_t even_vs_current
;
94 int64_t odd_vs_current
;
99 class IVTCEngine
: public LoadServer
102 IVTCEngine(IVTCMain
*plugin
, int cpus
);
104 void init_packages();
105 LoadClient
* new_client();
106 LoadPackage
* new_package();