mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	pulse: delay smoother update only when unpausing, not when pausing, since we don't want the timer to advance when we are supposedly already paused
This commit is contained in:
		
							parent
							
								
									a3b5a94488
								
							
						
					
					
						commit
						f05ae357b6
					
				
					 1 changed files with 19 additions and 17 deletions
				
			
		| 
						 | 
				
			
			@ -376,22 +376,6 @@ static void check_smoother_status(pa_stream *s, pa_bool_t aposteriori, pa_bool_t
 | 
			
		|||
    if (!s->smoother)
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
    if (!s->timing_info_valid &&
 | 
			
		||||
        !aposteriori &&
 | 
			
		||||
        !force_start &&
 | 
			
		||||
        !force_stop &&
 | 
			
		||||
        s->context->version >= 13) {
 | 
			
		||||
 | 
			
		||||
        /* If the server supports STARTED and UNDERFLOW events we take
 | 
			
		||||
         * them as indications when audio really starts/stops playing,
 | 
			
		||||
         * if we don't have any timing info yet -- instead of trying
 | 
			
		||||
         * to be smart and guessing the server time. Otherwise the
 | 
			
		||||
         * unknown transport delay we don't know might add too much
 | 
			
		||||
         * noise to our time calculations. */
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    x = pa_rtclock_now();
 | 
			
		||||
 | 
			
		||||
    if (s->timing_info_valid) {
 | 
			
		||||
| 
						 | 
				
			
			@ -403,8 +387,26 @@ static void check_smoother_status(pa_stream *s, pa_bool_t aposteriori, pa_bool_t
 | 
			
		|||
 | 
			
		||||
    if (s->suspended || s->corked || force_stop)
 | 
			
		||||
        pa_smoother_pause(s->smoother, x);
 | 
			
		||||
    else if (force_start || s->buffer_attr.prebuf == 0)
 | 
			
		||||
    else if (force_start || s->buffer_attr.prebuf == 0) {
 | 
			
		||||
 | 
			
		||||
        if (!s->timing_info_valid &&
 | 
			
		||||
            !aposteriori &&
 | 
			
		||||
            !force_start &&
 | 
			
		||||
            !force_stop &&
 | 
			
		||||
            s->context->version >= 13) {
 | 
			
		||||
 | 
			
		||||
            /* If the server supports STARTED events we take them as
 | 
			
		||||
             * indications when audio really starts/stops playing, if
 | 
			
		||||
             * we don't have any timing info yet -- instead of trying
 | 
			
		||||
             * to be smart and guessing the server time. Otherwise the
 | 
			
		||||
             * unknown transport delay add too much noise to our time
 | 
			
		||||
             * calculations. */
 | 
			
		||||
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        pa_smoother_resume(s->smoother, x, TRUE);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /* Please note that we have no idea if playback actually started
 | 
			
		||||
     * if prebuf is non-zero! */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue