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
							
								
									c15bd97282
								
							
						
					
					
						commit
						833bf30cb9
					
				
					 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);
 | 
					    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));
 | 
					        pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));
 | 
				
			||||||
        return 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);
 | 
					    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));
 | 
					        pa_log("Failed to set software parameters: %s", pa_alsa_strerror(err));
 | 
				
			||||||
        return err;
 | 
					        return err;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -403,7 +403,7 @@ finish:
 | 
				
			||||||
    return ret;
 | 
					    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_sw_params_t *swparams;
 | 
				
			||||||
    snd_pcm_uframes_t boundary;
 | 
					    snd_pcm_uframes_t boundary;
 | 
				
			||||||
    int err;
 | 
					    int err;
 | 
				
			||||||
| 
						 | 
					@ -417,7 +417,7 @@ int pa_alsa_set_sw_params(snd_pcm_t *pcm, snd_pcm_uframes_t avail_min) {
 | 
				
			||||||
        return err;
 | 
					        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));
 | 
					        pa_log_warn("Unable to disable period event: %s\n", pa_alsa_strerror(err));
 | 
				
			||||||
        return err;
 | 
					        return err;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,8 @@ int pa_alsa_set_hw_params(
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pa_alsa_set_sw_params(
 | 
					int pa_alsa_set_sw_params(
 | 
				
			||||||
        snd_pcm_t *pcm,
 | 
					        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 */
 | 
					/* Picks a working mapping from the profile set based on the specified ss/map */
 | 
				
			||||||
snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
					snd_pcm_t *pa_alsa_open_by_device_id_auto(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue