/** Data specific to the compress filter. */
struct private_compress_data {
/** The current multiplier. */
/** Data specific to the compress filter. */
struct private_compress_data {
/** The current multiplier. */
{
struct private_compress_data *pcd = para_calloc(
sizeof(struct private_compress_data));
pcd->conf = fn->conf;
fn->private_data = pcd;
fn->min_iqs = 2; /* 16 bit audio */
{
struct private_compress_data *pcd = para_calloc(
sizeof(struct private_compress_data));
pcd->conf = fn->conf;
fn->private_data = pcd;
fn->min_iqs = 2; /* 16 bit audio */
pcd->current_gain = 1 << pcd->conf->inertia_arg;
pcd->max_gain = 1 << (pcd->conf->inertia_arg + pcd->conf->aggressiveness_arg);
}
pcd->current_gain = 1 << pcd->conf->inertia_arg;
pcd->max_gain = 1 << (pcd->conf->inertia_arg + pcd->conf->aggressiveness_arg);
}
f->pre_select = generic_filter_pre_select;
f->post_select = compress_post_select;
f->parse_config = compress_parse_config;
f->pre_select = generic_filter_pre_select;
f->post_select = compress_post_select;
f->parse_config = compress_parse_config;