Olive
exportdialog.h
1 /***
2 
3  Olive - Non-Linear Video Editor
4  Copyright (C) 2019 Olive Team
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 
19 ***/
20 
21 #ifndef EXPORTDIALOG_H
22 #define EXPORTDIALOG_H
23 
24 #include <QDialog>
25 
26 struct Sequence;
27 class ExportThread;
28 class QComboBox;
29 class QSpinBox;
30 class QDoubleSpinBox;
31 class QLabel;
32 class QProgressBar;
33 class QGroupBox;
34 
35 #include "io/exportthread.h"
36 
37 class ExportDialog : public QDialog
38 {
39  Q_OBJECT
40 public:
41  explicit ExportDialog(QWidget *parent = 0);
42  ~ExportDialog();
43  QString export_error;
44 
45 private slots:
46  void format_changed(int index);
47  void export_action();
48  void update_progress_bar(int value, qint64 remaining_ms);
49  void cancel_render();
50  void render_thread_finished();
51  void vcodec_changed(int index);
52  void comp_type_changed(int index);
53  void open_advanced_video_dialog();
54 
55 private:
56  QVector<QString> format_strings;
57  void setup_ui();
58 
59  ExportThread* et;
60  void prep_ui_for_render(bool r);
61  bool cancelled;
62 
63  void add_codec_to_combobox(QComboBox* box, enum AVCodecID codec);
64 
65  VideoCodecParams vcodec_params;
66 
67  QComboBox* rangeCombobox;
68  QSpinBox* widthSpinbox;
69  QDoubleSpinBox* videobitrateSpinbox;
70  QLabel* videoBitrateLabel;
71  QDoubleSpinBox* framerateSpinbox;
72  QComboBox* vcodecCombobox;
73  QComboBox* acodecCombobox;
74  QSpinBox* samplingRateSpinbox;
75  QSpinBox* audiobitrateSpinbox;
76  QProgressBar* progressBar;
77  QComboBox* formatCombobox;
78  QSpinBox* heightSpinbox;
79  QPushButton* export_button;
80  QPushButton* cancel_button;
81  QPushButton* renderCancel;
82  QGroupBox* videoGroupbox;
83  QGroupBox* audioGroupbox;
84  QComboBox* compressionTypeCombobox;
85 };
86 
87 #endif // EXPORTDIALOG_H
Definition: sequence.h:33
Definition: exportthread.h:72
Definition: exportthread.h:68
Definition: exportdialog.h:37