Every app module now reaches liboakengine exclusively through oakengine_* C calls, EngineEventBridge subscriptions and app-side handle headers (cliphandle/keyframehandle/nodevaluehandle/oakvaluehelper). Direct C++ command construction, engine signal connect()s, and engine type usage in MOC-visible signatures are gone: 557 -> 0 undefined olive:: symbols in oak-editor.
100 lines
3.1 KiB
C++
100 lines
3.1 KiB
C++
/***
|
|
|
|
Olive - Non-Linear Video Editor
|
|
Copyright (C) 2022 Olive Team
|
|
Modifications Copyright (C) 2025 mikesolar
|
|
|
|
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 3 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, see <http://www.gnu.org/licenses/>.
|
|
|
|
***/
|
|
|
|
#include "cineformsection.h"
|
|
|
|
#include <QGridLayout>
|
|
#include <QLabel>
|
|
|
|
namespace olive
|
|
{
|
|
|
|
CineformSection::CineformSection(QWidget *parent)
|
|
: CodecSection(parent)
|
|
{
|
|
QGridLayout *layout = new QGridLayout(this);
|
|
|
|
layout->setContentsMargins(0, 0, 0, 0);
|
|
|
|
int row = 0;
|
|
|
|
layout->addWidget(new QLabel(tr("Quality:")), row, 0);
|
|
|
|
quality_combobox_ = new QComboBox();
|
|
|
|
/* Correspond to the following indexes for FFmpeg
|
|
*
|
|
* -quality <int> E..V....... set quality (from 0 to 12) (default film3+)
|
|
* film3+ 0 E..V.......
|
|
* film3 1 E..V.......
|
|
* film2+ 2 E..V.......
|
|
* film2 3 E..V.......
|
|
* film1.5 4 E..V.......
|
|
* film1+ 5 E..V.......
|
|
* film1 6 E..V.......
|
|
* high+ 7 E..V.......
|
|
* high 8 E..V.......
|
|
* medium+ 9 E..V.......
|
|
* medium 10 E..V.......
|
|
* low+ 11 E..V.......
|
|
* low 12 E..V.......
|
|
*
|
|
*/
|
|
|
|
quality_combobox_->addItem(tr("Film Scan 3+"));
|
|
quality_combobox_->addItem(tr("Film Scan 3"));
|
|
quality_combobox_->addItem(tr("Film Scan 2+"));
|
|
quality_combobox_->addItem(tr("Film Scan 2"));
|
|
quality_combobox_->addItem(tr("Film Scan 1.5"));
|
|
quality_combobox_->addItem(tr("Film Scan 1+"));
|
|
quality_combobox_->addItem(tr("Film Scan 1"));
|
|
quality_combobox_->addItem(tr("High+"));
|
|
quality_combobox_->addItem(tr("High"));
|
|
quality_combobox_->addItem(tr("Medium+"));
|
|
quality_combobox_->addItem(tr("Medium"));
|
|
quality_combobox_->addItem(tr("Low+"));
|
|
quality_combobox_->addItem(tr("Low"));
|
|
|
|
// Default to "medium"
|
|
quality_combobox_->setCurrentIndex(10);
|
|
|
|
layout->addWidget(quality_combobox_, row, 1);
|
|
}
|
|
|
|
void CineformSection::add_opts(OakEngineEncodingParams *params)
|
|
{
|
|
oakengine_encoding_params_set_video_option(
|
|
params, "quality",
|
|
QByteArray::number(quality_combobox_->currentIndex()).constData());
|
|
}
|
|
|
|
void CineformSection::set_opts(const OakEngineEncodingParams *p)
|
|
{
|
|
char buf[64];
|
|
const int ret = oakengine_encoding_params_video_option(
|
|
p, "quality", buf, static_cast<int>(sizeof(buf)));
|
|
if (ret > 0) {
|
|
quality_combobox_->setCurrentIndex(QString::fromUtf8(buf).toInt());
|
|
}
|
|
}
|
|
|
|
}
|