Module Name: src Committed By: skrll Date: Tue Jul 28 21:24:43 UTC 2015
Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: Reduce latency a bit. From nat@ To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.9 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.10 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.9 Sun Mar 15 18:31:29 2015 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Tue Jul 28 21:24:43 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.9 2015/03/15 18:31:29 jmcneill Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.10 2015/07/28 21:24:43 skrll Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill <jmcne...@invisible.ca> @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.9 2015/03/15 18:31:29 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.10 2015/07/28 21:24:43 skrll Exp $"); #include <sys/param.h> #include <sys/types.h> @@ -81,20 +81,22 @@ enum vcaudio_dest { VCAUDIO_DEST_HDMI = 2, }; - /* - * Standard message size is 4000 bytes and VCHIQ can accept 16 messages. + * Maximum message size is 4000 bytes and VCHIQ can accept 16 messages. * * 4000 bytes of 16bit 48kHz stereo is approximately 21ms. * * We get complete messages at ~10ms intervals. * - * Setting blocksize to 2 x 4000 means that we send approx 42ms of audio. We - * prefill by two blocks before starting audio meaning we have 83ms of latency. + * Setting blocksize to 4 x 1600 means that we send approx 33ms of audio. We + * prefill by two blocks before starting audio meaning we have 50ms of latency. + * + * Six messages of 1600 bytes was chosen working back from a desired latency of + * 50ms. */ -#define VCAUDIO_MSGSIZE 4000 -#define VCAUDIO_NUMMSGS 2 +#define VCAUDIO_MSGSIZE 1600 +#define VCAUDIO_NUMMSGS 4 #define VCAUDIO_BLOCKSIZE (VCAUDIO_MSGSIZE * VCAUDIO_NUMMSGS) #define VCAUDIO_BUFFERSIZE 128000 #define VCAUDIO_PREFILLCOUNT 2