Skip to content

Commit e20f031

Browse files
committed
Fix custom export preset with quality-based AAC
https://forum.shotcut.org/t/bug-in-the-audio-tab-for-custom-exportin/ 49087
1 parent c247489 commit e20f031

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/docks/encodedock.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ EncodeDock::~EncodeDock()
171171

172172
void EncodeDock::loadPresetFromProperties(Mlt::Properties &preset)
173173
{
174-
int audioQuality = -1;
174+
double audioQuality = -1.0;
175175
int videoQuality = -1;
176176
QStringList other;
177177
QChar decimalPoint = MLT.decimalPoint();
@@ -316,10 +316,10 @@ void EncodeDock::loadPresetFromProperties(Mlt::Properties &preset)
316316
ui->dualPassCheckbox->setChecked(preset.get_int("v2pass"));
317317
} else if (name == "aq") {
318318
ui->audioRateControlCombo->setCurrentIndex(RateControlQuality);
319-
audioQuality = preset.get_int("aq");
319+
audioQuality = preset.get_double("aq");
320320
} else if (name == "compression_level") {
321321
ui->audioRateControlCombo->setCurrentIndex(RateControlQuality);
322-
audioQuality = preset.get_int("compression_level");
322+
audioQuality = preset.get_double("compression_level");
323323
} else if (name == "vbr") {
324324
// libopus rate mode
325325
if (value == "off")
@@ -397,15 +397,17 @@ void EncodeDock::loadPresetFromProperties(Mlt::Properties &preset)
397397

398398
// normalize the quality settings
399399
// quality depends on codec
400-
if (ui->audioRateControlCombo->currentIndex() == RateControlQuality && audioQuality > -1) {
400+
if (ui->audioRateControlCombo->currentIndex() == RateControlQuality && audioQuality > -1.0) {
401401
const QString &acodec = ui->audioCodecCombo->currentText();
402402
if (acodec == "libmp3lame") // 0 (best) - 9 (worst)
403403
ui->audioQualitySpinner->setValue(TO_RELATIVE(9, 0, audioQuality));
404404
if (acodec == "libvorbis" || acodec == "vorbis"
405405
|| acodec == "libopus") // 0 (worst) - 10 (best)
406406
ui->audioQualitySpinner->setValue(TO_RELATIVE(0, 10, audioQuality));
407+
else if (acodec == "aac")
408+
ui->audioQualitySpinner->setValue(TO_RELATIVE(0.1, 2.0, audioQuality));
407409
else
408-
// aac: 0 (worst) - 500 (best)
410+
// 0 (worst) - 500 (best)
409411
ui->audioQualitySpinner->setValue(TO_RELATIVE(0, 500, audioQuality));
410412
}
411413
if (acodec == "vorbis" || acodec == "libvorbis")

0 commit comments

Comments
 (0)