Browse Source

[netjack] support building without libsamplerate

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@3196 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.116.2
torben 17 years ago
parent
commit
9643ffbb40
7 changed files with 53 additions and 9 deletions
  1. +2
    -0
      configure.ac
  2. +0
    -3
      drivers/netjack/Makefile.am
  3. +16
    -2
      drivers/netjack/net_driver.c
  4. +0
    -1
      drivers/netjack/net_driver.h
  5. +27
    -1
      drivers/netjack/netjack_packet.c
  6. +2
    -2
      tools/Makefile.am
  7. +6
    -0
      tools/netsource.c

+ 2
- 0
configure.ac View File

@@ -655,9 +655,11 @@ HAVE_SAMPLERATE=false
PKG_CHECK_MODULES(SAMPLERATE, samplerate >= 0.1.2,[HAVE_SAMPLERATE=true], [true])
if test x$HAVE_SAMPLERATE = xfalse; then
AC_MSG_WARN([*** the NetJack backend and internal client will not be built])
AC_DEFINE(HAVE_SAMPLERATE,0,"Whether libsamplerate is available")
else
CFLAGS="$CFLAGS $SAMPLERATE_CFLAGS"
LIBS="$LIBS $SAMPLERATE_LIBS"
AC_DEFINE(HAVE_SAMPLERATE,1,"Whether libsamplerate is available")
fi

# Celt low-latency audio codec. netjack transmission via internet.


+ 0
- 3
drivers/netjack/Makefile.am View File

@@ -2,17 +2,14 @@ MAINTAINCLEANFILES = Makefile.in

AM_CFLAGS = $(JACK_CFLAGS)

if HAVE_SAMPLERATE

plugindir = $(ADDON_DIR)

plugin_LTLIBRARIES = jack_net.la

jack_net_la_LIBADD = -lsamplerate

jack_net_la_LDFLAGS = -module -avoid-version
jack_net_la_SOURCES = net_driver.c netjack_packet.c

noinst_HEADERS = net_driver.h netjack_packet.h

endif # HAVE_SAMPLERATE

+ 16
- 2
drivers/netjack/net_driver.c View File

@@ -43,7 +43,9 @@ $Id: net_driver.c,v 1.17 2006/04/16 20:16:10 torbenh Exp $

#include "config.h"

#if HAVE_SAMPLERATE
#include <samplerate.h>
#endif

#if HAVE_CELT
#include <celt/celt.h>
@@ -549,7 +551,9 @@ net_driver_attach (net_driver_t *driver)
driver->capture_srcs = jack_slist_append(driver->capture_srcs, celt_decoder_create( celt_mode ) );
#endif
} else {
#if HAVE_SAMPLERATE
driver->capture_srcs = jack_slist_append(driver->capture_srcs, src_new(SRC_LINEAR, 1, NULL));
#endif
}
}
for (chn = driver->capture_channels_audio; chn < driver->capture_channels; chn++) {
@@ -565,7 +569,6 @@ net_driver_attach (net_driver_t *driver)

driver->capture_ports =
jack_slist_append (driver->capture_ports, port);
//driver->capture_srcs = jack_slist_append(driver->capture_srcs, src_new(SRC_LINEAR, 1, NULL));
}

port_flags = JackPortIsInput | JackPortIsPhysical | JackPortIsTerminal;
@@ -591,7 +594,9 @@ net_driver_attach (net_driver_t *driver)
driver->playback_srcs = jack_slist_append(driver->playback_srcs, celt_encoder_create( celt_mode ) );
#endif
} else {
#if HAVE_SAMPLERATE
driver->playback_srcs = jack_slist_append(driver->playback_srcs, src_new(SRC_LINEAR, 1, NULL));
#endif
}
}
for (chn = driver->playback_channels_audio; chn < driver->playback_channels; chn++) {
@@ -608,7 +613,6 @@ net_driver_attach (net_driver_t *driver)

driver->playback_ports =
jack_slist_append (driver->playback_ports, port);
//driver->playback_srcs = jack_slist_append(driver->playback_srcs, src_new(SRC_LINEAR, 1, NULL));
}

jack_activate (driver->client);
@@ -1059,11 +1063,21 @@ driver_initialize (jack_client_t *client, const JSList * params)
break;

