00001 #ifndef PACKAGINGENGINE_H
00002 #define PACKAGINGENGINE_H
00003
00004 #include "edl.h"
00005 #include "packagerenderer.h"
00006
00007
00008
00009 class PackagingEngine
00010 {
00011 public:
00012 virtual int create_packages_single_farm(
00013 EDL *edl,
00014 Preferences *preferences,
00015 Asset *default_asset,
00016 double total_start,
00017 double total_end) = 0;
00018 virtual RenderPackage* get_package_single_farm(double frames_per_second,
00019 int client_number,
00020 int use_local_rate) = 0;
00021 virtual int64_t get_progress_max() = 0;
00022 virtual void get_package_paths(ArrayList<char*> *path_list) = 0;
00023 virtual int packages_are_done() = 0;
00024 };
00025
00026
00027
00028
00029 class PackagingEngineDefault : public PackagingEngine
00030 {
00031 public:
00032 PackagingEngineDefault();
00033 ~PackagingEngineDefault();
00034 int create_packages_single_farm(
00035 EDL *edl,
00036 Preferences *preferences,
00037 Asset *default_asset,
00038 double total_start,
00039 double total_end);
00040 RenderPackage* get_package_single_farm(double frames_per_second,
00041 int client_number,
00042 int use_local_rate);
00043 int64_t get_progress_max();
00044 void get_package_paths(ArrayList<char*> *path_list);
00045 int packages_are_done();
00046 private:
00047 RenderPackage **packages;
00048 int64_t total_allocated;
00049 int current_number;
00050 int number_start;
00051 int total_digits;
00052 double package_len;
00053 double min_package_len;
00054 int64_t total_packages;
00055 int64_t audio_position;
00056 int64_t video_position;
00057 int64_t audio_end;
00058 int64_t video_end;
00059 int current_package;
00060 Asset *default_asset;
00061 Preferences *preferences;
00062 double total_start;
00063 double total_end;
00064 };
00065
00066
00067
00068 #endif