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;
37 CreateBD_Thread(MWindow *mwindow);
39 void handle_close_event(int result);
42 int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs,
43 const char *tmp_path, const char *asset_title);
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;
69 class CreateBD_OK : public BC_OKButton
72 CreateBD_OK(CreateBD_GUI *gui, int x, int y);
74 int button_press_event();
80 class CreateBD_Cancel : public BC_CancelButton
83 CreateBD_Cancel(CreateBD_GUI *gui, int x, int y);
85 int button_press_event();
91 class CreateBD_DiskSpace : public BC_Title
94 CreateBD_DiskSpace(CreateBD_GUI *gui, int x, int y);
95 ~CreateBD_DiskSpace();
96 int64_t tmp_path_space();
102 class CreateBD_TmpPath : public BC_TextBox
105 CreateBD_TmpPath(CreateBD_GUI *gui, int x, int y, int w);
113 class CreateBD_AssetTitle : public BC_TextBox
116 CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
117 ~CreateBD_AssetTitle();
122 class CreateBD_Deinterlace : public BC_CheckBox
125 CreateBD_Deinterlace(CreateBD_GUI *gui, int x, int y);
126 ~CreateBD_Deinterlace();
132 class CreateBD_InverseTelecine : public BC_CheckBox
135 CreateBD_InverseTelecine(CreateBD_GUI *gui, int x, int y);
136 ~CreateBD_InverseTelecine();
142 class CreateBD_ResizeTracks : public BC_CheckBox
145 CreateBD_ResizeTracks(CreateBD_GUI *gui, int x, int y);
146 ~CreateBD_ResizeTracks();
151 class CreateBD_Histogram : public BC_CheckBox
154 CreateBD_Histogram(CreateBD_GUI *gui, int x, int y);
155 ~CreateBD_Histogram();
160 class CreateBD_LabelChapters : public BC_CheckBox
163 CreateBD_LabelChapters(CreateBD_GUI *gui, int x, int y);
164 ~CreateBD_LabelChapters();
169 class CreateBD_WideAudio : public BC_CheckBox
172 CreateBD_WideAudio(CreateBD_GUI *gui, int x, int y);
173 ~CreateBD_WideAudio();
178 class CreateBD_GUI : public BC_Window
181 CreateBD_GUI(CreateBD_Thread *thread,
182 int x, int y, int w, int h);
185 void create_objects();
186 int resize_event(int w, int h);
187 int translation_event();
191 CreateBD_Thread *thread;
193 CreateBD_AssetTitle *asset_title;
195 CreateBD_TmpPath *tmp_path;
196 BrowseButton *btmp_path;
197 CreateBD_DiskSpace *disk_space;
198 CreateBD_Format *standard;
199 CreateBD_Scale *scale;
200 ArrayList<BC_ListBoxItem *> media_sizes;
201 CreateBD_MediaSize *media_size;
202 CreateBD_Deinterlace *need_deinterlace;
203 CreateBD_InverseTelecine *need_inverse_telecine;
204 CreateBD_ResizeTracks *need_resize_tracks;
205 CreateBD_Histogram *need_histogram;
206 CreateBD_WideAudio *need_wide_audio;
207 CreateBD_LabelChapters *need_label_chapters;
208 int ok_x, ok_y, ok_w, ok_h;
210 int cancel_x, cancel_y, cancel_w, cancel_h;
211 CreateBD_Cancel *cancel;
214 class CreateBD_FormatItem : public BC_MenuItem
218 CreateBD_FormatItem(CreateBD_Format *popup, int standard, const char *name);
219 ~CreateBD_FormatItem();
221 CreateBD_Format *popup;
225 class CreateBD_Format : public BC_PopupMenu
228 void create_objects();
230 CreateBD_Format(CreateBD_GUI *gui, int x, int y);
232 void set_value(int v) { set_text(get_item(v)->get_text()); }
237 class CreateBD_ScaleItem : public BC_MenuItem
241 CreateBD_ScaleItem(CreateBD_Scale *popup, int scale, const char *text);
242 ~CreateBD_ScaleItem();
244 CreateBD_Scale *popup;
248 class CreateBD_Scale : public BC_PopupMenu
251 void create_objects();
253 CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
257 void set_value(int v) { set_text(Rescale::scale_types[v]); }
260 class CreateBD_MediaSize : public BC_PopupTextBox
263 CreateBD_MediaSize(CreateBD_GUI *gui, int x, int y);
264 ~CreateBD_MediaSize();