5 #include "batchrender.h"
6 #include "bcwindowbase.h"
9 #include "bcmenuitem.h"
10 #include "bctextbox.h"
13 #include "bdcreate.inc"
18 class CreateBD_MenuItem : public BC_MenuItem
21 CreateBD_MenuItem(MWindow *mwindow);
27 class CreateBD_Thread : public BC_DialogThread
29 static const int64_t BD_SIZE;
30 static const int BD_STREAMS, BD_WIDTH, BD_HEIGHT;
31 static const double BD_ASPECT_WIDTH, BD_ASPECT_HEIGHT;
32 static const double BD_WIDE_ASPECT_WIDTH, BD_WIDE_ASPECT_HEIGHT;
33 static const int BD_MAX_BITRATE, BD_CHANNELS, BD_WIDE_CHANNELS;
34 static const double BD_FRAMERATE, BD_SAMPLERATE, BD_KAUDIO_RATE;
36 CreateBD_Thread(MWindow *mwindow);
38 void handle_close_event(int result);
41 int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs,
42 const char *tmp_path, const char *asset_title);
43 int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
48 char asset_title[BCTEXTLEN];
49 char tmp_path[BCTEXTLEN];
50 int use_deinterlace, use_inverse_telecine;
51 int use_scale, use_resize_tracks;
52 int use_wide_audio, use_wide_aspect;
53 int use_histogram, use_label_chapters;
56 class CreateBD_OK : public BC_OKButton
59 CreateBD_OK(CreateBD_GUI *gui, int x, int y);
61 int button_press_event();
67 class CreateBD_Cancel : public BC_CancelButton
70 CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
72 int button_press_event();
78 class CreateBD_DiskSpace : public BC_Title
81 CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
82 ~CreateBD_DiskSpace();
83 int64_t tmp_path_space();
89 class CreateBD_TmpPath : public BC_TextBox
92 CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
100 class CreateBD_AssetTitle : public BC_TextBox
103 CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
104 ~CreateBD_AssetTitle();
109 class CreateBD_Deinterlace : public BC_CheckBox
112 CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
113 ~CreateBD_Deinterlace();
119 class CreateBD_InverseTelecine : public BC_CheckBox
122 CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
123 ~CreateBD_InverseTelecine();
129 class CreateBD_Scale : public BC_CheckBox
132 CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
138 class CreateBD_ResizeTracks : public BC_CheckBox
141 CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
142 ~CreateBD_ResizeTracks();
147 class CreateBD_Histogram : public BC_CheckBox
150 CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
151 ~CreateBD_Histogram();
156 class CreateBD_LabelChapters : public BC_CheckBox
159 CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
160 ~CreateBD_LabelChapters();
165 class CreateBD_WideAudio : public BC_CheckBox
168 CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
169 ~CreateBD_WideAudio();
174 class CreateBD_WideAspect : public BC_CheckBox
177 CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
178 ~CreateBD_WideAspect();
183 class CreateBD_GUI : public BC_Window
186 CreateBD_GUI(CreateBD_Thread *thread,
187 int x, int y, int w, int h);
190 void create_objects();
191 int resize_event(int w, int h);
192 int translation_event();
195 int64_t needed_disk_space;
196 CreateBD_Thread *thread;
198 CreateBD_AssetTitle *asset_title;
200 CreateBD_TmpPath *tmp_path;
201 CreateBD_DiskSpace *disk_space;
202 CreateBD_Deinterlace *need_deinterlace;
203 CreateBD_InverseTelecine *need_inverse_telecine;
204 CreateBD_Scale *need_scale;
205 CreateBD_ResizeTracks *need_resize_tracks;
206 CreateBD_Histogram *need_histogram;
207 CreateBD_WideAudio *need_wide_audio;
208 CreateBD_WideAspect *need_wide_aspect;
209 CreateBD_LabelChapters *need_label_chapters;
210 int ok_x, ok_y, ok_w, ok_h;
212 int cancel_x, cancel_y, cancel_w, cancel_h;
213 CreateBD_Cancel *cancel;