Credit ffmpeg team with upgrade to 6.1
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / vmodule.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  * Copyright (C) 2003-2016 Cinelerra CV contributors
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  *
21  */
22
23 #ifndef VMODULE_H
24 #define VMODULE_H
25
26 class VModuleGUI;
27 class VModuleTitle;
28 class VModuleFade;
29 class VModuleMute;
30 class VModuleMode;
31
32 #define VMODULEHEIGHT 91
33 #define VMODULEWIDTH 106
34
35
36 #include "guicast.h"
37 #include "datatype.h"
38 #include "edl.inc"
39 #include "filexml.inc"
40 #include "floatautos.inc"
41 #include "maxchannels.h"
42 #include "module.h"
43 #include "overlayframe.inc"
44 #include "sharedlocation.inc"
45 #include "track.inc"
46 #include "vedit.inc"
47 #include "vframe.inc"
48 #include "maskengine.inc"
49
50 class VModule : public Module
51 {
52 public:
53         VModule() {};
54         VModule(RenderEngine *renderengine,
55                 CommonRender *commonrender,
56                 PluginArray *plugin_array,
57                 Track *track);
58         virtual ~VModule();
59
60         void create_objects();
61         AttachmentPoint* new_attachment(Plugin *plugin);
62         int get_buffer_size();
63
64         CICache* get_cache();
65 // Read frame from file and perform camera transformation
66         int import_frame(VFrame *output,
67                 VEdit *current_edit,
68                 int64_t input_position,
69                 double frame_rate,
70                 int direction,
71                 int use_opengl);
72         int render(VFrame *output,
73                 int64_t start_position,
74                 int direction,
75                 double frame_rate,
76                 int use_nudge,
77                 int debug_render,
78                 int use_opengl = 0);
79
80 // synchronization with tracks
81         FloatAutos* get_fade_automation();       // get the fade automation for this module
82
83 // Temp frames for loading from file handlers
84         VFrame *input_temp;
85 // For use when no VRender is available.
86 // Temp frame for transition
87         VFrame *transition_temp;
88 // Engine for transferring from file to buffer_in
89         OverlayFrame *overlay_temp;
90         MaskEngine *masker;
91 };
92
93 #endif