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 // Get result status from server
75 virtual int get_result();
76 virtual void set_result(int value
);
77 virtual void set_progress(int64_t total_samples
);
78 // Used by background rendering
79 virtual void set_video_map(int64_t position
, int value
);
80 virtual int progress_cancelled();
91 // Passed in from outside
93 Preferences
*preferences
;
95 ArrayList
<PluginServer
*> *plugindb
;
99 double **audio_output
;
100 int64_t audio_position
;
101 int64_t audio_preroll
;
102 int64_t audio_read_length
;
105 VFrame
***video_output
;
106 // A nonzero mwindow signals master render engine to the engine.
107 // A zero mwindow signals client or non interactive.
109 double *audio_output_ptr
[MAX_CHANNELS
];
110 CICache
*audio_cache
;
111 CICache
*video_cache
;
112 VFrame
*compressed_output
;
113 AudioOutConfig
*aconfig
;
114 VideoOutConfig
*vconfig
;
115 // PlaybackConfig *playback_config;
116 PlayableTracks
*playable_tracks
;
117 RenderEngine
*render_engine
;
118 RenderPackage
*package
;
119 TransportCommand
*command
;
120 int direct_frame_copying
;
121 VideoDevice
*video_device
;
122 VFrame
*video_output_ptr
[MAX_CHANNELS
];
123 int64_t video_preroll
;
124 int64_t video_position
;
125 int64_t video_read_length
;
126 int64_t video_write_length
;
127 int64_t video_write_position
;