diff options
author | Lennart Poettering <lennart@poettering.net> | 2008-10-04 02:13:39 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2008-10-04 02:13:39 +0200 |
commit | a9c1bb3e85b1a9776e9291ea24ef1847dc991e2a (patch) | |
tree | 92d9da91671cf2acd062b5e1333a349915f132ee /src | |
parent | 83b1d7a305dfdf0a6958ba28a84cd1a074ca7aff (diff) |
substract the unused record buffer size from the overall size before calculating the space still left for recording
Diffstat (limited to 'src')
-rw-r--r-- | src/modules/module-alsa-sink.c | 2 | ||||
-rw-r--r-- | src/modules/module-alsa-source.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/modules/module-alsa-sink.c b/src/modules/module-alsa-sink.c index c42da36f..0e15da3c 100644 --- a/src/modules/module-alsa-sink.c +++ b/src/modules/module-alsa-sink.c @@ -569,7 +569,7 @@ static int update_sw_params(struct userdata *u) { if ((latency = pa_sink_get_requested_latency_within_thread(u->sink)) != (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->sink->sample_spec); 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); |