r125: This commit was manufactured by cvs2svn to create tag 'r1_1_7-last'.
[cinelerra_cv/mob.git] / hvirtual / cinelerra / packagedispatcher.h
blob2c7e225d5bf1ac2b3beee9ffafdfdc8884248af1
1 #ifndef PACKAGEDISPATCHER_H
2 #define PACKAGEDISPATCHER_H
5 #include "arraylist.h"
6 #include "assets.inc"
7 #include "edl.inc"
8 #include "mutex.inc"
9 #include "mwindow.inc"
10 #include "packagerenderer.inc"
11 #include "preferences.inc"
15 // Allocates fragments given a total start and total end.
16 // Checks the existence of every file.
17 // Adjusts package size for load.
18 class PackageDispatcher
20 public:
21 PackageDispatcher();
22 ~PackageDispatcher();
24 int create_packages(MWindow *mwindow,
25 EDL *edl,
26 Preferences *preferences,
27 int strategy,
28 Asset *default_asset,
29 double total_start,
30 double total_end);
31 // Supply a frame rate of the calling node. If the client number is -1
32 // the frame rate isn't added to the preferences table.
33 RenderPackage* get_package(double frames_per_second,
34 int client_number,
35 int use_local_rate);
36 ArrayList<Asset*>* get_asset_list();
38 EDL *edl;
39 int64_t audio_position;
40 int64_t video_position;
41 int64_t audio_end;
42 int64_t video_end;
43 double total_start;
44 double total_end;
45 double total_len;
46 int strategy;
47 Asset *default_asset;
48 Preferences *preferences;
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 total_allocated; // Total packages to test the existence of
56 int nodes;
57 MWindow *mwindow;
58 RenderPackage **packages;
59 int current_package;
60 Mutex *package_lock;
64 #endif