mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
lavfi/afade: use AV_OPT_TYPE_DURATION
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
7e57adb464
commit
b63f7b3ac7
@ -612,15 +612,26 @@ volume as the input audio, at the end of the fade-out transition
|
||||
the output audio will be silence. Default is 44100.
|
||||
|
||||
@item start_time, st
|
||||
Specify time in seconds for starting to apply the fade
|
||||
effect. Default is 0.
|
||||
Specify time for starting to apply the fade effect. Default is 0.
|
||||
The accepted syntax is:
|
||||
@example
|
||||
[-]HH[:MM[:SS[.m...]]]
|
||||
[-]S+[.m...]
|
||||
@end example
|
||||
See also the function @code{av_parse_time()}.
|
||||
If set this option is used instead of @var{start_sample} one.
|
||||
|
||||
@item duration, d
|
||||
Specify the number of seconds for which the fade effect has to last. At
|
||||
the end of the fade-in effect the output audio will have the same
|
||||
Specify the duration for which the fade effect has to last. Default is 0.
|
||||
The accepted syntax is:
|
||||
@example
|
||||
[-]HH[:MM[:SS[.m...]]]
|
||||
[-]S+[.m...]
|
||||
@end example
|
||||
See also the function @code{av_parse_time()}.
|
||||
At the end of the fade-in effect the output audio will have the same
|
||||
volume as the input audio, at the end of the fade-out transition
|
||||
the output audio will be silence. Default is 0.
|
||||
the output audio will be silence.
|
||||
If set this option is used instead of @var{nb_samples} one.
|
||||
|
||||
@item curve
|
||||
|
@ -34,8 +34,8 @@ typedef struct {
|
||||
int curve;
|
||||
int nb_samples;
|
||||
int64_t start_sample;
|
||||
double duration;
|
||||
double start_time;
|
||||
int64_t duration;
|
||||
int64_t start_time;
|
||||
|
||||
void (*fade_samples)(uint8_t **dst, uint8_t * const *src,
|
||||
int nb_samples, int channels, int direction,
|
||||
@ -56,10 +56,10 @@ static const AVOption afade_options[] = {
|
||||
{ "ss", "set expression of sample to start fading", OFFSET(start_sample), AV_OPT_TYPE_INT64, {.i64 = 0 }, 0, INT64_MAX, FLAGS },
|
||||
{ "nb_samples", "set expression for fade duration in samples", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 44100}, 1, INT32_MAX, FLAGS },
|
||||
{ "ns", "set expression for fade duration in samples", OFFSET(nb_samples), AV_OPT_TYPE_INT, {.i64 = 44100}, 1, INT32_MAX, FLAGS },
|
||||
{ "start_time", "set expression of second to start fading", OFFSET(start_time), AV_OPT_TYPE_DOUBLE, {.dbl = 0. }, 0, 7*24*60*60,FLAGS },
|
||||
{ "st", "set expression of second to start fading", OFFSET(start_time), AV_OPT_TYPE_DOUBLE, {.dbl = 0. }, 0, 7*24*60*60,FLAGS },
|
||||
{ "duration", "set expression for fade duration in seconds", OFFSET(duration), AV_OPT_TYPE_DOUBLE, {.dbl = 0. }, 0, 24*60*60, FLAGS },
|
||||
{ "d", "set expression for fade duration in seconds", OFFSET(duration), AV_OPT_TYPE_DOUBLE, {.dbl = 0. }, 0, 24*60*60, FLAGS },
|
||||
{ "start_time", "set expression of time to start fading", OFFSET(start_time), AV_OPT_TYPE_DURATION, {.i64 = 0. }, 0, INT32_MAX, FLAGS },
|
||||
{ "st", "set expression of time to start fading", OFFSET(start_time), AV_OPT_TYPE_DURATION, {.i64 = 0. }, 0, INT32_MAX, FLAGS },
|
||||
{ "duration", "set expression for fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0. }, 0, INT32_MAX, FLAGS },
|
||||
{ "d", "set expression for fade duration", OFFSET(duration), AV_OPT_TYPE_DURATION, {.i64 = 0. }, 0, INT32_MAX, FLAGS },
|
||||
{ "curve", "set expression for fade curve", OFFSET(curve), AV_OPT_TYPE_INT, {.i64 = TRI }, TRI, CBR, FLAGS, "curve" },
|
||||
{ "c", "set expression for fade curve", OFFSET(curve), AV_OPT_TYPE_INT, {.i64 = TRI }, TRI, CBR, FLAGS, "curve" },
|
||||
{ "tri", "linear slope", 0, AV_OPT_TYPE_CONST, {.i64 = TRI }, 0, 0, FLAGS, "curve" },
|
||||
@ -218,9 +218,9 @@ static int config_output(AVFilterLink *outlink)
|
||||
}
|
||||
|
||||
if (afade->duration)
|
||||
afade->nb_samples = afade->duration * inlink->sample_rate;
|
||||
afade->nb_samples = afade->duration * inlink->sample_rate / AV_TIME_BASE;
|
||||
if (afade->start_time)
|
||||
afade->start_sample = afade->start_time * inlink->sample_rate;
|
||||
afade->start_sample = afade->start_time * inlink->sample_rate / AV_TIME_BASE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user