4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef OVERLAYFRAME_H
23 #define OVERLAYFRAME_H
25 #include "loadbalance.h"
26 #include "overlayframe.inc"
37 OverlayKernel(int interpolation_type);
48 class DirectPackage : public LoadPackage
53 int out_row1, out_row2;
58 class NNPackage : public LoadPackage
63 int out_row1, out_row2;
68 class SamplePackage : public LoadPackage
73 int out_col1, out_col2;
77 class DirectUnit : public LoadClient
80 DirectUnit(DirectEngine *server);
83 void process_package(LoadPackage *package);
87 class NNUnit : public LoadClient
90 NNUnit(NNEngine *server);
93 void process_package(LoadPackage *package);
98 class SampleUnit : public LoadClient
101 SampleUnit(SampleEngine *server);
104 void process_package(LoadPackage *package);
106 SampleEngine *engine;
110 class DirectEngine : public LoadServer
113 DirectEngine(int cpus);
116 void init_packages();
117 LoadClient* new_client();
118 LoadPackage* new_package();
132 class NNEngine : public LoadServer
138 void init_packages();
139 LoadClient* new_client();
140 LoadPackage* new_package();
161 class SampleEngine : public LoadServer
164 SampleEngine(int cpus);
167 void init_packages();
168 LoadClient* new_client();
169 LoadPackage* new_package();
173 OverlayKernel *kernel;
197 OverlayFrame(int cpus = 1);
198 virtual ~OverlayFrame();
200 int overlay(VFrame *output,
212 int interpolation_type);
214 DirectEngine *direct_engine;
216 SampleEngine *sample_engine;
220 OverlayKernel *kernel[4];