Fixes Bugzilla #279
---
configure | 3 ++-
libavdevice/jack_audio.c | 6 ++++++
2 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/configure b/configure
index fbb71b6..20643e0 100755
--- a/configure
+++ b/configure
@@ -1087,6 +1087,7 @@ HAVE_LIST="
inet_aton
inline_asm
isatty
+ jack_new_latency_api
ldbrx
libdc1394_1
libdc1394_2
@@ -2982,7 +2983,7 @@ check_header soundcard.h
enabled_any alsa_indev alsa_outdev && check_lib2 alsa/asoundlib.h
snd_pcm_htimestamp -lasound
-enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack
+enabled jack_indev && check_lib2 jack/jack.h jack_client_open -ljack &&
check_func jack_port_get_latency_range && enable jack_new_latency_api
enabled_any sndio_indev sndio_outdev && check_lib2 sndio.h sio_open -lsndio
diff --git a/libavdevice/jack_audio.c b/libavdevice/jack_audio.c
index 9f1bb23..2800d8b 100644
--- a/libavdevice/jack_audio.c
+++ b/libavdevice/jack_audio.c
@@ -91,7 +91,13 @@ static int process_callback(jack_nframes_t nframes, void
*arg)
/* Copy and interleave audio data from the JACK buffer into the packet */
for (i = 0; i < self->nports; i++) {
+ #if HAVE_JACK_NEW_LATENCY_API
+ jack_latency_range_t range;
+ jack_port_get_latency_range(self->ports[i], JackCaptureLatency,
&range);
+ latency += range.max;
+ #else
latency += jack_port_get_total_latency(self->client, self->ports[i]);
+ #endif
buffer = jack_port_get_buffer(self->ports[i], self->buffer_size);
for (j = 0; j < self->buffer_size; j++)
pkt_data[j * self->nports + i] = buffer[j];
--
1.7.8.6
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel