FFmpeg
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
 

Macros

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

Functions

 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)
 

Variables

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.

#define A   AV_OPT_FLAG_AUDIO_PARAM

Definition at line 71 of file af_sidechaincompress.c.

Definition at line 72 of file af_sidechaincompress.c.

#define sidechaincompress_options   options

Definition at line 96 of file af_sidechaincompress.c.

#define FAKE_INFINITY   (65536.0 * 65536.0)

Definition at line 100 of file af_sidechaincompress.c.

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

Definition at line 103 of file af_sidechaincompress.c.

Referenced by output_gain().

Function Documentation

AVFILTER_DEFINE_CLASS ( sidechaincompress  )

Referenced by compressor().

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

Definition at line 105 of file af_sidechaincompress.c.

Referenced by compressor().

static int compressor_config_output ( AVFilterLink outlink)
static

Definition at line 141 of file af_sidechaincompress.c.

Referenced by compressor().

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

Definition at line 162 of file af_sidechaincompress.c.

Variable Documentation

const AVOption options[]
static
Initial value:
= {
{ "level_in", "set input gain", OFFSET(level_in), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.015625, 64, A|F },
{ "mode", "set mode", OFFSET(mode), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, A|F, "mode" },
{ "downward",0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F, "mode" },
{ "upward", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F, "mode" },
{ "threshold", "set threshold", OFFSET(threshold), AV_OPT_TYPE_DOUBLE, {.dbl=0.125}, 0.000976563, 1, A|F },
{ "ratio", "set ratio", OFFSET(ratio), AV_OPT_TYPE_DOUBLE, {.dbl=2}, 1, 20, A|F },
{ "attack", "set attack", OFFSET(attack), AV_OPT_TYPE_DOUBLE, {.dbl=20}, 0.01, 2000, A|F },
{ "release", "set release", OFFSET(release), AV_OPT_TYPE_DOUBLE, {.dbl=250}, 0.01, 9000, A|F },
{ "makeup", "set make up gain", OFFSET(makeup), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 1, 64, A|F },
{ "knee", "set knee", OFFSET(knee), AV_OPT_TYPE_DOUBLE, {.dbl=2.82843}, 1, 8, A|F },
{ "link", "set link type", OFFSET(link), AV_OPT_TYPE_INT, {.i64=0}, 0, 1, A|F, "link" },
{ "average", 0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F, "link" },
{ "maximum", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F, "link" },
{ "detection", "set detection", OFFSET(detection), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, A|F, "detection" },
{ "peak", 0, 0, AV_OPT_TYPE_CONST, {.i64=0}, 0, 0, A|F, "detection" },
{ "rms", 0, 0, AV_OPT_TYPE_CONST, {.i64=1}, 0, 0, A|F, "detection" },
{ "level_sc", "set sidechain gain", OFFSET(level_sc), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0.015625, 64, A|F },
{ "mix", "set mix", OFFSET(mix), AV_OPT_TYPE_DOUBLE, {.dbl=1}, 0, 1, A|F },
{ NULL }
}
#define NULL
Definition: coverity.c:32
#define F
#define A
#define OFFSET(x)
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
mode
Use these values in ebur128_init (or&#39;ed).
Definition: ebur128.h:83

Definition at line 74 of file af_sidechaincompress.c.