feat: add mpv tone mapping setting

This commit is contained in:
dela
2026-06-22 13:50:34 +08:00
parent 53ef34195e
commit 4b650d4152
3 changed files with 23 additions and 2 deletions
+10 -2
View File
@@ -146,8 +146,16 @@ bool MpvController::init() {
<< "| interpolation=" << (vsyncMode == "display-resample");
mpv_set_option_string(m_mpv, "target-colorspace-hint", "auto");
mpv_set_option_string(m_mpv, "target-trc", "auto");
const QString toneMapping = ConfigStore::instance()->get<QString>(
ConfigKeys::PlayerToneMapping, "auto");
mpv_set_option_string(m_mpv, "tone-mapping", toneMapping.toUtf8().constData());
qDebug() << "[MpvController] Applied HDR tone mapping"
<< "| target-colorspace-hint=auto"
<< "| target-trc=auto"
<< "| tone-mapping=" << toneMapping;
QString hwdec = ConfigStore::instance()->get<QString>(ConfigKeys::PlayerHwDec, "auto-copy");
mpv_set_option_string(m_mpv, "hwdec", hwdec.toUtf8().constData());
@@ -80,6 +80,18 @@ PagePlayer::PagePlayer(QEmbyCore *core, QWidget *parent)
vsyncCombo, ConfigKeys::PlayerVideoSync, this,
QVariant("display-resample")));
auto *toneMappingCombo = new ModernComboBox(this);
toneMappingCombo->addItem(tr("Auto"), "auto");
toneMappingCombo->addItem(tr("Mobius"), "mobius");
toneMappingCombo->addItem(tr("BT.2390"), "bt.2390");
toneMappingCombo->addItem(tr("Hable"), "hable");
toneMappingCombo->addItem(tr("Reinhard"), "reinhard");
m_mainLayout->addWidget(
new SettingsCard(":/svg/dark/video-output.svg", tr("Tone Mapping"),
tr("HDR to SDR tone mapping algorithm"),
toneMappingCombo, ConfigKeys::PlayerToneMapping, this,
QVariant("auto")));
auto createLanguageRuleInput = [this](bool allowNone) {
auto *input = new ModernTagInput(this);
input->setPopupMode(ModernTagInput::ForcePopup);
+1
View File
@@ -106,6 +106,7 @@ constexpr const char* ImageCacheDuration = "cache/image_cache_duration";
constexpr const char* PlayerHwDec = "player/hw_decoding";
constexpr const char* PlayerVo = "player/video_output";
constexpr const char* PlayerVideoSync = "player/video_sync";
constexpr const char* PlayerToneMapping = "player/tone_mapping";
constexpr const char* PlayerDefaultScale = "player/default_scale";
constexpr const char* PlayerAudioLang = "player/audio_lang";
constexpr const char* PlayerSubLang = "player/sub_lang";