aboutsummaryrefslogtreecommitdiffstats
path: root/src/libjitter/jitter.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2020-11-15 15:13:21 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2020-12-21 08:38:44 +0100
commit55a5a4ea2b9060ef9488d61f48e87e50c03d929f (patch)
tree8beeb71d359bc8d977d3690e1867beb368cc3de7 /src/libjitter/jitter.c
parent118b0260bcac528cb99d1b88ce57da1dd752c71a (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.c12
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) {