From owner-freebsd-multimedia@FreeBSD.ORG Thu Jul 27 07:49:23 2006 Return-Path: X-Original-To: freebsd-multimedia@freebsd.org Delivered-To: freebsd-multimedia@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7A91416A4DF for ; Thu, 27 Jul 2006 07:49:23 +0000 (UTC) (envelope-from Yuriy.Tsibizov@gfk.ru) Received: from mx.gfk.ru (mx.gfk.ru [84.21.231.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1D23043D62 for ; Thu, 27 Jul 2006 07:49:19 +0000 (GMT) (envelope-from Yuriy.Tsibizov@gfk.ru) Received: from demon.hhp.local by mx.gfk.ru (MDaemon PRO v9.0.5) with ESMTP id md50000366236.msg for ; Thu, 27 Jul 2006 11:48:46 +0400 X-MimeOLE: Produced By Microsoft Exchange V6.0.6603.0 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Date: Thu, 27 Jul 2006 11:48:39 +0400 Message-ID: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: snd_emu10kx sound lag workaround Thread-Index: AcaxURKh3LFGQFqqSM6xzysDmrZj7g== From: "Yuriy Tsibizov" To: X-Spam-Processed: mx.gfk.ru, Thu, 27 Jul 2006 11:48:46 +0400 (not processed: message from valid local sender) X-MDRemoteIP: 10.0.0.8 X-Return-Path: Yuriy.Tsibizov@gfk.ru X-Envelope-From: Yuriy.Tsibizov@gfk.ru X-MDaemon-Deliver-To: freebsd-multimedia@freebsd.org X-MDAV-Processed: mx.gfk.ru, Thu, 27 Jul 2006 11:48:46 +0400 Subject: snd_emu10kx sound lag workaround X-BeenThere: freebsd-multimedia@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Multimedia discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jul 2006 07:49:23 -0000 snd_emu10kx has a problem playing small sound files (it is silent) and has some sound lag (on large files) with it's default buffer size of EMUPAGESIZE*4 (=3D16K). Workaround is to use smaller DMA buffer size (with buffer size =3D EMUPAGESIZE (=3D4K)) as it was in snd_emu10k1 driver. Hardware can use a buffer up to EMUPAGESIZE*8192 (=3D32M), if you use only one stereo channel. Default DMA buffer size is defined in sys/dev/sound/pci/emu10kx.h: #define EMU_DEFAULT_BUFSZ EMUPAGESIZE*4 It seems that driver plays data ahead of sound buffer updates, - with small files hardware never returns to start of buffer, with no sound at all. - with large files it has a lag (length depends on sample rate) and content of last update of hardware buffer is not played all. I'll try to fix it or ask to commit a workaround next week. Yuriy.