Merge branch 'ct' of git.pipapo.org:cinelerra-ct into ct
[cinelerra_cv/ct.git] / cinelerra / packagingengine.h
blobb532a310ef376869e81b43b02f3a8e69378affff
1 #ifndef PACKAGINGENGINE_H
2 #define PACKAGINGENGINE_H
4 #include "edl.h"
5 #include "packagerenderer.h"
7 // Classes used for different packaging strategies, which allow for customary splitting of packages
8 // Used for renderfarm jobs
9 class PackagingEngine
11 public:
12 virtual int create_packages_single_farm(
13 EDL *edl,
14 Preferences *preferences,
15 Asset_GC default_asset,
16 double total_start,
17 double total_end) = 0;
18 virtual RenderPackage* get_package_single_farm(double frames_per_second,
19 int client_number,
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
31 public:
32 PackagingEngineDefault();
33 ~PackagingEngineDefault();
34 int create_packages_single_farm(
35 EDL *edl,
36 Preferences *preferences,
37 Asset_GC default_asset,
38 double total_start,
39 double total_end);
40 RenderPackage* get_package_single_farm(double frames_per_second,
41 int client_number,
42 int use_local_rate);
43 int64_t get_progress_max();
44 void get_package_paths(ArrayList<char*> *path_list);
45 int packages_are_done();
46 private:
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;
57 int64_t audio_end;
58 int64_t video_end;
59 int current_package;
60 Asset_GC default_asset;
61 Preferences *preferences;
62 double total_start;
63 double total_end;
68 #endif
70 // Local Variables:
71 // mode: C++
72 // c-file-style: "linux"
73 // End: