4 // the simplest plugin possible
8 #include "defaults.inc"
9 #include "deinterwindow.h"
10 #include "pluginvclient.h"
15 #define THRESHOLD_SCALAR 1000
24 DEINTERLACE_SWAP_EVEN
,
25 DEINTERLACE_TEMPORALSWAP_TOP
,
26 DEINTERLACE_TEMPORALSWAP_BOTTOM
,
31 class DeInterlaceConfig
36 int equivalent(DeInterlaceConfig
&that
);
37 void copy_from(DeInterlaceConfig
&that
);
38 void interpolate(DeInterlaceConfig
&prev
,
39 DeInterlaceConfig
&next
,
42 int64_t current_frame
);
49 class DeInterlaceMain
: public PluginVClient
52 DeInterlaceMain(PluginServer
*server
);
56 PLUGIN_CLASS_MEMBERS(DeInterlaceConfig
, DeInterlaceThread
)
58 // required for all realtime plugins
59 int process_realtime(VFrame
*input
, VFrame
*output
);
63 void save_data(KeyFrame
*keyframe
);
64 void read_data(KeyFrame
*keyframe
);
67 void render_gui(void *data
);
69 void deinterlace_avg_even(VFrame
*input
, VFrame
*output
, int dominance
);
70 void deinterlace_even(VFrame
*input
, VFrame
*output
, int dominance
);
71 void deinterlace_avg(VFrame
*input
, VFrame
*output
);
72 void deinterlace_swap(VFrame
*input
, VFrame
*output
, int dominance
);
73 void deinterlace_temporalswap(VFrame
*input
, VFrame
*nextfrane
, VFrame
*output
, int dominance
);
77 VFrame
*temp_prevframe
;