From d0a8ad99117ef265561e1b6d4cfee2704cbbbb03 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 25 May 2016 23:49:02 +0100 Subject: Hint on high audio levels (part of #822). --- src/wx/hints_dialog.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/wx/hints_dialog.cc') diff --git a/src/wx/hints_dialog.cc b/src/wx/hints_dialog.cc index a2eefd39f..72ab0eef4 100644 --- a/src/wx/hints_dialog.cc +++ b/src/wx/hints_dialog.cc @@ -25,10 +25,12 @@ #include "lib/subtitle_content.h" #include "lib/font.h" #include "lib/content.h" +#include "lib/audio_analysis.h" #include #include #include +using std::max; using boost::shared_ptr; using boost::optional; using boost::dynamic_pointer_cast; @@ -172,6 +174,24 @@ HintsDialog::film_changed () _text->Newline (); } + boost::filesystem::path path = film->audio_analysis_path (film->playlist ()); + if (boost::filesystem::exists (path)) { + shared_ptr an (new AudioAnalysis (path)); + if (an->sample_peak() || an->true_peak()) { + float const peak = max (an->sample_peak().get_value_or(0), an->true_peak().get_value_or(0)); + float const peak_dB = 20 * log10 (peak) + an->gain_correction (film->playlist ()); + if (peak_dB > -3 && peak_dB < -0.5) { + hint = true; + _text->WriteText (_("Your audio level is very high. You should reduce the gain of your audio content.")); + _text->Newline (); + } else if (peak_dB > -0.5) { + hint = true; + _text->WriteText (_("Your audio level is very close to clipping. You should reduce the gain of your audio content.")); + _text->Newline (); + } + } + } + _text->EndSymbolBullet (); if (!hint) { -- cgit v1.2.3