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 <[email protected]>
@@ -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