diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2020-11-15 15:13:21 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2020-12-21 08:38:44 +0100 |
commit | 55a5a4ea2b9060ef9488d61f48e87e50c03d929f (patch) | |
tree | 8beeb71d359bc8d977d3690e1867beb368cc3de7 /src/libjitter/jitter.c | |
parent | 118b0260bcac528cb99d1b88ce57da1dd752c71a (diff) |
Initialize jitter buffer delay with half of its size
Also add a function to reset jitter buffer
Diffstat (limited to 'src/libjitter/jitter.c')
-rw-r--r-- | src/libjitter/jitter.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/libjitter/jitter.c b/src/libjitter/jitter.c index 978e2ad..c3af715 100644 --- a/src/libjitter/jitter.c +++ b/src/libjitter/jitter.c @@ -30,16 +30,26 @@ int jitter_create(jitter_t *jitter, int length) { memset(jitter, 0, sizeof(*jitter)); - jitter->spl = calloc(length * sizeof(sample_t), 1); + jitter->spl = malloc(length * sizeof(sample_t)); if (!jitter->spl) { PDEBUG(DDSP, DEBUG_ERROR, "No memory for jitter buffer.\n"); return -ENOMEM; } jitter->len = length; + jitter_reset(jitter); + return 0; } +void jitter_reset(jitter_t *jitter) +{ + memset(jitter->spl, 0, jitter->len * sizeof(sample_t)); + + /* put write pointer ahead by half of the buffer length */ + jitter->inptr = jitter->len / 2; +} + void jitter_destroy(jitter_t *jitter) { if (jitter->spl) { |