FFmpeg
Data Structures | Macros | Enumerations | Functions | Variables
af_adenorm.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/opt.h"
#include "audio.h"
#include "avfilter.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  ADenormContext
 
struct  ThreadData
 Used for passing data between threads. More...
 

Macros

#define OFFSET(x)   offsetof(ADenormContext, x)
 
#define FLAGS   AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_RUNTIME_PARAM
 

Enumerations

enum  FilterType {
  DC_TYPE, AC_TYPE, SQ_TYPE, PS_TYPE,
  NB_TYPES, BUTTERWORTH, CHEBYSHEV1, CHEBYSHEV2,
  NB_TYPES, biquad, equalizer, bass,
  treble, bandpass, bandreject, allpass,
  highpass, lowpass, lowshelf, highshelf,
  WEAK, STRONG, NB_FILTER, LOWPASS,
  FLAT, AFLAT, CHROMA, COLOR,
  ACOLOR, XFLAT, YFLAT, NB_FILTERS
}
 

Functions

static int query_formats (AVFilterContext *ctx)
 
static void dc_denorm_fltp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void dc_denorm_dblp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void ac_denorm_fltp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void ac_denorm_dblp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void sq_denorm_fltp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void sq_denorm_dblp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void ps_denorm_fltp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static void ps_denorm_dblp (AVFilterContext *ctx, void *dstp, const void *srcp, int nb_samples)
 
static int config_output (AVFilterLink *outlink)
 
