5 #include "batchrender.h"
6 #include "bcwindowbase.h"
9 #include "bclistboxitem.inc"
10 #include "bcmenuitem.h"
11 #include "bctextbox.h"
12 #include "browsebutton.h"
16 #include "bdcreate.inc"
19 class CreateBD_MenuItem : public BC_MenuItem
22 CreateBD_MenuItem(MWindow *mwindow);
28 class CreateBD_Thread : public BC_DialogThread
30 static const int64_t BD_SIZE;
31 static const int BD_STREAMS, BD_WIDTH, BD_HEIGHT;
32 static const double BD_ASPECT_WIDTH, BD_ASPECT_HEIGHT;
33 static const double BD_WIDE_ASPECT_WIDTH, BD_WIDE_ASPECT_HEIGHT;
34 static const int BD_MAX_BITRATE, BD_CHANNELS, BD_WIDE_CHANNELS;
35 static const double BD_FRAMERATE, BD_SAMPLERATE, BD_KAUDIO_RATE;
36 static const int BD_INTERLACE_MODE;
38 CreateBD_Thread(MWindow *mwindow);
40 void handle_close_event(int result);
43 int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs, const char *asset_dir);
44 int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
49 char asset_title[BCTEXTLEN];
50 char tmp_path[BCTEXTLEN];
51 int use_deinterlace, use_inverse_telecine;
52 int use_scale, use_resize_tracks;
54 int use_histogram, use_label_chapters;
60 double bd_aspect_width;
61 double bd_aspect_height;
65 double bd_kaudio_rate;
66 int bd_interlace_mode;
70 class CreateBD_OK : public BC_OKButton
73 CreateBD_OK(CreateBD_GUI *gui, int x, int y);
75 int button_press_event();
81 class CreateBD_Cancel : public BC_CancelButton
84 CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
86 int button_press_event();
92 class CreateBD_DiskSpace : public BC_Title
95 CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
96 ~CreateBD_DiskSpace();
97 int64_t tmp_path_space();
103 class CreateBD_TmpPath : public BC_TextBox
106 CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
114 class CreateBD_AssetTitle : public BC_TextBox
117 CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
118 ~CreateBD_AssetTitle();
124 class CreateBD_Deinterlace : public BC_CheckBox
127 CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
128 ~CreateBD_Deinterlace();
134 class CreateBD_InverseTelecine : public BC_CheckBox
137 CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
138 ~CreateBD_InverseTelecine();
144 class CreateBD_ResizeTracks : public BC_CheckBox
147 CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
148 ~CreateBD_ResizeTracks();
153 class CreateBD_Histogram : public BC_CheckBox
156 CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
157 ~CreateBD_Histogram();
162 class CreateBD_LabelChapters : public BC_CheckBox
165 CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
166 ~CreateBD_LabelChapters();
171 class CreateBD_WideAudio : public BC_CheckBox
174 CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
175 ~CreateBD_WideAudio();
180 class CreateBD_GUI : public BC_Window
183 CreateBD_GUI(CreateBD_Thread *thread,
184 int x, int y, int w, int h);
187 void create_objects();
188 int resize_event(int w, int h);
189 int translation_event();
193 CreateBD_Thread *thread;
195 CreateBD_AssetTitle *asset_title;
197 CreateBD_TmpPath *tmp_path;
198 BrowseButton *btmp_path;
199 CreateBD_DiskSpace *disk_space;
200 CreateBD_Format *standard;
201 CreateBD_Scale *scale;
202 ArrayList<BC_ListBoxItem *> media_sizes;
203 CreateBD_MediaSize *media_size;
204 CreateBD_Deinterlace *need_deinterlace;
205 CreateBD_InverseTelecine *need_inverse_telecine;
206 CreateBD_ResizeTracks *need_resize_tracks;
207 CreateBD_Histogram *need_histogram;
208 BC_Title *non_standard;
209 CreateBD_WideAudio *need_wide_audio;
210 CreateBD_LabelChapters *need_label_chapters;
211 int ok_x, ok_y, ok_w, ok_h;
213 int cancel_x, cancel_y, cancel_w, cancel_h;
214 CreateBD_Cancel *cancel;
217 class CreateBD_FormatItem : public BC_MenuItem
221 CreateBD_FormatItem(CreateBD_Format *popup, int standard, const char *name);
222 ~CreateBD_FormatItem();
224 CreateBD_Format *popup;
228 class CreateBD_Format : public BC_PopupMenu
231 void create_objects();
233 CreateBD_Format(CreateBD_GUI *gui, int x, int y);
235 void set_value(int v) { set_text(get_item(v)->get_text()); }
240 class CreateBD_ScaleItem : public BC_MenuItem
244 CreateBD_ScaleItem(CreateBD_Scale *popup, int scale, const char *text);
245 ~CreateBD_ScaleItem();
247 CreateBD_Scale *popup;
251 class CreateBD_Scale : public BC_PopupMenu
254 void create_objects();
256 CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
260 void set_value(int v) { set_text(Rescale::scale_types[v]); }
263 class CreateBD_MediaSize : public BC_PopupTextBox
266 CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y);
267 ~CreateBD_MediaSize();