Re: [Alsa-user] dshare & period_time 0
Brought to you by:
perex
From: Jaroslav K. <pe...@su...> - 2004-10-29 10:56:16
|
On Fri, 29 Oct 2004, Stuart Pook wrote: > period_time 0 # new > period_size 1024 # 2048 with M-747 (OHCI) Ok, this problem is that period_time was to set to default value and has highter priority than period_size. The patch bellow should fix the problem: Index: pcm_dmix.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dmix.c,v retrieving revision 1.56 diff -u -r1.56 pcm_dmix.c --- pcm_dmix.c 15 Sep 2004 18:44:24 -0000 1.56 +++ pcm_dmix.c 29 Oct 2004 10:54:00 -0000 @@ -1206,7 +1206,7 @@ params.format = SND_PCM_FORMAT_S16; params.rate = 48000; params.channels = 2; - params.period_time = 125000; /* 0.125 seconds */ + params.period_time = -1; params.buffer_time = -1; bsize = psize = -1; params.periods = 3; @@ -1223,6 +1223,10 @@ if (err < 0) return err; + /* set a reasonable default */ + if (psize == -1 && params.period_time == -1) + params.period_time = 125000; /* 0.125 seconds */ + /* sorry, limited features */ if (params.format != SND_PCM_FORMAT_S16 && params.format != SND_PCM_FORMAT_S32) { Index: pcm_dshare.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dshare.c,v retrieving revision 1.18 diff -u -r1.18 pcm_dshare.c --- pcm_dshare.c 22 May 2004 10:14:32 -0000 1.18 +++ pcm_dshare.c 29 Oct 2004 10:54:00 -0000 @@ -874,7 +874,7 @@ params.format = SND_PCM_FORMAT_S16; params.rate = 48000; params.channels = 2; - params.period_time = 125000; /* 0.125 seconds */ + params.period_time = -1; params.buffer_time = -1; bsize = psize = -1; params.periods = 3; @@ -890,6 +890,10 @@ if (err < 0) return err; + /* set a reasonable default */ + if (psize == -1 && params.period_time == -1) + params.period_time = 125000; /* 0.125 seconds */ + params.period_size = psize; params.buffer_size = bsize; err = snd_pcm_dshare_open(pcmp, name, ipc_key, ipc_perm, ¶ms, bindings, slowptr, root, sconf, stream, mode); Index: pcm_dsnoop.c =================================================================== RCS file: /cvsroot/alsa/alsa-lib/src/pcm/pcm_dsnoop.c,v retrieving revision 1.20 diff -u -r1.20 pcm_dsnoop.c --- pcm_dsnoop.c 22 May 2004 10:14:32 -0000 1.20 +++ pcm_dsnoop.c 29 Oct 2004 10:54:00 -0000 @@ -824,7 +824,7 @@ params.format = SND_PCM_FORMAT_S16; params.rate = 48000; params.channels = 2; - params.period_time = 125000; /* 0.125 seconds */ + params.period_time = -1; params.buffer_time = -1; bsize = psize = -1; params.periods = 3; @@ -840,6 +840,10 @@ if (err < 0) return err; + /* set a reasonable default */ + if (psize == -1 && params.period_time == -1) + params.period_time = 125000; /* 0.125 seconds */ + params.period_size = psize; params.buffer_size = bsize; err = snd_pcm_dsnoop_open(pcmp, name, ipc_key, ipc_perm, ¶ms, bindings, slowptr, root, sconf, stream, mode); Jaroslav ----- Jaroslav Kysela <pe...@su...> Linux Kernel Sound Maintainer ALSA Project, SUSE Labs |