9 #include <QApplication>
11 #include "tab_movie_mpeg4.h"
12 #include "dialog_movie.h"
13 #include "../avio/movie_saver.h"
14 #include "../../config.h"
16 CSP_TabMovieMPEG4::CSP_TabMovieMPEG4(MOVIE_SAVER *ms, CSP_DialogMovie *parent_window, USING_FLAGS *p, QWidget *parent) : QWidget(parent)
22 p_window = parent_window;
24 video_maxq = config.video_mpeg4_maxq;
25 video_minq = config.video_mpeg4_minq;
26 if(video_maxq < video_minq) {
28 video_maxq = video_minq;
31 if(video_maxq < 1) video_maxq = 1;
32 if(video_maxq > 31) video_maxq = 31;
33 if(video_minq < 1) video_minq = 1;
34 if(video_minq > 31) video_minq = 31;
36 label_video_bframes = new QLabel(QApplication::translate("MainWindow", "Max B Frames", 0), this);
37 combo_video_bframes = new QComboBox(this);
39 label_video_bitrate = new QLabel(QApplication::translate("MainWindow", "Bitrate", 0), this);
40 combo_video_bitrate = new QComboBox(this);
41 combo_video_bitrate->addItem(QString::fromUtf8("128Kbps"), 128);
42 combo_video_bitrate->addItem(QString::fromUtf8("256Kbps"), 256);
43 combo_video_bitrate->addItem(QString::fromUtf8("300Kbps"), 300);
44 combo_video_bitrate->addItem(QString::fromUtf8("512Kbps"), 512);
45 combo_video_bitrate->addItem(QString::fromUtf8("600Kbps"), 600);
46 combo_video_bitrate->addItem(QString::fromUtf8("768Kbps"), 768);
47 combo_video_bitrate->addItem(QString::fromUtf8("900Kbps"), 900);
48 combo_video_bitrate->addItem(QString::fromUtf8("1000Kbps"), 1000);
49 combo_video_bitrate->addItem(QString::fromUtf8("1200Kbps"), 1200);
50 combo_video_bitrate->addItem(QString::fromUtf8("1500Kbps"), 1500);
51 combo_video_bitrate->addItem(QString::fromUtf8("1800Kbps"), 1800);
52 combo_video_bitrate->addItem(QString::fromUtf8("3000Kbps"), 3000);
53 combo_video_bitrate->addItem(QString::fromUtf8("4500Kbps"), 4500);
54 combo_video_bitrate->addItem(QString::fromUtf8("5000Kbps"), 5000);
55 combo_video_bitrate->addItem(QString::fromUtf8("7500Kbps"), 7500);
56 combo_video_bitrate->addItem(QString::fromUtf8("9000Kbps"), 9000);
57 combo_video_bitrate->addItem(QString::fromUtf8("10000Kbps"), 10000);
58 combo_video_bitrate->addItem(QString::fromUtf8("15000Kbps"), 15000);
59 combo_video_bitrate->addItem(QString::fromUtf8("20000Kbps"), 20000);
60 for(int i = 0; i < combo_video_bitrate->count(); i++) {
61 int br = combo_video_bitrate->itemData(i).toInt();
62 if(br == config.video_mpeg4_bitrate) {
63 combo_video_bitrate->setCurrentIndex(i);
66 connect(combo_video_bitrate, SIGNAL(activated(int)), this, SLOT(do_set_video_bitrate(int)));
67 video_bitrate = config.video_mpeg4_bitrate;
70 combo_video_bframes->addItem(QString::fromUtf8("1"), 1);
71 combo_video_bframes->addItem(QString::fromUtf8("2"), 2);
72 combo_video_bframes->addItem(QString::fromUtf8("3"), 3);
73 combo_video_bframes->addItem(QString::fromUtf8("4"), 4);
74 combo_video_bframes->addItem(QString::fromUtf8("5"), 5);
75 combo_video_bframes->addItem(QString::fromUtf8("6"), 6);
76 combo_video_bframes->addItem(QString::fromUtf8("7"), 7);
77 combo_video_bframes->addItem(QString::fromUtf8("8"), 8);
78 for(int i = 0; i < combo_video_bframes->count(); i++) {
79 int br = combo_video_bframes->itemData(i).toInt();
80 if(br == config.video_mpeg4_bframes) {
81 combo_video_bframes->setCurrentIndex(i);
84 video_bframes = config.video_mpeg4_bframes;
85 connect(combo_video_bframes, SIGNAL(activated(int)), this, SLOT(do_set_bframes(int)));
88 slider_qmin = new QSlider(Qt::Horizontal, this);
89 slider_qmin->setMinimum(1);
90 slider_qmin->setMaximum(31);
91 slider_qmin->setValue(config.video_mpeg4_minq);
92 label_qmin_val = new QLabel(this);
93 tmps.setNum(config.video_mpeg4_minq);
94 label_qmin_val->setText(tmps);
95 label_qmin_name = new QLabel(QString::fromUtf8("QP Min"), this);
96 video_minq = config.video_mpeg4_minq;
97 connect(slider_qmin, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmin(int)));
99 slider_qmax = new QSlider(Qt::Horizontal, this);
100 slider_qmax->setMinimum(1);
101 slider_qmax->setMaximum(31);
102 slider_qmax->setValue(config.video_mpeg4_maxq);
103 label_qmax_val = new QLabel(this);
104 tmps.setNum(config.video_mpeg4_maxq);
105 label_qmax_val->setText(tmps);
106 label_qmax_name = new QLabel(QString::fromUtf8("QP Max"), this);
107 connect(slider_qmax, SIGNAL(valueChanged(int)), this, SLOT(do_set_qmax(int)));
108 video_maxq = config.video_mpeg4_maxq;
110 label_title = new QLabel(QApplication::translate("MainWindow", "Set MPEG4v1 parameter.", 0), this);
111 grid_layout = new QGridLayout(this);
113 grid_layout->addWidget(label_title, 0, 0);
115 grid_layout->addWidget(label_qmin_name, 1, 0);
116 grid_layout->addWidget(label_qmin_val, 1, 3);
117 grid_layout->addWidget(slider_qmin, 2, 0, 1, 4);
118 grid_layout->addWidget(label_qmax_name, 3, 0);
119 grid_layout->addWidget(label_qmax_val, 3, 3);
120 grid_layout->addWidget(slider_qmax, 4, 0, 1, 4);
121 grid_layout->addWidget(label_video_bitrate, 5, 0);
122 grid_layout->addWidget(combo_video_bitrate, 5, 1);
124 grid_layout->addWidget(label_video_bframes, 5, 2);
125 grid_layout->addWidget(combo_video_bframes, 5, 3);
127 this->setLayout(grid_layout);
129 connect(this, SIGNAL(sig_video_add_option(QString, QString)), p_movie, SLOT(do_add_option(QString, QString)));
130 connect(this, SIGNAL(sig_set_video_bitrate(int)), p_movie, SLOT(do_set_video_bitrate(int)));
135 CSP_TabMovieMPEG4::~CSP_TabMovieMPEG4()
139 void CSP_TabMovieMPEG4::do_set_codecs(void)
143 // https://libav.org/avconv.html#Video-Options
144 config.video_mpeg4_bitrate = video_bitrate;
146 config.video_mpeg4_maxq = video_maxq;
147 config.video_mpeg4_minq = video_minq;
148 config.video_mpeg4_bframes = video_bframes;
151 void CSP_TabMovieMPEG4::do_set_qmin(int n)
158 label_qmin_val->setText(tmps);
161 void CSP_TabMovieMPEG4::do_set_qmax(int n)
169 label_qmax_val->setText(tmps);
172 void CSP_TabMovieMPEG4::do_set_bframes(int n)
174 int val = combo_video_bframes->itemData(n).toInt();
176 if(val > 10) val = 10;
180 void CSP_TabMovieMPEG4::do_set_video_bitrate(int n)
182 int val = combo_video_bitrate->itemData(n).toInt();
183 if(val < 64) val = 64;