summaryrefslogtreecommitdiffstats
path: root/src/modules/module-alsa-source.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2008-10-04 02:13:39 +0200
committerLennart Poettering <lennart@poettering.net>2008-10-04 02:13:39 +0200
commita9c1bb3e85b1a9776e9291ea24ef1847dc991e2a (patch)
tree92d9da91671cf2acd062b5e1333a349915f132ee /src/modules/module-alsa-source.c
parent83b1d7a305dfdf0a6958ba28a84cd1a074ca7aff (diff)
substract the unused record buffer size from the overall size before calculating the space still left for recording
Diffstat (limited to 'src/modules/module-alsa-source.c')
-rw-r--r--src/modules/module-alsa-source.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/modules/module-alsa-source.c b/src/modules/module-alsa-source.c
index e1fe4d68..2827ecfe 100644
--- a/src/modules/module-alsa-source.c
+++ b/src/modules/module-alsa-source.c
@@ -211,9 +211,10 @@ static int try_recover(struct userdata *u, const char *call, int err) {
static size_t check_left_to_record(struct userdata *u, snd_pcm_sframes_t n) {
size_t left_to_record;
+ size_t rec_space = u->hwbuf_size - (size_t) u->hwbuf_unused_frames*u->frame_size;
- if ((size_t) n*u->frame_size < u->hwbuf_size)
- left_to_record = u->hwbuf_size - ((size_t) n*u->frame_size);
+ if ((size_t) n*u->frame_size < rec_space)
+ left_to_record = rec_space - ((size_t) n*u->frame_size);
else
left_to_record = 0;
@@ -514,7 +515,7 @@ static int update_sw_params(struct userdata *u) {
if ((latency = pa_source_get_requested_latency_within_thread(u->source)) != (pa_usec_t) -1) {
size_t b;
- pa_log_debug("latency set to %0.2f", (double) latency / PA_USEC_PER_MSEC);
+ pa_log_debug("latency set to %0.2fms", (double) latency / PA_USEC_PER_MSEC);
b = pa_usec_to_bytes(latency, &u->source->sample_spec);