summaryrefslogtreecommitdiff
path: root/libavfilter/af_adelay.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavfilter/af_adelay.c')
-rw-r--r--libavfilter/af_adelay.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c
index 09bf3c7732..187cacf28a 100644
--- a/libavfilter/af_adelay.c
+++ b/libavfilter/af_adelay.c
@@ -138,14 +138,20 @@ static int config_input(AVFilterLink *inlink)
for (i = 0; i < s->nb_delays; i++) {
ChanDelay *d = &s->chandelay[i];
float delay;
+ char type = 0;
+ int ret;
if (!(arg = av_strtok(p, "|", &saveptr)))
break;
p = NULL;
- sscanf(arg, "%f", &delay);
- d->delay = delay * inlink->sample_rate / 1000.0;
+ ret = sscanf(arg, "%d%c", &d->delay, &type);
+ if (ret != 2 || type != 'S') {
+ sscanf(arg, "%f", &delay);
+ d->delay = delay * inlink->sample_rate / 1000.0;
+ }
+
if (d->delay < 0) {
av_log(ctx, AV_LOG_ERROR, "Delay must be non negative number.\n");
return AVERROR(EINVAL);