summaryrefslogtreecommitdiffstats
path: root/libaf/af_scaletempo.c
diff options
context:
space:
mode:
Diffstat (limited to 'libaf/af_scaletempo.c')
-rw-r--r--libaf/af_scaletempo.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libaf/af_scaletempo.c b/libaf/af_scaletempo.c
index 4ea25bf9e3..7b951860d4 100644
--- a/libaf/af_scaletempo.c
+++ b/libaf/af_scaletempo.c
@@ -34,6 +34,7 @@
#include <stdlib.h>
#include <string.h>
#include <limits.h>
+#include <assert.h>
#include "af.h"
#include "libavutil/common.h"
@@ -104,6 +105,7 @@ static int fill_queue(struct af_instance_s* af, af_data_t* data, int offset)
if (bytes_in > 0) {
int bytes_copy = FFMIN(s->bytes_queue - s->bytes_queued, bytes_in);
+ assert(bytes_copy >= 0);
memcpy(s->buf_queue + s->bytes_queued,
(int8_t*)data->audio + offset,
bytes_copy);
@@ -331,6 +333,7 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
s->bytes_standing = s->bytes_stride;
s->samples_standing = s->bytes_standing / bps;
s->output_overlap = NULL;
+ s->bytes_overlap = 0;
} else {
s->samples_overlap = frames_overlap * nch;
s->bytes_overlap = frames_overlap * nch * bps;
@@ -419,6 +422,9 @@ static int control(struct af_instance_s* af, int cmd, void* arg)
return AF_ERROR;
}
+ s->bytes_queued = 0;
+ s->bytes_to_slide = 0;
+
mp_msg (MSGT_AFILTER, MSGL_DBG2, "[scaletempo] "
"%.2f stride_in, %i stride_out, %i standing, "
"%i overlap, %i search, %i queue, %s mode\n",