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)
 | 
					    if (!s->smoother)
 | 
				
			||||||
        return;
 | 
					        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();
 | 
					    x = pa_rtclock_now();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->timing_info_valid) {
 | 
					    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)
 | 
					    if (s->suspended || s->corked || force_stop)
 | 
				
			||||||
        pa_smoother_pause(s->smoother, x);
 | 
					        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);
 | 
					        pa_smoother_resume(s->smoother, x, TRUE);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Please note that we have no idea if playback actually started
 | 
					    /* Please note that we have no idea if playback actually started
 | 
				
			||||||
     * if prebuf is non-zero! */
 | 
					     * if prebuf is non-zero! */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue