repair default keyframe load, tweak init default histogram threshold
[goodguy/history.git] / cinelerra-5.1 / cinelerra / bdcreate.h
index f13bee747f6c4ece8b19394c34b0c3c2a36eeb6a..f69ee1aa78d21291e5c5b879c43d516fd0e46681 100644 (file)
@@ -11,6 +11,7 @@
 #include "bctextbox.h"
 #include "browsebutton.h"
 #include "mwindow.h"
+#include "rescale.h"
 
 #include "bdcreate.inc"
 
@@ -32,14 +33,15 @@ class CreateBD_Thread : public BC_DialogThread
        static const double BD_WIDE_ASPECT_WIDTH, BD_WIDE_ASPECT_HEIGHT;
        static const int BD_MAX_BITRATE, BD_CHANNELS, BD_WIDE_CHANNELS;
        static const double BD_FRAMERATE, BD_SAMPLERATE, BD_KAUDIO_RATE;
+       static const int BD_INTERLACE_MODE;
+       static int get_udfs_mount(char *udfs, char *mopts, char *mntpt);
 public:
        CreateBD_Thread(MWindow *mwindow);
        ~CreateBD_Thread();
        void handle_close_event(int result);
        BC_Window* new_gui();
        int option_presets();
-       int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs,
-               const char *tmp_path, const char *asset_title);
+       int create_bd_jobs(ArrayList<BatchRenderJob*> *jobs, const char *asset_dir);
        int insert_video_plugin(const char *title, KeyFrame *default_keyframe);
        int resize_tracks();
 
@@ -49,7 +51,7 @@ public:
        char tmp_path[BCTEXTLEN];
        int use_deinterlace, use_inverse_telecine;
        int use_scale, use_resize_tracks;
-       int use_wide_audio, use_wide_aspect;
+       int use_wide_audio;
        int use_histogram, use_label_chapters;
        int use_standard;
 
@@ -62,6 +64,7 @@ public:
        int bd_samplerate;
        int bd_max_bitrate;
        double bd_kaudio_rate;
+       int bd_interlace_mode;
        int max_w, max_h;
 };
 
@@ -114,6 +117,7 @@ class CreateBD_AssetTitle : public BC_TextBox
 public:
        CreateBD_AssetTitle(CreateBD_GUI *gui, int x, int y, int w);
        ~CreateBD_AssetTitle();
+       int handle_event();
 
        CreateBD_GUI *gui;
 };
@@ -138,15 +142,6 @@ public:
        CreateBD_GUI *gui;
 };
 
-class CreateBD_Scale : public BC_CheckBox
-{
-public:
-       CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
-       ~CreateBD_Scale();
-
-       CreateBD_GUI *gui;
-};
-
 class CreateBD_ResizeTracks : public BC_CheckBox
 {
 public:
@@ -183,15 +178,6 @@ public:
        CreateBD_GUI *gui;
 };
 
-class CreateBD_WideAspect : public BC_CheckBox
-{
-public:
-       CreateBD_WideAspect(CreateBD_GUI *gui, int x, int y);
-       ~CreateBD_WideAspect();
-
-       CreateBD_GUI *gui;
-};
-
 class CreateBD_GUI : public BC_Window
 {
 public:
@@ -213,15 +199,15 @@ public:
        BrowseButton *btmp_path;
        CreateBD_DiskSpace *disk_space;
        CreateBD_Format *standard;
+       CreateBD_Scale *scale;
        ArrayList<BC_ListBoxItem *> media_sizes;
        CreateBD_MediaSize *media_size;
        CreateBD_Deinterlace *need_deinterlace;
        CreateBD_InverseTelecine *need_inverse_telecine;
-       CreateBD_Scale *need_scale;
        CreateBD_ResizeTracks *need_resize_tracks;
        CreateBD_Histogram *need_histogram;
+       BC_Title *non_standard;
        CreateBD_WideAudio *need_wide_audio;
-       CreateBD_WideAspect *need_wide_aspect;
        CreateBD_LabelChapters *need_label_chapters;
        int ok_x, ok_y, ok_w, ok_h;
        CreateBD_OK *ok;
@@ -247,8 +233,32 @@ public:
        int handle_event();
        CreateBD_Format(CreateBD_GUI *gui, int x, int y);
        ~CreateBD_Format();
+       void set_value(int v) { set_text(get_item(v)->get_text()); }
+
+       CreateBD_GUI *gui;
+};
+
+class CreateBD_ScaleItem : public BC_MenuItem
+{
+public:
+       int handle_event();
+       CreateBD_ScaleItem(CreateBD_Scale *popup, int scale, const char *text);
+       ~CreateBD_ScaleItem();
+
+       CreateBD_Scale *popup;
+       int scale;
+};
+
+class CreateBD_Scale : public BC_PopupMenu
+{
+public:
+       void create_objects();
+       int handle_event();
+       CreateBD_Scale(CreateBD_GUI *gui, int x, int y);
+       ~CreateBD_Scale();
 
        CreateBD_GUI *gui;
+       void set_value(int v) { set_text(Rescale::scale_types[v]); }
 };
 
 class CreateBD_MediaSize : public BC_PopupTextBox