bsd compatibility mods
[goodguy/history.git] / cinelerra-5.1 / plugins / rgb601 / rgb601.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
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.
10  *
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.
15  *
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
19  *
20  */
21
22 #ifndef RGB601_H
23 #define RGB601_H
24
25 class RGB601Main;
26
27 #define TOTAL_PATTERNS 2
28
29 #include "bchash.h"
30 #include "mutex.h"
31 #include "pluginvclient.h"
32 #include "rgb601window.h"
33 #include <sys/types.h>
34
35 class RGB601Config
36 {
37 public:
38         RGB601Config();
39 // 0 -> none
40 // 1 -> RGB -> 601
41 // 2 -> 601 -> RGB
42         int direction;
43 };
44
45 class RGB601Main : public PluginVClient
46 {
47 public:
48         RGB601Main(PluginServer *server);
49         ~RGB601Main();
50
51 // required for all realtime plugins
52         PLUGIN_CLASS_MEMBERS(RGB601Config);
53         int process_buffer(VFrame *frame,
54                 int64_t start_position,
55                 double frame_rate);
56         int is_realtime();
57         void update_gui();
58         void save_data(KeyFrame *keyframe);
59         void read_data(KeyFrame *keyframe);
60         int handle_opengl();
61
62         void create_table(VFrame *input_ptr);
63         void process(int *table, VFrame *input_ptr, VFrame *output_ptr);
64
65         int forward_table[0x10000], reverse_table[0x10000];
66 };
67
68
69 #endif