Go to the source code of this file.
|
| AVFILTER_DEFINE_CLASS (adelay) |
|
static int | parse_delays (char *p, char **saveptr, int64_t *result, AVFilterContext *ctx, int sample_rate) |
|
static int | config_input (AVFilterLink *inlink) |
|
static int | process_command (AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags) |
|
static int | filter_frame (AVFilterLink *inlink, AVFrame *frame) |
|
static int | activate (AVFilterContext *ctx) |
|
static av_cold void | uninit (AVFilterContext *ctx) |
|
◆ OFFSET
◆ DELAY
Value:static void delay_channel_##
name ##p(
ChanDelay *d,
int nb_samples, \
const uint8_t *ssrc, uint8_t *ddst) \
{ \
\
while (nb_samples) { \
if (d->delay_index < d->delay) { \
const
int len =
FFMIN(nb_samples, d->delay - d->delay_index); \
\
} else { \
samples[d->index] = *
src; \
nb_samples--; \
d->index++; \
d->index = d->index >= d->delay ? 0 : d->index; \
} \
} \
}
Definition at line 68 of file af_adelay.c.
◆ CHANGE_DELAY
#define CHANGE_DELAY |
( |
|
name, |
|
|
|
type, |
|
|
|
fill |
|
) |
| |
◆ AVFILTER_DEFINE_CLASS()
AVFILTER_DEFINE_CLASS |
( |
adelay |
| ) |
|
◆ parse_delays()
static int parse_delays |
( |
char * |
p, |
|
|
char ** |
saveptr, |
|
|
int64_t * |
result, |
|
|
AVFilterContext * |
ctx, |
|
|
int |
sample_rate |
|
) |
| |
|
static |
◆ config_input()
◆ process_command()
static int process_command |
( |
AVFilterContext * |
ctx, |
|
|
const char * |
cmd, |
|
|
const char * |
args, |
|
|
char * |
res, |
|
|
int |
res_len, |
|
|
int |
flags |
|
) |
| |
|
static |
◆ filter_frame()
◆ activate()
◆ uninit()
◆ adelay_options
◆ adelay_inputs
Initial value:= {
{
.name = "default",
},
}
Definition at line 460 of file af_adelay.c.
◆ ff_af_adelay
Initial value:= {
.name = "adelay",
.priv_class = &adelay_class,
}
Definition at line 468 of file af_adelay.c.
@ AV_SAMPLE_FMT_FLTP
float, planar
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 default minimum maximum flags name is the option name
#define FILTER_INPUTS(array)
@ AV_SAMPLE_FMT_S32P
signed 32 bits, planar
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
static int activate(AVFilterContext *ctx)
static int config_input(AVFilterLink *inlink)
#define FILTER_SAMPLEFMTS(...)
#define FILTER_OUTPUTS(array)
const AVFilterPad ff_audio_default_filterpad[1]
An AVFilterPad array whose only entry has name "default" and is of type AVMEDIA_TYPE_AUDIO.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
@ AV_SAMPLE_FMT_U8P
unsigned 8 bits, planar
uint8_t ptrdiff_t const uint8_t ptrdiff_t int intptr_t intptr_t int int16_t * dst
@ AV_SAMPLE_FMT_S16P
signed 16 bits, planar
static const AVFilterPad adelay_inputs[]
#define AV_OPT_FLAG_RUNTIME_PARAM
A generic parameter which can be set by the user at runtime.
static int process_command(AVFilterContext *ctx, const char *cmd, const char *args, char *res, int res_len, int flags)
@ AV_SAMPLE_FMT_DBLP
double, planar
Filter the word “frame” indicates either a video frame or a group of audio samples
@ AV_OPT_TYPE_BOOL
Underlying C type is int.
static av_cold void uninit(AVFilterContext *ctx)
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() c...
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...