1 #ifndef PACKAGINGENGINE_H
2 #define PACKAGINGENGINE_H
5 #include "packagerenderer.h"
7 // Classes used for different packaging strategies, which allow for customary splitting of packages
8 // Used for renderfarm jobs
12 virtual int create_packages_single_farm(
14 Preferences
*preferences
,
17 double total_end
) = 0;
18 virtual RenderPackage
* get_package_single_farm(double frames_per_second
,
20 int use_local_rate
) = 0;
21 virtual int64_t get_progress_max() = 0;
22 virtual void get_package_paths(ArrayList
<char*> *path_list
) = 0;
23 virtual int packages_are_done() = 0;
26 // Classes used for different packaging strategies, which allow for customary splitting of packages
27 // Used for renderfarm jobs
29 class PackagingEngineDefault
: public PackagingEngine
32 PackagingEngineDefault();
33 ~PackagingEngineDefault();
34 int create_packages_single_farm(
36 Preferences
*preferences
,
40 RenderPackage
* get_package_single_farm(double frames_per_second
,
43 int64_t get_progress_max();
44 void get_package_paths(ArrayList
<char*> *path_list
);
45 int packages_are_done();
47 RenderPackage
**packages
;
48 int64_t total_allocated
; // Total packages to test the existence of
49 int current_number
; // The number being injected into the filename.
50 int number_start
; // Character in the filename path at which the number begins
51 int total_digits
; // Total number of digits including padding the user specified.
52 double package_len
; // Target length of a single package
53 double min_package_len
; // Minimum package length after load balancing
54 int64_t total_packages
; // Total packages to base calculations on
55 int64_t audio_position
;
56 int64_t video_position
;
61 Preferences
*preferences
;