diff options
Diffstat (limited to 'cras/src/dsp/drc_kernel.h')
-rw-r--r-- | cras/src/dsp/drc_kernel.h | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/cras/src/dsp/drc_kernel.h b/cras/src/dsp/drc_kernel.h deleted file mode 100644 index 2ed9956e..00000000 --- a/cras/src/dsp/drc_kernel.h +++ /dev/null @@ -1,109 +0,0 @@ -/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -/* Copyright (C) 2011 Google Inc. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE.WEBKIT file. - */ - -#ifndef DRC_KERNEL_H_ -#define DRC_KERNEL_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define DRC_NUM_CHANNELS 2 - -struct drc_kernel { - float sample_rate; - - /* The detector_average is the target gain obtained by looking at the - * future samples in the lookahead buffer and applying the compression - * curve on them. compressor_gain is the gain applied to the current - * samples. compressor_gain moves towards detector_average with the - * speed envelope_rate which is calculated once for each division (32 - * frames). */ - float detector_average; - float compressor_gain; - int enabled; - int processed; - - /* Lookahead section. */ - unsigned last_pre_delay_frames; - float *pre_delay_buffers[DRC_NUM_CHANNELS]; - int pre_delay_read_index; - int pre_delay_write_index; - - float max_attack_compression_diff_db; - - /* Amount of input change in dB required for 1 dB of output change. - * This applies to the portion of the curve above knee_threshold - * (see below). - */ - float ratio; - float slope; /* Inverse ratio. */ - - /* The input to output change below the threshold is 1:1. */ - float linear_threshold; - float db_threshold; - - /* db_knee is the number of dB above the threshold before we enter the - * "ratio" portion of the curve. The portion between db_threshold and - * (db_threshold + db_knee) is the "soft knee" portion of the curve - * which transitions smoothly from the linear portion to the ratio - * portion. knee_threshold is db_to_linear(db_threshold + db_knee). - */ - float db_knee; - float knee_threshold; - float ratio_base; - - /* Internal parameter for the knee portion of the curve. */ - float K; - - /* The release frames coefficients */ - float kA, kB, kC, kD, kE; - - /* Calculated parameters */ - float main_linear_gain; - float attack_frames; - float sat_release_frames_inv_neg; - float sat_release_rate_at_neg_two_db; - float knee_alpha, knee_beta; - - /* envelope for the current division */ - float envelope_rate; - float scaled_desired_gain; -}; - -/* Initializes a drc kernel */ -void dk_init(struct drc_kernel *dk, float sample_rate); - -/* Frees a drc kernel */ -void dk_free(struct drc_kernel *dk); - -/* Sets the parameters of a drc kernel. See drc.h for details */ -void dk_set_parameters(struct drc_kernel *dk, float db_threshold, float db_knee, - float ratio, float attack_time, float release_time, - float pre_delay_time, float db_post_gain, - float releaseZone1, float releaseZone2, - float releaseZone3, float releaseZone4); - -/* Enables or disables a drc kernel */ -void dk_set_enabled(struct drc_kernel *dk, int enabled); - -/* Performs stereo-linked compression. - * Args: - * dk - The DRC kernel. - * data - The pointers to the audio sample buffer. One pointer per channel. - * count - The number of audio samples per channel. - */ -void dk_process(struct drc_kernel *dk, float *data_channels[], unsigned count); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif /* DRC_KERNEL_H_ */ |