1 #ifndef PACKAGERENDERER_H
2 #define PACKAGERENDERER_H
6 #include "bcwindowbase.inc"
11 #include "maxchannels.h"
12 #include "mwindow.inc"
13 #include "playabletracks.inc"
14 #include "playbackconfig.inc"
15 #include "pluginserver.inc"
16 #include "preferences.inc"
17 #include "renderengine.inc"
19 #include "transportque.inc"
21 #include "videodevice.inc"
32 // Path of output without remote prefix
35 // Range not including preroll
47 // Used by Render and BRender to do packages.
54 // Initialize stuff which is reused between packages
55 int initialize(MWindow
*mwindow
,
57 Preferences
*preferences
,
59 ArrayList
<PluginServer
*> *plugindb
);
61 // Aborts and returns 1 if an error is encountered.
62 int render_package(RenderPackage
*package
);
64 int direct_copy_possible(EDL
*edl
,
65 int64_t current_position
,
66 Track
* playable_track
, // The one track which is playable
67 Edit
* &playable_edit
, // The edit which is playing
68 File
*file
); // Output file
69 int direct_frame_copy(EDL
*edl
,
70 int64_t &video_position
,
74 // Invoke behavior for master node
75 virtual int get_master();
76 // Get result status from server
77 virtual int get_result();
78 virtual void set_result(int value
);
79 virtual void set_progress(int64_t total_samples
);
80 // Used by background rendering
81 virtual void set_video_map(int64_t position
, int value
);
82 virtual int progress_cancelled();
93 // Passed in from outside
95 Preferences
*preferences
;
97 ArrayList
<PluginServer
*> *plugindb
;
101 double **audio_output
;
102 int64_t audio_position
;
103 int64_t audio_preroll
;
104 int64_t audio_read_length
;
107 VFrame
***video_output
;
108 // A nonzero mwindow signals master render engine to the engine.
109 // A zero mwindow signals client or non interactive.
111 double *audio_output_ptr
[MAX_CHANNELS
];
112 CICache
*audio_cache
;
113 CICache
*video_cache
;
114 VFrame
*compressed_output
;
115 AudioOutConfig
*aconfig
;
116 VideoOutConfig
*vconfig
;
117 // PlaybackConfig *playback_config;
118 PlayableTracks
*playable_tracks
;
119 RenderEngine
*render_engine
;
120 RenderPackage
*package
;
121 TransportCommand
*command
;
122 int direct_frame_copying
;
123 VideoDevice
*video_device
;
124 VFrame
*video_output_ptr
[MAX_CHANNELS
];
125 int64_t video_preroll
;
126 int64_t video_position
;
127 int64_t video_read_length
;
128 int64_t video_write_length
;
129 int64_t video_write_position
;