diff --git a/alsa_in.c b/alsa_in.c index 8dd13c6..051fc6e 100644 --- a/alsa_in.c +++ b/alsa_in.c @@ -345,7 +345,7 @@ int process (jack_nframes_t nframes, void *arg) { delay = snd_pcm_avail( alsa_handle ); - delay -= jack_frames_since_cycle_start( client ); + delay -= round( jack_frames_since_cycle_start( client ) / static_resample_factor ); // Do it the hard way. // this is for compensating xruns etc... @@ -502,7 +502,7 @@ latency_cb (jack_latency_callback_mode_t mode, void *arg) jack_latency_range_t range; JSList *node; - range.min = range.max = target_delay; + range.min = range.max = round(target_delay * static_resample_factor); if (mode == JackCaptureLatency) { for (node = capture_ports; node; node = jack_slist_next (node)) { diff --git a/alsa_out.c b/alsa_out.c index 47779d1..b29c1f0 100644 --- a/alsa_out.c +++ b/alsa_out.c @@ -324,7 +324,7 @@ int process (jack_nframes_t nframes, void *arg) { delay = (num_periods*period_size)-snd_pcm_avail( alsa_handle ) ; - delay -= jack_frames_since_cycle_start( client ); + delay -= round( jack_frames_since_cycle_start( client ) * static_resample_factor ); // Do it the hard way. // this is for compensating xruns etc... @@ -480,7 +480,7 @@ latency_cb (jack_latency_callback_mode_t mode, void *arg) jack_latency_range_t range; JSList *node; - range.min = range.max = target_delay; + range.min = range.max = round(target_delay / static_resample_factor); if (mode == JackCaptureLatency) { for (node = capture_ports; node; node = jack_slist_next (node)) {