alsa: fix timefilter usage.
The period argument is supposed to be the number of samples since the last update.
This commit is contained in:
		
							parent
							
								
									9bbe6ed1e0
								
							
						
					
					
						commit
						456d65a5c6
					
				| @ -123,7 +123,8 @@ static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt) | ||||
|     dts = av_gettime(); | ||||
|     snd_pcm_delay(s->h, &delay); | ||||
|     dts -= av_rescale(delay + res, 1000000, s->sample_rate); | ||||
|     pkt->pts = ff_timefilter_update(s->timefilter, dts, res); | ||||
|     pkt->pts = ff_timefilter_update(s->timefilter, dts, s->last_period); | ||||
|     s->last_period = res; | ||||
| 
 | ||||
|     pkt->size = res * s->frame_size; | ||||
| 
 | ||||
|  | ||||
| @ -52,6 +52,7 @@ typedef struct { | ||||
|     int period_size; ///< preferred size for reads and writes, in frames
 | ||||
|     int sample_rate; ///< sample rate set by user
 | ||||
|     int channels;    ///< number of channels set by user
 | ||||
|     int last_period; | ||||
|     TimeFilter *timefilter; | ||||
|     void (*reorder_func)(const void *, void *, int); | ||||
|     void *reorder_buf; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user