Go to the source code of this file.
◆ OFFSET
◆ DELAY
Value:static void delay_channel_##
name ##p(
ChanDelay *d,
int nb_samples, \
{ \
type *dst = (
type *)ddst; \
type *samples = (
type *)d->samples; \
\
while (nb_samples) { \
if (d->delay_index < d->delay) { \
const
int len =
FFMIN(nb_samples, d->delay - d->delay_index); \
\
memcpy(&samples[d->delay_index], src, len *
sizeof(
type)); \
memset(dst, fill, len *
sizeof(
type)); \
} else { \
*dst = samples[d->index]; \
samples[d->index] = *
src; \
nb_samples--; \
d->index++; \
src++, dst++; \
d->index = d->index >= d->delay ? 0 : d->index; \
} \
} \
}
Definition at line 89 of file af_adelay.c.
◆ AVFILTER_DEFINE_CLASS()
AVFILTER_DEFINE_CLASS |
( |
adelay |
| ) |
|
◆ query_formats()
◆ config_input()
◆ filter_frame()
◆ request_frame()
◆ uninit()
◆ adelay_options
◆ adelay_inputs
Initial value:= {
{
.name = "default",
},
}
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
static int config_input(AVFilterLink *inlink)
Definition at line 259 of file af_adelay.c.
◆ adelay_outputs
Initial value:= {
{
.name = "default",
},
}
static int request_frame(AVFilterLink *outlink)
Definition at line 269 of file af_adelay.c.
◆ ff_af_adelay
Initial value:= {
.name = "adelay",
.priv_class = &adelay_class,
}
static av_cold void uninit(AVFilterContext *ctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static int query_formats(AVFilterContext *ctx)
static const AVFilterPad inputs[]
static const AVFilterPad outputs[]
#define AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL
Same as AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, except that the filter will have its filter_frame() c...
static const AVFilterPad adelay_inputs[]
static const AVFilterPad adelay_outputs[]
Definition at line 278 of file af_adelay.c.