sequence encapsulation

This commit is contained in:
itsmattkc
2019-05-09 00:19:36 +10:00
parent 5f0debb7ec
commit 2905dce3d9
37 changed files with 380 additions and 293 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ ClipPropertiesDialog::ClipPropertiesDialog(QWidget *parent, QVector<Clip *> clip
}
// it's assumed all the clips come from the same sequence
duration_field_->SetFrameRate(first_clip->track()->sequence()->frame_rate);
duration_field_->SetFrameRate(first_clip->track()->sequence()->frame_rate());
if (all_clips_have_same_duration) {
duration_field_->SetDefault(first_clip->length());
+6 -6
View File
@@ -72,7 +72,7 @@ ExportDialog::ExportDialog(QWidget *parent, Sequence* sequence) :
QDialog(parent),
sequence_(sequence)
{
setWindowTitle(tr("Export \"%1\"").arg(sequence->name));
setWindowTitle(tr("Export \"%1\"").arg(sequence->name()));
setup_ui();
rangeCombobox->setCurrentIndex(0);
@@ -110,10 +110,10 @@ ExportDialog::ExportDialog(QWidget *parent, Sequence* sequence) :
formatCombobox->setCurrentIndex(FORMAT_MPEG4);
// default to sequence's native dimensions
widthSpinbox->setValue(sequence->width);
heightSpinbox->setValue(sequence->height);
samplingRateSpinbox->setValue(sequence->audio_frequency);
framerateSpinbox->setValue(sequence->frame_rate);
widthSpinbox->setValue(sequence->width());
heightSpinbox->setValue(sequence->height());
samplingRateSpinbox->setValue(sequence->audio_frequency());
framerateSpinbox->setValue(sequence->frame_rate());
// set some advanced defaults
vcodec_params.threads = 0;
@@ -656,7 +656,7 @@ void ExportDialog::comp_type_changed(int) {
case COMPRESSION_TYPE_CBR:
case COMPRESSION_TYPE_TARGETBR:
videoBitrateLabel->setText(tr("Bitrate (Mbps):"));
videobitrateSpinbox->setValue(qMax(0.5, (double) qRound((0.01528 * sequence_->height) - 4.5)));
videobitrateSpinbox->setValue(qMax(0.5, (double) qRound((0.01528 * sequence_->height()) - 4.5)));
break;
case COMPRESSION_TYPE_CFR:
videoBitrateLabel->setText(tr("Quality (CRF):"));
+19 -19
View File
@@ -59,20 +59,20 @@ NewSequenceDialog::NewSequenceDialog(QWidget *parent, Media *existing, Sequence*
}
if (existing_sequence != nullptr) {
setWindowTitle(tr("Editing \"%1\"").arg(existing_sequence->name));
setWindowTitle(tr("Editing \"%1\"").arg(existing_sequence->name()));
width_numeric->setValue(existing_sequence->width);
height_numeric->setValue(existing_sequence->height);
int comp_rate = qRound(existing_sequence->frame_rate*100);
width_numeric->setValue(existing_sequence->width());
height_numeric->setValue(existing_sequence->height());
int comp_rate = qRound(existing_sequence->frame_rate()*100);
for (int i=0;i<frame_rate_combobox->count();i++) {
if (qRound(frame_rate_combobox->itemData(i).toDouble()*100) == comp_rate) {
frame_rate_combobox->setCurrentIndex(i);
break;
}
}
sequence_name_edit->setText(existing_sequence->name);
sequence_name_edit->setText(existing_sequence->name());
for (int i=0;i<audio_frequency_combobox->count();i++) {
if (audio_frequency_combobox->itemData(i) == existing_sequence->audio_frequency) {
if (audio_frequency_combobox->itemData(i) == existing_sequence->audio_frequency()) {
audio_frequency_combobox->setCurrentIndex(i);
break;
}
@@ -100,12 +100,12 @@ void NewSequenceDialog::accept() {
SequencePtr s = std::make_shared<Sequence>();
s->name = sequence_name_edit->text();
s->width = width_numeric->value();
s->height = height_numeric->value();
s->frame_rate = frame_rate_combobox->currentData().toDouble();
s->audio_frequency = audio_frequency_combobox->currentData().toInt();
s->audio_layout = AV_CH_LAYOUT_STEREO;
s->set_name(sequence_name_edit->text());
s->set_width(width_numeric->value());
s->set_height(height_numeric->value());
s->set_frame_rate(frame_rate_combobox->currentData().toDouble());
s->set_audio_frequency(audio_frequency_combobox->currentData().toInt());
s->set_audio_layout(AV_CH_LAYOUT_STEREO);
ComboAction* ca = new ComboAction();
olive::project_model.CreateSequence(ca, s, true, nullptr);
@@ -117,7 +117,7 @@ void NewSequenceDialog::accept() {
ComboAction* ca = new ComboAction();
double multiplier = frame_rate_combobox->currentData().toDouble() / existing_sequence->frame_rate;
double multiplier = frame_rate_combobox->currentData().toDouble() / existing_sequence->frame_rate();
EditSequenceCommand* esc = new EditSequenceCommand(existing_item, existing_item->to_sequence());
esc->name = sequence_name_edit->text();
@@ -139,12 +139,12 @@ void NewSequenceDialog::accept() {
// This dialog was given an existing Sequence without a Media wrapper - therefore just directly apply the settings
existing_sequence->name = sequence_name_edit->text();
existing_sequence->width = width_numeric->value();
existing_sequence->height = height_numeric->value();
existing_sequence->frame_rate = frame_rate_combobox->currentData().toDouble();
existing_sequence->audio_frequency = audio_frequency_combobox->currentData().toInt();
existing_sequence->audio_layout = AV_CH_LAYOUT_STEREO;
existing_sequence->set_name(sequence_name_edit->text());
existing_sequence->set_width(width_numeric->value());
existing_sequence->set_height(height_numeric->value());
existing_sequence->set_frame_rate(frame_rate_combobox->currentData().toDouble());
existing_sequence->set_audio_frequency(audio_frequency_combobox->currentData().toInt());
existing_sequence->set_audio_layout(AV_CH_LAYOUT_STEREO);
}
+11 -11
View File
@@ -89,12 +89,12 @@ PreferencesDialog::PreferencesDialog(QWidget *parent) :
setup_kbd_shortcuts(olive::MainWindow->menuBar());
// set up default sequence
default_sequence.name = tr("Default Sequence");
default_sequence.width = olive::config.default_sequence_width;
default_sequence.height = olive::config.default_sequence_height;
default_sequence.frame_rate = olive::config.default_sequence_framerate;
default_sequence.audio_frequency = olive::config.default_sequence_audio_frequency;
default_sequence.audio_layout = olive::config.default_sequence_audio_channel_layout;
default_sequence.set_name(tr("Default Sequence"));
default_sequence.set_width(olive::config.default_sequence_width);
default_sequence.set_height(olive::config.default_sequence_height);
default_sequence.set_frame_rate(olive::config.default_sequence_framerate);
default_sequence.set_audio_frequency(olive::config.default_sequence_audio_frequency);
default_sequence.set_audio_layout(olive::config.default_sequence_audio_channel_layout);
}
void PreferencesDialog::setup_kbd_shortcut_worker(QMenu* menu, QTreeWidgetItem* parent) {
@@ -460,11 +460,11 @@ void PreferencesDialog::accept() {
// Set default sequence options
olive::config.default_sequence_width = default_sequence.width;
olive::config.default_sequence_height = default_sequence.height;
olive::config.default_sequence_framerate = default_sequence.frame_rate;
olive::config.default_sequence_audio_frequency = default_sequence.audio_frequency;
olive::config.default_sequence_audio_channel_layout = default_sequence.audio_layout;
olive::config.default_sequence_width = default_sequence.width();
olive::config.default_sequence_height = default_sequence.height();
olive::config.default_sequence_framerate = default_sequence.frame_rate();
olive::config.default_sequence_audio_frequency = default_sequence.audio_frequency();
olive::config.default_sequence_audio_channel_layout = default_sequence.audio_layout();
// Set all bool options
for (int i=0;i<bool_ui.size();i++) {
+1 -1
View File
@@ -61,7 +61,7 @@ SpeedDialog::SpeedDialog(QWidget *parent, QVector<Clip*> clips) : QDialog(parent
grid->addWidget(new QLabel(tr("Duration:"), this), 2, 0);
duration = new LabelSlider(this);
duration->SetDisplayType(LabelSlider::FrameNumber);
duration->SetFrameRate(clips_.first()->track()->sequence()->frame_rate);
duration->SetFrameRate(clips_.first()->track()->sequence()->frame_rate());
grid->addWidget(duration, 2, 1);
main_layout->addLayout(grid);