4 // the simplest plugin possible
9 #include "deinterwindow.h"
10 #include "pluginvclient.h"
15 #define THRESHOLD_SCALAR 1000
25 DEINTERLACE_TEMPORALSWAP
,
28 class DeInterlaceConfig
33 int equivalent(DeInterlaceConfig
&that
);
34 void copy_from(DeInterlaceConfig
&that
);
35 void interpolate(DeInterlaceConfig
&prev
,
36 DeInterlaceConfig
&next
,
39 int64_t current_frame
);
44 volatile int dominance
; /* top or bottom field */
47 class DeInterlaceMain
: public PluginVClient
50 DeInterlaceMain(PluginServer
*server
);
54 PLUGIN_CLASS_MEMBERS(DeInterlaceConfig
, DeInterlaceThread
)
57 // required for all realtime plugins
58 int process_buffer(VFrame
*frame
,
59 int64_t start_position
,
64 void save_data(KeyFrame
*keyframe
);
65 void read_data(KeyFrame
*keyframe
);
68 void render_gui(void *data
);
70 void deinterlace_avg_top(VFrame
*input
, VFrame
*output
, int dominance
);
71 void deinterlace_top(VFrame
*input
, VFrame
*output
, int dominance
);
72 void deinterlace_avg(VFrame
*input
, VFrame
*output
);
73 void deinterlace_swap(VFrame
*input
, VFrame
*output
, int dominance
);
74 void deinterlace_temporalswap(VFrame
*input
, VFrame
*prevframe
, VFrame
*output
, int dominance
);
75 void deinterlace_bobweave(VFrame
*input
, VFrame
*prevframe
, VFrame
*output
, int dominance
);
79 VFrame
*temp_prevframe
;