anonymous contribution for much improved ChromakeyHSV plugin menu with boxes to set...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / bdcreate.h
index f69ee1aa78d21291e5c5b879c43d516fd0e46681..6d58682b7387774b935a05a7f187068cfc772d7f 100644 (file)
@@ -1,3 +1,24 @@
+/*
+ * CINELERRA
+ * Copyright (C) 2016-2020 William Morrow
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published
+ * by the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+
 #ifndef __BDCREATE_H__
 #define __BDCREATE_H__
 
@@ -24,6 +45,15 @@ public:
        MWindow *mwindow;
 };
 
+class BD_BatchRenderJob : public BatchRenderJob
+{
+public:
+       static int get_udfs_mount(char *udfs, char *mopts, char *mntpt);
+       BD_BatchRenderJob(Preferences *preferences, int labeled, int farmed);
+       char *create_script(EDL *edl, ArrayList<Indexable *> *idxbls);
+       int tsmuxered;
+};
+
 
 class CreateBD_Thread : public BC_DialogThread
 {
@@ -34,13 +64,13 @@ class CreateBD_Thread : public BC_DialogThread
        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_script(const char *path, EDL *edl);
        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,11 +79,13 @@ public:
        CreateBD_GUI *gui;
        char asset_title[BCTEXTLEN];
        char tmp_path[BCTEXTLEN];
+       char use_profile[BCTEXTLEN];
        int use_deinterlace, use_inverse_telecine;
        int use_scale, use_resize_tracks;
-       int use_wide_audio;
-       int use_histogram, use_label_chapters;
+       int use_wide_audio, use_farmed;
+       int use_histogram, use_labeled;
        int use_standard;
+       int use_tsmuxer;
 
        int64_t bd_size;
        int bd_width;
@@ -66,6 +98,8 @@ public:
        double bd_kaudio_rate;
        int bd_interlace_mode;
        int max_w, max_h;
+
+       BD_BatchRenderJob *batchrender;
 };
 
 class CreateBD_OK : public BC_OKButton
@@ -169,6 +203,16 @@ public:
        CreateBD_GUI *gui;
 };
 
+class CreateBD_UseRenderFarm : public BC_CheckBox
+{
+public:
+       CreateBD_UseRenderFarm(CreateBD_GUI *gui, int x, int y);
+       ~CreateBD_UseRenderFarm();
+
+       CreateBD_GUI *gui;
+};
+
+
 class CreateBD_WideAudio : public BC_CheckBox
 {
 public:
@@ -178,6 +222,17 @@ public:
        CreateBD_GUI *gui;
 };
 
+
+class CreateBD_UseTsmuxer : public BC_CheckBox
+{
+public:
+       CreateBD_UseTsmuxer(CreateBD_GUI *gui, int x, int y);
+       ~CreateBD_UseTsmuxer();
+
+       CreateBD_GUI *gui;
+};
+
+
 class CreateBD_GUI : public BC_Window
 {
 public:
@@ -206,13 +261,17 @@ public:
        CreateBD_InverseTelecine *need_inverse_telecine;
        CreateBD_ResizeTracks *need_resize_tracks;
        CreateBD_Histogram *need_histogram;
+       CreateBD_UseTsmuxer *need_tsmuxer;
        BC_Title *non_standard;
        CreateBD_WideAudio *need_wide_audio;
-       CreateBD_LabelChapters *need_label_chapters;
+       CreateBD_LabelChapters *need_labeled;
+       CreateBD_UseRenderFarm *need_farmed;
        int ok_x, ok_y, ok_w, ok_h;
        CreateBD_OK *ok;
        int cancel_x, cancel_y, cancel_w, cancel_h;
        CreateBD_Cancel *cancel;
+       ArrayList<BC_ListBoxItem *> profiles;
+       CreateBD_Profile *profile;
 };
 
 class CreateBD_FormatItem : public BC_MenuItem
@@ -271,4 +330,15 @@ public:
        CreateBD_GUI *gui;
 };
 
+class CreateBD_Profile : public BC_PopupTextBox
+{
+public:
+       CreateBD_Profile(CreateBD_GUI *gui, int x, int y);
+       ~CreateBD_Profile();
+       int handle_event();
+
+       CreateBD_GUI *gui;
+};
+
+
 #endif