Data Structures | Macros | Functions | Variables
af_sidechaincompress.c File Reference

Audio (Sidechain) Compressor filter. More...

#include "libavutil/audio_fifo.h"
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/common.h"
#include "libavutil/opt.h"
#include "audio.h"
#include "avfilter.h"
#include "filters.h"
#include "formats.h"
#include "hermite.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  SidechainCompressContext


#define OFFSET(x)   offsetof(SidechainCompressContext, x)
#define sidechaincompress_options   options
#define FAKE_INFINITY   (65536.0 * 65536.0)
#define IS_FAKE_INFINITY(value)   (fabs(value-FAKE_INFINITY) < 1.0)


 AVFILTER_DEFINE_CLASS (sidechaincompress)
static double output_gain (double lin_slope, double ratio, double thres, double knee, double knee_start, double knee_stop, double compressed_knee_start, double compressed_knee_stop, int detection, int mode)
static int compressor_config_output (AVFilterLink *outlink)
static void compressor (SidechainCompressContext *s, const double *src, double *dst, const double *scsrc, int nb_samples, double level_in, double level_sc, AVFilterLink *inlink, AVFilterLink *sclink)
static int process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)


static const AVOption options []

Detailed Description

Audio (Sidechain) Compressor filter.

Definition in file af_sidechaincompress.c.

Macro Definition Documentation

#define OFFSET (   x)    offsetof(SidechainCompressContext, x)

Definition at line 70 of file af_sidechaincompress.c.


Definition at line 71 of file af_sidechaincompress.c.

Definition at line 72 of file af_sidechaincompress.c.


Definition at line 73 of file af_sidechaincompress.c.

#define sidechaincompress_options   options

Definition at line 97 of file af_sidechaincompress.c.

#define FAKE_INFINITY   (65536.0 * 65536.0)

Definition at line 101 of file af_sidechaincompress.c.

#define IS_FAKE_INFINITY (   value)    (fabs(value-FAKE_INFINITY) < 1.0)

Definition at line 104 of file af_sidechaincompress.c.

Referenced by output_gain().

Function Documentation

AVFILTER_DEFINE_CLASS ( sidechaincompress  )

Referenced by process_command().

static double output_gain ( double  lin_slope,
double  ratio,
double  thres,
double  knee,
double  knee_start,
double  knee_stop,
double  compressed_knee_start,
double  compressed_knee_stop,
int  detection,
int  mode 

Definition at line 106 of file af_sidechaincompress.c.

Referenced by compressor().

static int compressor_config_output ( AVFilterLink outlink)

Definition at line 142 of file af_sidechaincompress.c.

Referenced by process_command().

static void compressor ( SidechainCompressContext s,
const double *  src,
double *  dst,
const double *  scsrc,
int  nb_samples,
double  level_in,
double  level_sc,
AVFilterLink inlink,
AVFilterLink sclink 

Definition at line 163 of file af_sidechaincompress.c.

Referenced by process_command().

static int process_command ( AVFilterContext ctx,
const char *  cmd,
const char *  args,
char *  res,
int  res_len,
int  flags 

Definition at line 218 of file af_sidechaincompress.c.

Variable Documentation

const AVOption options[]
Initial value:
= {
{ "level_in", "set input gain", OFFSET(level_in), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.015625, 64, A|F|R },
{ "mode", "set mode", OFFSET(mode), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, A|F|R, "mode" },
{ "downward",0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F|R, "mode" },
{ "upward", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F|R, "mode" },
{ "threshold", "set threshold", OFFSET(threshold), AV_OPT_TYPE_DOUBLE, {.dbl=0.125}, 0.000976563, 1, A|F|R },
{ "ratio", "set ratio", OFFSET(ratio), AV_OPT_TYPE_DOUBLE, {.dbl=2}, 1, 20, A|F|R },
{ "attack", "set attack", OFFSET(attack), AV_OPT_TYPE_DOUBLE, {.dbl=20}, 0.01, 2000, A|F|R },
{ "release", "set release", OFFSET(release), AV_OPT_TYPE_DOUBLE, {.dbl=250}, 0.01, 9000, A|F|R },
{ "makeup", "set make up gain", OFFSET(makeup), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 1, 64, A|F|R },
{ "knee", "set knee", OFFSET(knee), AV_OPT_TYPE_DOUBLE, {.dbl=2.82843}, 1, 8, A|F|R },
{ "link", "set link type", OFFSET(link), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, A|F|R, "link" },
{ "average", 0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F|R, "link" },
{ "maximum", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F|R, "link" },
{ "detection", "set detection", OFFSET(detection), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, A|F|R, "detection" },
{ "peak", 0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F|R, "detection" },
{ "rms", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F|R, "detection" },
{ "level_sc", "set sidechain gain", OFFSET(level_sc), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.015625, 64, A|F|R },
{ "mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, A|F|R },
{ NULL }
#define NULL
Definition: coverity.c:32
#define F
#define A
#define OFFSET(x)
#define R
static int mix(int c0, int c1)
Definition: 4xm.c:714
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a link
Use these values in ebur128_init (or&#39;ed).
Definition: ebur128.h:83

Definition at line 75 of file af_sidechaincompress.c.