mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 20:28:42 -05:00
Summary: Improve accuracy of capture timestamps.
The time stamps should be accurate to within about +-1ms now. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@120 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
d303b03181
commit
a288430e28
@ -391,6 +391,7 @@ int capture_callback(alsa_driver_t *alsa_driver_capture) {
|
|||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
double stime;
|
double stime;
|
||||||
int ib;
|
int ib;
|
||||||
|
snd_pcm_sframes_t delay;
|
||||||
#ifdef ALSA_CAPTURE_LOG
|
#ifdef ALSA_CAPTURE_LOG
|
||||||
printf("capture callback %d samples\n", this->period_size);
|
printf("capture callback %d samples\n", this->period_size);
|
||||||
#endif
|
#endif
|
||||||
@ -400,12 +401,16 @@ int capture_callback(alsa_driver_t *alsa_driver_capture) {
|
|||||||
snd_pcm_status(this->audio_fd, pcm_stat);
|
snd_pcm_status(this->audio_fd, pcm_stat);
|
||||||
snd_pcm_status_dump(pcm_stat, jcd_out);
|
snd_pcm_status_dump(pcm_stat, jcd_out);
|
||||||
#endif
|
#endif
|
||||||
|
snd_pcm_delay(this->audio_fd, &delay);
|
||||||
gettimeofday(&tv, NULL);
|
gettimeofday(&tv, NULL);
|
||||||
stime = (double) tv.tv_sec + ((double)tv.tv_usec / 1000000.0) +
|
stime = (double) tv.tv_sec + ((double)tv.tv_usec / 1000000.0) +
|
||||||
*(this->ndsec) * 0.1;
|
*(this->ndsec) * 0.1;
|
||||||
|
stime = stime - ((double)delay / (double)(this->output_sample_rate));
|
||||||
*(this->Tsec) = stime;
|
*(this->Tsec) = stime;
|
||||||
ib=*(this->ibuf);
|
ib=*(this->ibuf);
|
||||||
this->tbuf[ib++] = stime;
|
this->tbuf[ib] = stime;
|
||||||
|
//printf("CAP:TIME, %d, %lf, %ld, %ld, %d\n",ib, stime, delay, this->output_sample_rate, *this->ndsec);
|
||||||
|
ib++;
|
||||||
if(ib>=1024)
|
if(ib>=1024)
|
||||||
ib = 0;
|
ib = 0;
|
||||||
*(this->ibuf) = ib;
|
*(this->ibuf) = ib;
|
||||||
|
Loading…
Reference in New Issue
Block a user