Re: SALSA-Lib: Playback overrun on initial PCM start

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 29 Jun 2007 19:15:00 +0200
Takashi Iwai <tiwai@xxxxxxx> wrote:

> At Fri, 29 Jun 2007 12:26:45 -0400,
> J. Scott Merritt wrote:
> > 
> > I no longer get the PlayBack overrun on PCM start.  However, it appears
> > that "poll" or the snd_pcm_sw_params_set_avail_min (=4096) is not being
> > properly honored.  With the normal alsa-lib, when the "poll" returns
> > snd_pcm_avail_update reports that space is available for 4096 frames.
> > However, in my initial testing, when running with SALSA lib, only about
> > 100 frames or so are available when the poll returns.
> > 
> > I will examine this more closely.
> 
> Found out another bug.  Try the patch below.
> 
> Thanks for reporting!
> 
> 
> Takashi
> 
> diff -r ad2c81608e10 src/pcm.c
> --- a/src/pcm.c	Fri Jun 29 17:59:52 2007 +0200
> +++ b/src/pcm.c	Fri Jun 29 19:12:04 2007 +0200
> @@ -857,6 +857,7 @@ static int snd_pcm_hw_mmap_status(snd_pc
>  		pcm->mmap_status = NULL;
>  		goto no_mmap;
>  	}
> +	pcm->mmap_control->avail_min = 1;
>  	return 0;
>  
>   no_mmap:
> @@ -865,6 +866,7 @@ static int snd_pcm_hw_mmap_status(snd_pc
>  		return -ENOMEM;
>  	pcm->mmap_status = &pcm->sync_ptr->s.status;
>  	pcm->mmap_control = &pcm->sync_ptr->c.control;
> +	pcm->mmap_control->avail_min = 1;
>  	_snd_pcm_sync_ptr(pcm, 0);
>  	return 0;
>  }
> diff -r ad2c81608e10 src/pcm_params.c
> --- a/src/pcm_params.c	Fri Jun 29 17:59:52 2007 +0200
> +++ b/src/pcm_params.c	Fri Jun 29 19:12:04 2007 +0200
> @@ -1052,6 +1052,7 @@ int snd_pcm_sw_params(snd_pcm_t *pcm, sn
>  	if (ioctl(pcm->fd, SNDRV_PCM_IOCTL_SW_PARAMS, params) < 0)
>  		return -errno;
>  	pcm->sw_params = *params;
> +	pcm->mmap_control->avail_min = params->avail_min;
>  	return 0;
>  }

That did the trick :)

Many thanks for the extremely quick and accurate assistance !

Best regards, Scott.







_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux