[FFmpeg-cvslog] jack: update to new latency range API as the old one has been deprecated

Sean McGovern git at videolan.org
Wed Jun 13 23:02:28 CEST 2012


ffmpeg | branch: master | Sean McGovern <gseanmcg at gmail.com> | Mon Jun 11 18:22:31 2012 -0400| [8772997d102024b23fc820e3e5d9b96b4d309092] | committer: Diego Biurrun

jack: update to new latency range API as the old one has been deprecated

Fixes Bugzilla #279.

Signed-off-by: Diego Biurrun <diego at biurrun.de>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=8772997d102024b23fc820e3e5d9b96b4d309092
---

 configure                |    4 +++-
 libavdevice/jack_audio.c |    6 ++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index fbb71b6..5f9eed3 100755
--- a/configure
+++ b/configure
@@ -1087,6 +1087,7 @@ HAVE_LIST="
     inet_aton
     inline_asm
     isatty
+    jack_port_get_latency_range
     ldbrx
     libdc1394_1
     libdc1394_2
@@ -2982,7 +2983,8 @@ 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 -ljack
 
 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..85f9f09 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_PORT_GET_LATENCY_RANGE
+        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];



More information about the ffmpeg-cvslog mailing list