r885: Don't delete a borrowed frame.
[cinelerra_cv/ct.git] / cinelerra / packagingengine.h
blob2c0280082df0fce268841c53fd23f24f40fe3cf9
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 *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 *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 *default_asset;
61 Preferences *preferences;
62 double total_start;
63 double total_end;
68 #endif