static int filter_channels (AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
 
static int filter_frame (AVFilterLink *inlink, AVFrame *in)
 
static int process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
 
 AVFILTER_DEFINE_CLASS (adenorm)
 

Variables

static const AVFilterPad adenorm_inputs []
 
static const AVFilterPad adenorm_outputs []
 
static const AVOption adenorm_options []
 
AVFilter ff_af_adenorm
 

Macro Definition Documentation

◆ OFFSET

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

Definition at line 306 of file af_adenorm.c.

◆ FLAGS

Definition at line 307 of file af_adenorm.c.

Enumeration Type Documentation

◆ FilterType

enum FilterType
Enumerator
DC_TYPE 
AC_TYPE 
SQ_TYPE 
PS_TYPE 
NB_TYPES 
BUTTERWORTH 
CHEBYSHEV1 
CHEBYSHEV2 
NB_TYPES 
biquad 
equalizer 
bass 
treble 
bandpass 
bandreject 
allpass 
highpass 
lowpass 
lowshelf 
highshelf 
WEAK 
STRONG 
NB_FILTER 
LOWPASS 
FLAT 
AFLAT 
CHROMA 
COLOR 
ACOLOR 
XFLAT 
YFLAT 
NB_FILTERS 

Definition at line 26 of file af_adenorm.c.

Function Documentation

◆ query_formats()

static int query_formats ( AVFilterContext ctx)
static

Definition at line 46 of file af_adenorm.c.

◆ dc_denorm_fltp()

static void dc_denorm_fltp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 75 of file af_adenorm.c.

Referenced by config_output().

◆ dc_denorm_dblp()

static void dc_denorm_dblp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 88 of file af_adenorm.c.

Referenced by config_output().

◆ ac_denorm_fltp()

static void ac_denorm_fltp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 101 of file af_adenorm.c.

Referenced by config_output().

◆ ac_denorm_dblp()

static void ac_denorm_dblp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 115 of file af_adenorm.c.

Referenced by config_output().

◆ sq_denorm_fltp()

static void sq_denorm_fltp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 129 of file af_adenorm.c.

Referenced by config_output().

◆ sq_denorm_dblp()

static void sq_denorm_dblp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 143 of file af_adenorm.c.

Referenced by config_output().

◆ ps_denorm_fltp()

static void ps_denorm_fltp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 157 of file af_adenorm.c.

Referenced by config_output().

◆ ps_denorm_dblp()

static void ps_denorm_dblp ( AVFilterContext ctx,
void *  dstp,
const void *  srcp,
int  nb_samples 
)
static

Definition at line 171 of file af_adenorm.c.

Referenced by config_output().

◆ config_output()

static int config_output ( AVFilterLink outlink)
static

Definition at line 185 of file af_adenorm.c.

Referenced by process_command().

◆ filter_channels()

static int filter_channels ( AVFilterContext ctx,
void *  arg,
int  jobnr,
int  nb_jobs 
)
static

Definition at line 226 of file af_adenorm.c.

Referenced by filter_frame().

◆ filter_frame()

static int filter_frame ( AVFilterLink inlink,
AVFrame in 
)
static

Definition at line 244 of file af_adenorm.c.

◆ process_command()

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

Definition at line 275 of file af_adenorm.c.

◆ AVFILTER_DEFINE_CLASS()

AVFILTER_DEFINE_CLASS ( adenorm  )

Variable Documentation

◆ adenorm_inputs

const AVFilterPad adenorm_inputs[]
static
Initial value:
= {
{
.name = "default",
.filter_frame = filter_frame,
},
{ NULL }
}

Definition at line 288 of file af_adenorm.c.

◆ adenorm_outputs

const AVFilterPad adenorm_outputs[]
static
Initial value:
= {
{
.name = "default",
.config_props = config_output,
},
{ NULL }
}

Definition at line 297 of file af_adenorm.c.

◆ adenorm_options

const AVOption adenorm_options[]
static
Initial value:
= {
{ "level", "set level", OFFSET(level_db), AV_OPT_TYPE_DOUBLE, {.dbl=-351}, -451, -90, FLAGS },
{ "type", "set type", OFFSET(type), AV_OPT_TYPE_INT, {.i64=DC_TYPE}, 0, NB_TYPES-1, FLAGS, "type" },
{ "dc", NULL, 0, AV_OPT_TYPE_CONST, {.i64=DC_TYPE}, 0, 0, FLAGS, "type"},
{ "ac", NULL, 0, AV_OPT_TYPE_CONST, {.i64=AC_TYPE}, 0, 0, FLAGS, "type"},
{ "square",NULL, 0, AV_OPT_TYPE_CONST, {.i64=SQ_TYPE}, 0, 0, FLAGS, "type"},
{ "pulse", NULL, 0, AV_OPT_TYPE_CONST, {.i64=PS_TYPE}, 0, 0, FLAGS, "type"},
{ NULL }
}

Definition at line 309 of file af_adenorm.c.

◆ ff_af_adenorm

AVFilter ff_af_adenorm
Initial value:
= {
.name = "adenorm",
.description = NULL_IF_CONFIG_SMALL("Remedy denormals by adding extremely low-level noise."),
.query_formats = query_formats,
.priv_size = sizeof(ADenormContext),
.priv_class = &adenorm_class,
}

Definition at line 321 of file af_adenorm.c.

query_formats
static int query_formats(AVFilterContext *ctx)
Definition: af_adenorm.c:46
PS_TYPE
@ PS_TYPE
Definition: af_adenorm.c:30
process_command
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
Definition: af_adenorm.c:275
adenorm_outputs
static const AVFilterPad adenorm_outputs[]
Definition: af_adenorm.c:297
NB_TYPES
@ NB_TYPES
Definition: af_adenorm.c:31
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition: writing_filters.txt:86
config_output
static int config_output(AVFilterLink *outlink)
Definition: af_adenorm.c:185
filter_frame
static int filter_frame(AVFilterLink *inlink, AVFrame *in)
Definition: af_adenorm.c:244
OFFSET
#define OFFSET(x)
Definition: af_adenorm.c:306
FLAGS
#define FLAGS
Definition: af_adenorm.c:307
AV_OPT_TYPE_DOUBLE
@ AV_OPT_TYPE_DOUBLE
Definition: opt.h:227
AVMEDIA_TYPE_AUDIO
@ AVMEDIA_TYPE_AUDIO
Definition: avutil.h:202
outputs
static const AVFilterPad outputs[]
Definition: af_acontrast.c:203
DC_TYPE
@ DC_TYPE
Definition: af_adenorm.c:27
NULL
#define NULL
Definition: coverity.c:32
inputs
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several inputs
Definition: filter_design.txt:243
adenorm_inputs
static const AVFilterPad adenorm_inputs[]
Definition: af_adenorm.c:288
ADenormContext
Definition: af_adenorm.c:34
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:117
AC_TYPE
@ AC_TYPE
Definition: af_adenorm.c:28
AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
#define AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC
Some filters support a generic "enable" expression option that can be used to enable or disable a fil...
Definition: avfilter.h:126
AV_OPT_TYPE_INT
@ AV_OPT_TYPE_INT
Definition: opt.h:225
SQ_TYPE
@ SQ_TYPE
Definition: af_adenorm.c:29
AVFILTER_FLAG_SLICE_THREADS
#define AVFILTER_FLAG_SLICE_THREADS
The filter supports multithreading by splitting frames into multiple parts and processing them concur...
Definition: avfilter.h:117
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:561
AV_OPT_TYPE_CONST
@ AV_OPT_TYPE_CONST
Definition: opt.h:234