|  | @@ -434,7 +434,7 @@ static void buffer_put_packet(rtp_t *ctx, seq_t seqno, unsigned rtptime, bool fi
 | 
	
		
			
				|  |  |  			ctx->flush_seqno = -1;
 | 
	
		
			
				|  |  |  			ctx->playing = true;
 | 
	
		
			
				|  |  |  			ctx->resent_req = ctx->resent_rec = ctx->silent_frames = ctx->discarded = 0;
 | 
	
		
			
				|  |  | -			playtime = ctx->synchro.time + (((s32_t)(rtptime - ctx->synchro.rtp)) * 1000) / RAOP_SAMPLE_RATE;
 | 
	
		
			
				|  |  | +			playtime = ctx->synchro.time + ((rtptime - ctx->synchro.rtp) * 10) / (RAOP_SAMPLE_RATE / 100);
 | 
	
		
			
				|  |  |  			ctx->cmd_cb(RAOP_PLAY, playtime);
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  |  			pthread_mutex_unlock(&ctx->ab_mutex);
 | 
	
	
		
			
				|  | @@ -517,7 +517,7 @@ static void buffer_push_packet(rtp_t *ctx) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// try to manage playtime so that we overflow as late as possible if we miss NTP (2^31 / 10 / 44100)
 | 
	
		
			
				|  |  |  		curframe = ctx->audio_buffer + BUFIDX(ctx->ab_read);
 | 
	
		
			
				|  |  | -		playtime = ctx->synchro.time + (((s32_t)(curframe->rtptime - ctx->synchro.rtp)) * 10) / (RAOP_SAMPLE_RATE / 100);
 | 
	
		
			
				|  |  | +		playtime = ctx->synchro.time + ((curframe->rtptime - ctx->synchro.rtp) * 10) / (RAOP_SAMPLE_RATE / 100);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		if (now > playtime) {
 | 
	
		
			
				|  |  |  			LOG_DEBUG("[%p]: discarded frame now:%u missed by:%d (W:%hu R:%hu)", ctx, now, now - playtime, ctx->ab_write, ctx->ab_read);
 |