From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50270) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gMDwO-0002s3-HU for qemu-devel@nongnu.org; Mon, 12 Nov 2018 10:15:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gMDwN-0001TN-77 for qemu-devel@nongnu.org; Mon, 12 Nov 2018 10:15:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:53072) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gMDwM-0001Rb-QN for qemu-devel@nongnu.org; Mon, 12 Nov 2018 10:15:51 -0500 From: Gerd Hoffmann Date: Mon, 12 Nov 2018 16:15:15 +0100 Message-Id: <20181112151516.10012-4-kraxel@redhat.com> In-Reply-To: <20181112151516.10012-1-kraxel@redhat.com> References: <20181112151516.10012-1-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PULL 3/4] pulseaudio: process audio data in smaller chunks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: libvir-list@redhat.com, Paolo Bonzini , Gerd Hoffmann , Max Ehrlich , Martin Schrodt The rate of pulseaudio absorbing the audio stream is used to control the the rate of the guests audio stream. When the emulated hardware uses small chunks (like intel-hda does) we need small chunks on the audio backend side too, otherwise that feedback loop doesn't work very well. Cc: Max Ehrlich Cc: Martin Schrodt Buglink: https://bugs.launchpad.net/bugs/1795527 Signed-off-by: Gerd Hoffmann Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-id: 20181109142032.1628-1-kraxel@redhat.com --- audio/paaudio.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/audio/paaudio.c b/audio/paaudio.c index 949769774d..4c100bc318 100644 --- a/audio/paaudio.c +++ b/audio/paaudio.c @@ -227,7 +227,7 @@ static void *qpa_thread_out (void *arg) } } =20 - decr =3D to_mix =3D audio_MIN (pa->live, pa->g->conf.samples >> = 2); + decr =3D to_mix =3D audio_MIN(pa->live, pa->g->conf.samples >> 5= ); rpos =3D pa->rpos; =20 if (audio_pt_unlock(&pa->pt, __func__)) { @@ -319,7 +319,7 @@ static void *qpa_thread_in (void *arg) } } =20 - incr =3D to_grab =3D audio_MIN (pa->dead, pa->g->conf.samples >>= 2); + incr =3D to_grab =3D audio_MIN(pa->dead, pa->g->conf.samples >> = 5); wpos =3D pa->wpos; =20 if (audio_pt_unlock(&pa->pt, __func__)) { --=20 2.9.3