mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	alsa: disable period event only with tsched=1
This commit is contained in:
		
							parent
							
								
									7b682c9690
								
							
						
					
					
						commit
						c96d2d1117
					
				
					 4 changed files with 6 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -927,7 +927,7 @@ static int update_sw_params(struct userdata *u) {
 | 
			
		|||
 | 
			
		||||
    pa_log_debug("setting avail_min=%lu", (unsigned long) avail_min);
 | 
			
		||||
 | 
			
		||||
    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min)) < 0) {
 | 
			
		||||
    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min, !u->use_tsched)) < 0) {
 | 
			
		||||
        pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));
 | 
			
		||||
        return err;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -877,7 +877,7 @@ static int update_sw_params(struct userdata *u) {
 | 
			
		|||
 | 
			
		||||
    pa_log_debug("setting avail_min=%lu", (unsigned long) avail_min);
 | 
			
		||||
 | 
			
		||||
    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min)) < 0) {
 | 
			
		||||
    if ((err = pa_alsa_set_sw_params(u->pcm_handle, avail_min, !u->use_tsched)) < 0) {
 | 
			
		||||
        pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));
 | 
			
		||||
        return err;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -403,7 +403,7 @@ finish:
 | 
			
		|||
    return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) {
 | 
			
		||||
int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min, pa_bool_t period_event) {
 | 
			
		||||
    snd_pcm_sw_params_t *swparams;
 | 
			
		||||
    snd_pcm_uframes_t boundary;
 | 
			
		||||
    int err;
 | 
			
		||||
| 
						 | 
				
			
			@ -417,7 +417,7 @@ int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) {
 | 
			
		|||
        return err;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((err = snd_pcm_sw_params_set_period_event(pcm, swparams, 0)) < 0) {
 | 
			
		||||
    if ((err = snd_pcm_sw_params_set_period_event(pcm, swparams, period_event)) < 0) {
 | 
			
		||||
        pa_log_warn("Unable to disable period event: %s\n", pa_alsa_strerror(err));
 | 
			
		||||
        return err;
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,8 @@ int pa_alsa_set_hw_params(
 | 
			
		|||
 | 
			
		||||
int pa_alsa_set_sw_params(
 | 
			
		||||
        snd_pcm_t *pcm,
 | 
			
		||||
        snd_pcm_uframes_t avail_min);
 | 
			
		||||
        snd_pcm_uframes_t avail_min,
 | 
			
		||||
        pa_bool_t period_event);
 | 
			
		||||
 | 
			
		||||
/* Picks a working mapping from the profile set based on the specified ss/map */
 | 
			
		||||
snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue