#include "stereocompressor.h"
#include "filter.h"
#include "input_state.h"
+#include "correlation_measurer.h"
class H264Encoder;
class QSurface;
typedef std::function<void(float level_lufs, float peak_db,
float global_level_lufs, float range_low_lufs, float range_high_lufs,
- float gain_staging_db, float final_makeup_gain_db)> audio_level_callback_t;
+ float gain_staging_db, float final_makeup_gain_db,
+ float correlation)> audio_level_callback_t;
void set_audio_level_callback(audio_level_callback_t callback)
{
audio_level_callback = callback;
locut_cutoff_hz = cutoff_hz;
}
+ void set_locut_enabled(bool enabled)
+ {
+ locut_enabled = enabled;
+ }
+
float get_limiter_threshold_dbfs()
{
return limiter_threshold_dbfs;
audio_level_callback_t audio_level_callback = nullptr;
std::mutex compressor_mutex;
Ebu_r128_proc r128; // Under compressor_mutex.
+ CorrelationMeasurer correlation; // Under compressor_mutex.
Resampler peak_resampler;
std::atomic<float> peak{0.0f};
- StereoFilter locut; // Default cutoff 150 Hz, 24 dB/oct.
+ StereoFilter locut; // Default cutoff 120 Hz, 24 dB/oct.
std::atomic<float> locut_cutoff_hz;
+ std::atomic<bool> locut_enabled{true};
// First compressor; takes us up to about -12 dBFS.
StereoCompressor level_compressor; // Under compressor_mutex. Used to set/override gain_staging_db if <level_compressor_enabled>.