From 190640f851d78d600e1566f7e1880768d5d16cce Mon Sep 17 00:00:00 2001 From: torben Date: Wed, 6 Oct 2010 14:21:19 +0000 Subject: [PATCH] add suport for celt-0.8.x git-svn-id: svn+ssh://jackaudio.org/trunk/jack@4058 0c269be4-1314-0410-8aa9-9f06e86f4224 --- configure.ac | 38 +++++++++++++++++++++----------- drivers/netjack/netjack.c | 6 ++--- drivers/netjack/netjack_packet.c | 11 +++++++++ tools/netsource.c | 4 ++-- 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index 4e969e9..86faa7b 100644 --- a/configure.ac +++ b/configure.ac @@ -716,26 +716,38 @@ fi # Celt low-latency audio codec. netjack transmission via internet. HAVE_CELT=false -PKG_CHECK_MODULES(CELT, celt >= 0.7.0,[HAVE_CELT=true], [true]) +PKG_CHECK_MODULES(CELT, celt >= 0.8.0,[HAVE_CELT=true], [true]) if test x$HAVE_CELT = xfalse; then - PKG_CHECK_MODULES(CELT, celt >= 0.5.0,[HAVE_CELT=true], [true]) + PKG_CHECK_MODULES(CELT, celt >= 0.7.0,[HAVE_CELT=true], [true]) if test x$HAVE_CELT = xfalse; then - AC_DEFINE(HAVE_CELT,0,"Whether CELT is available") - AC_MSG_RESULT(no) - AC_MSG_WARN([*** NetJack will not be built with celt support]) + PKG_CHECK_MODULES(CELT, celt >= 0.5.0,[HAVE_CELT=true], [true]) + if test x$HAVE_CELT = xfalse; then + AC_DEFINE(HAVE_CELT,0,"Whether CELT is available") + AC_MSG_RESULT(no) + AC_MSG_WARN([*** NetJack will not be built with celt support]) + else + AC_DEFINE(HAVE_CELT,1,"Whether CELT is available") + AC_DEFINE(HAVE_CELT_API_0_5,1,"Whether CELT API is 0.5 API") + AC_DEFINE(HAVE_CELT_API_0_7,0,"Whether CELT API is 0.7 API") + AC_DEFINE(HAVE_CELT_API_0_8,0,"Whether CELT API is 0.8 API") + AC_MSG_RESULT(yes (0.5)) + NETJACK_LIBS="$NETJACK_LIBS $CELT_LIBS" + fi else AC_DEFINE(HAVE_CELT,1,"Whether CELT is available") - AC_DEFINE(HAVE_CELT_API_0_5,1,"Whether CELT API is 0.5 API") - AC_DEFINE(HAVE_CELT_API_0_7,0,"Whether CELT API is 0.7 API") - AC_MSG_RESULT(yes (0.5)) + AC_MSG_RESULT(yes (0.7)) + AC_DEFINE(HAVE_CELT_API_0_5,0,"Whether CELT API is 0.5 API") + AC_DEFINE(HAVE_CELT_API_0_7,1,"Whether CELT API is 0.7 API") + AC_DEFINE(HAVE_CELT_API_0_8,0,"Whether CELT API is 0.8 API") NETJACK_LIBS="$NETJACK_LIBS $CELT_LIBS" fi else - AC_DEFINE(HAVE_CELT,1,"Whether CELT is available") - AC_MSG_RESULT(yes (0.7)) - AC_DEFINE(HAVE_CELT_API_0_5,0,"Whether CELT API is 0.5 API") - AC_DEFINE(HAVE_CELT_API_0_7,1,"Whether CELT API is 0.7 API") - NETJACK_LIBS="$NETJACK_LIBS $CELT_LIBS" + AC_DEFINE(HAVE_CELT,1,"Whether CELT is available") + AC_MSG_RESULT(yes (0.7)) + AC_DEFINE(HAVE_CELT_API_0_5,0,"Whether CELT API is 0.5 API") + AC_DEFINE(HAVE_CELT_API_0_7,0,"Whether CELT API is 0.7 API") + AC_DEFINE(HAVE_CELT_API_0_8,1,"Whether CELT API is 0.8 API") + NETJACK_LIBS="$NETJACK_LIBS $CELT_LIBS" fi AC_SUBST(NETJACK_LIBS) diff --git a/drivers/netjack/netjack.c b/drivers/netjack/netjack.c index 00d777d..8c9f5ef 100644 --- a/drivers/netjack/netjack.c +++ b/drivers/netjack/netjack.c @@ -373,7 +373,7 @@ void netjack_attach( netjack_driver_state_t *netj ) if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 celt_int32 lookahead; netj->celt_mode = celt_mode_create( netj->sample_rate, netj->period_size, NULL ); #else @@ -406,7 +406,7 @@ void netjack_attach( netjack_driver_state_t *netj ) if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 netj->capture_srcs = jack_slist_append(netj->capture_srcs, celt_decoder_create( netj->celt_mode, 1, NULL ) ); #else netj->capture_srcs = jack_slist_append(netj->capture_srcs, celt_decoder_create( netj->celt_mode ) ); @@ -452,7 +452,7 @@ void netjack_attach( netjack_driver_state_t *netj ) jack_slist_append (netj->playback_ports, port); if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 CELTMode *celt_mode = celt_mode_create( netj->sample_rate, netj->period_size, NULL ); netj->playback_srcs = jack_slist_append(netj->playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); #else diff --git a/drivers/netjack/netjack_packet.c b/drivers/netjack/netjack_packet.c index 14cac8c..3650beb 100644 --- a/drivers/netjack/netjack_packet.c +++ b/drivers/netjack/netjack_packet.c @@ -1369,10 +1369,17 @@ render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_peri // audio port, decode celt data. CELTDecoder *decoder = src_node->data; +#if HAVE_CELT_API_0_8 + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); +#else if( !packet_payload ) celt_decode_float( decoder, NULL, net_period_down, buf ); else celt_decode_float( decoder, packet_bufX, net_period_down, buf ); +#endif src_node = jack_slist_next (src_node); } @@ -1414,7 +1421,11 @@ render_jack_ports_to_payload_celt (JSList *playback_ports, JSList *playback_srcs float *floatbuf = alloca (sizeof(float) * nframes ); memcpy( floatbuf, buf, nframes*sizeof(float) ); CELTEncoder *encoder = src_node->data; +#if HAVE_CELT_API_0_8 + encoded_bytes = celt_encode_float( encoder, floatbuf, nframes, packet_bufX, net_period_up ); +#else encoded_bytes = celt_encode_float( encoder, floatbuf, NULL, packet_bufX, net_period_up ); +#endif if( encoded_bytes != net_period_up ) printf( "something in celt changed. netjack needs to be changed to handle this.\n" ); src_node = jack_slist_next( src_node ); diff --git a/tools/netsource.c b/tools/netsource.c index c79b77b..bad1982 100644 --- a/tools/netsource.c +++ b/tools/netsource.c @@ -137,7 +137,7 @@ alloc_ports (int n_capture_audio, int n_playback_audio, int n_capture_midi, int } if( bitdepth == 1000 ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 CELTMode *celt_mode = celt_mode_create( jack_get_sample_rate( client ), jack_get_buffer_size(client), NULL ); capture_srcs = jack_slist_append(capture_srcs, celt_decoder_create( celt_mode, 1, NULL ) ); #else @@ -180,7 +180,7 @@ alloc_ports (int n_capture_audio, int n_playback_audio, int n_capture_midi, int } if( bitdepth == 1000 ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 CELTMode *celt_mode = celt_mode_create( jack_get_sample_rate (client), jack_get_buffer_size(client), NULL ); playback_srcs = jack_slist_append(playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); #else