aboutsummaryrefslogtreecommitdiffstats
path: root/src/libjitter/jitter.c
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2024-03-15 16:30:04 +0100
committerAndreas Eversberg <jolly@eversberg.eu>2024-03-30 23:28:13 +0100
commitb613123291dc0eb667956bce5fc3f1d826ce2c1e (patch)
tree8007ae047b38b991cc875c51b27ebacff4c2f119 /src/libjitter/jitter.c
parentce58b765f5403f95fe23c23894102b6c7bdfa67d (diff)
Open sound device for capture or playback only, if full duplex is not required
Diffstat (limited to 'src/libjitter/jitter.c')
-rw-r--r--src/libjitter/jitter.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/libjitter/jitter.c b/src/libjitter/jitter.c
index 6e510d5..1a7b619 100644
--- a/src/libjitter/jitter.c
+++ b/src/libjitter/jitter.c
@@ -282,7 +282,7 @@ void jitter_save(jitter_t *jb, jitter_frame_t *jf)
offset_timestamp = jf->timestamp - jb->window_timestamp;
#ifdef HEAVY_DEBUG
- LOGP(DJITTER, LOGL_DEBUG, "%sFrame has offset of %.0fms in jitter buffer.\n", jb->name, (double)offset_timestamp * jb->sample_duration * 1000.0);
+ LOGP(DJITTER, LOGL_DEBUG, "%s Frame has offset of %.0fms in jitter buffer.\n", jb->name, (double)offset_timestamp * jb->sample_duration * 1000.0);
#endif
/* measure delay */
@@ -348,7 +348,7 @@ int32_t jitter_offset(jitter_t *jb)
jb->unlocked = true;
/* get timestamp of chunk that is not in the past */
- while ((jf = jb->frame_list)) {
+ for (jf = jb->frame_list; jf; jf = jf->next) {
offset_timestamp = jf->timestamp - jb->window_timestamp;
if (offset_timestamp >= 0)
break;
@@ -446,6 +446,9 @@ copy_chunk:
tocopy = jb->spl_len - jb->spl_pos;
if (tocopy > len)
tocopy = len;
+#ifdef HEAVY_DEBUG
+ LOGP(DJITTER, LOGL_DEBUG, "%s loading %d samples: from valid sample buffer.\n", jb->name, tocopy);
+#endif
/* advance jitter buffer */
jitter_advance(jb, tocopy);
memcpy(spl, jb->spl_buf + jb->spl_pos * sample_size, tocopy * sample_size);
@@ -469,6 +472,9 @@ copy_chunk:
/* only process as much samples as need */
if (offset > len)
offset = len;
+#ifdef HEAVY_DEBUG
+ LOGP(DJITTER, LOGL_DEBUG, "%s concealing %d samples: from invalid sample buffer.\n", jb->name, offset);
+#endif
/* advance jitter buffer */
jitter_advance(jb, offset);
/* if there is no buffer, allocate 20ms, filled with 0 */
@@ -501,6 +507,9 @@ copy_chunk:
jitter_reset(jb);
return;
}
+#ifdef HEAVY_DEBUG
+ LOGP(DJITTER, LOGL_DEBUG, "%s loading new frame to sample buffer.\n", jb->name);
+#endif
/* get data from frame */
jitter_frame_get(jf, &decoder, &decoder_priv, &payload, &payload_len, NULL, NULL, NULL, NULL);
/* free previous buffer */