case 'f':
#if HAVE_SAMPLERATE
resample_factor = param->value.ui;
#else
printf( "not built with libsamplerate support\n" );
exit(10);
#endif
break;

case 'u':
#if HAVE_SAMPLERATE
resample_factor_up = param->value.ui;
#else
printf( "not built with libsamplerate support\n" );
exit(10);
#endif
break;

case 'b':


+ 0
- 1
drivers/netjack/net_driver.h View File

@@ -28,7 +28,6 @@
#include <jack/transport.h>

#include <netinet/in.h>
#include <samplerate.h>

typedef struct _net_driver net_driver_t;



+ 27
- 1
drivers/netjack/netjack_packet.c View File

@@ -51,7 +51,9 @@
#include <errno.h>
#include <signal.h>

#if HAVE_SAMPLERATE
#include <samplerate.h>
#endif

#if HAVE_CELT
#include <celt/celt.h>
@@ -856,7 +858,9 @@ render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_pe
{
int i;
int_float_t val;
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif

jack_port_t *port = (jack_port_t *) node->data;
jack_default_audio_sample_t* buf = jack_port_get_buffer (port, nframes);
@@ -865,6 +869,7 @@ render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_pe

if (strncmp (porttype, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0)
{
#if HAVE_SAMPLERATE
// audio port, resample if necessary
if (net_period_down != nframes)
{
@@ -888,6 +893,7 @@ render_payload_to_jack_ports_float ( void *packet_payload, jack_nframes_t net_pe
src_node = jack_slist_next (src_node);
}
else
#endif
{
for (i = 0; i < net_period_down; i++)
{
@@ -922,7 +928,9 @@ render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_src

while (node != NULL)
{
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif
int i;
int_float_t val;
jack_port_t *port = (jack_port_t *) node->data;
@@ -934,6 +942,7 @@ render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_src
{
// audio port, resample if necessary
#if HAVE_SAMPLERATE
if (net_period_up != nframes) {
SRC_STATE *src_state = src_node->data;
src.data_in = buf;
@@ -955,6 +964,7 @@ render_jack_ports_to_payload_float (JSList *playback_ports, JSList *playback_src
src_node = jack_slist_next (src_node);
}
else
#endif
{
for (i = 0; i < net_period_up; i++)
{
@@ -995,7 +1005,9 @@ render_payload_to_jack_ports_16bit (void *packet_payload, jack_nframes_t net_per
{
int i;
//uint32_t val;
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif

jack_port_t *port = (jack_port_t *) node->data;
jack_default_audio_sample_t* buf = jack_port_get_buffer (port, nframes);
@@ -1007,6 +1019,7 @@ render_payload_to_jack_ports_16bit (void *packet_payload, jack_nframes_t net_per
{
// audio port, resample if necessary
#if HAVE_SAMPLERATE
if (net_period_down != nframes)
{
SRC_STATE *src_state = src_node->data;
@@ -1029,6 +1042,7 @@ render_payload_to_jack_ports_16bit (void *packet_payload, jack_nframes_t net_per
src_node = jack_slist_next (src_node);
}
else
#endif
for (i = 0; i < net_period_down; i++)
buf[i] = ((float) ntohs (packet_bufX[i])) / 32768.0 - 1.0;
}
@@ -1057,7 +1071,9 @@ render_jack_ports_to_payload_16bit (JSList *playback_ports, JSList *playback_src

while (node != NULL)
{
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif
int i;
jack_port_t *port = (jack_port_t *) node->data;
jack_default_audio_sample_t* buf = jack_port_get_buffer (port, nframes);
@@ -1067,6 +1083,7 @@ render_jack_ports_to_payload_16bit (JSList *playback_ports, JSList *playback_src
{
// audio port, resample if necessary
#if HAVE_SAMPLERATE
if (net_period_up != nframes)
{
SRC_STATE *src_state = src_node->data;
@@ -1092,6 +1109,7 @@ render_jack_ports_to_payload_16bit (JSList *playback_ports, JSList *playback_src
src_node = jack_slist_next (src_node);
}
else
#endif
for (i = 0; i < net_period_up; i++)
packet_bufX[i] = htons(((uint16_t)((buf[i] + 1.0) * 32767.0)));
}
@@ -1126,7 +1144,9 @@ render_payload_to_jack_ports_8bit (void *packet_payload, jack_nframes_t net_peri
{
int i;
//uint32_t val;
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif

jack_port_t *port = (jack_port_t *) node->data;
jack_default_audio_sample_t* buf = jack_port_get_buffer (port, nframes);
@@ -1136,8 +1156,8 @@ render_payload_to_jack_ports_8bit (void *packet_payload, jack_nframes_t net_peri

if (strncmp (portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0)
{
#if HAVE_SAMPLERATE
// audio port, resample if necessary
if (net_period_down != nframes)
{
SRC_STATE *src_state = src_node->data;
@@ -1158,6 +1178,7 @@ render_payload_to_jack_ports_8bit (void *packet_payload, jack_nframes_t net_peri
src_node = jack_slist_next (src_node);
}
else
#endif
for (i = 0; i < net_period_down; i++)
buf[i] = ((float) packet_bufX[i]) / 127.0;
}
@@ -1186,7 +1207,9 @@ render_jack_ports_to_payload_8bit (JSList *playback_ports, JSList *playback_srcs

while (node != NULL)
{
#if HAVE_SAMPLERATE
SRC_DATA src;
#endif
int i;
jack_port_t *port = (jack_port_t *) node->data;

@@ -1195,9 +1218,11 @@ render_jack_ports_to_payload_8bit (JSList *playback_ports, JSList *playback_srcs

if (strncmp (portname, JACK_DEFAULT_AUDIO_TYPE, jack_port_type_size()) == 0)
{
#if HAVE_SAMPLERATE
// audio port, resample if necessary
if (net_period_up != nframes)
{

SRC_STATE *src_state = src_node->data;
float *floatbuf = alloca (sizeof (float) * net_period_up);
@@ -1219,6 +1244,7 @@ render_jack_ports_to_payload_8bit (JSList *playback_ports, JSList *playback_srcs
src_node = jack_slist_next (src_node);
}
else
#endif
for (i = 0; i < net_period_up; i++)
packet_bufX[i] = buf[i] * 127.0;
}


+ 2
- 2
tools/Makefile.am View File

@@ -121,12 +121,12 @@ jack_unload_LDADD = $(top_builddir)/libjack/libjack.la
#
# Netjack slave tools
#
if HAVE_SAMPLERATE
jack_netsource_SOURCES = netsource.c $(top_builddir)/drivers/netjack/netjack_packet.c
jack_netsource_CFLAGS = -I$(top_srcdir)/drivers/netjack
jack_netsource_LDFLAGS = -lsamplerate @OS_LDFLAGS@
jack_netsource_LDFLAGS = @OS_LDFLAGS@
jack_netsource_LDADD = $(top_builddir)/libjack/libjack.la

if HAVE_SAMPLERATE
if HAVE_ALSA
alsa_in_SOURCES = alsa_in.c time_smoother.c
alsa_in_LDFLAGS = -lasound -lsamplerate @OS_LDFLAGS@


+ 6
- 0
tools/netsource.c View File

@@ -49,7 +49,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

#include <net_driver.h>
#include <netjack_packet.h>
#if HAVE_SAMPLERATE
#include <samplerate.h>
#endif

#if HAVE_CELT
#include <celt/celt.h>
@@ -125,7 +127,9 @@ alloc_ports (int n_capture_audio, int n_playback_audio, int n_capture_midi, int
capture_srcs = jack_slist_append(capture_srcs, celt_decoder_create( celt_mode ) );
#endif
} else {
#if HAVE_SAMPLERATE
capture_srcs = jack_slist_append (capture_srcs, src_new (SRC_LINEAR, 1, NULL));
#endif
}
capture_ports = jack_slist_append (capture_ports, port);
}
@@ -162,7 +166,9 @@ alloc_ports (int n_capture_audio, int n_playback_audio, int n_capture_midi, int
playback_srcs = jack_slist_append(playback_srcs, celt_encoder_create( celt_mode ) );
#endif
} else {
#if HAVE_SAMPLERATE
playback_srcs = jack_slist_append (playback_srcs, src_new (SRC_LINEAR, 1, NULL));
#endif
}
playback_ports = jack_slist_append (playback_ports, port);
}


Loading…
Cancel
Save