From patchwork Tue Jan 4 00:48:55 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: noaudio: correctly account acquired samples Date: Mon, 03 Jan 2011 14:48:55 -0000 From: Michael Walle X-Patchwork-Id: 77359 Message-Id: <1294102135-14034-1-git-send-email-michael@walle.cc> To: qemu-devel@nongnu.org Cc: Michael Walle This will fix the return value of the function which otherwise returns too many samples because sw->total_hw_samples_acquired isn't correctly accounted. Signed-off-by: Michael Walle --- audio/noaudio.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/audio/noaudio.c b/audio/noaudio.c index 8015858..0304094 100644 --- a/audio/noaudio.c +++ b/audio/noaudio.c @@ -117,9 +117,12 @@ static int no_run_in (HWVoiceIn *hw) static int no_read (SWVoiceIn *sw, void *buf, int size) { + /* use custom code here instead of audio_pcm_sw_read() to avoid + * useless resampling/mixing */ int samples = size >> sw->info.shift; int total = sw->hw->total_samples_captured - sw->total_hw_samples_acquired; int to_clear = audio_MIN (samples, total); + sw->total_hw_samples_acquired += total; audio_pcm_info_clear_buf (&sw->info, buf, to_clear); return to_clear << sw->info.shift; }