aboutsummaryrefslogtreecommitdiffstats
path: root/audio/jack
diff options
context:
space:
mode:
authorarved <arved@FreeBSD.org>2004-03-16 05:17:44 +0800
committerarved <arved@FreeBSD.org>2004-03-16 05:17:44 +0800
commit387859a5a207278078921cc741c746d0b33f4eec (patch)
tree386b20a7d01e60f999a058b6a0e126f03c27a74f /audio/jack
parente993c863b078bd1d27063eebda00e97c0dd81bb1 (diff)
downloadfreebsd-ports-gnome-387859a5a207278078921cc741c746d0b33f4eec.tar.gz
freebsd-ports-gnome-387859a5a207278078921cc741c746d0b33f4eec.tar.zst
freebsd-ports-gnome-387859a5a207278078921cc741c746d0b33f4eec.zip
Fix pkgconfig file [1].
Update OSS Driver [2]. Bump PORTREVISION. [1] Submitted by: Koop Mast <kwm@rainbow-runner.nl> [2] Submitted by: Jussi Laako <jussi@sonarnerd.net>
Diffstat (limited to 'audio/jack')
-rw-r--r--audio/jack/Makefile2
-rw-r--r--audio/jack/files/patch-aa182
-rw-r--r--audio/jack/files/patch-jack.pc.in9
3 files changed, 111 insertions, 82 deletions
diff --git a/audio/jack/Makefile b/audio/jack/Makefile
index 2999255c2e0b..f51193b3ded8 100644
--- a/audio/jack/Makefile
+++ b/audio/jack/Makefile
@@ -6,7 +6,7 @@
PORTNAME= jackit
PORTVERSION= 0.94.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= audio
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= jackit
diff --git a/audio/jack/files/patch-aa b/audio/jack/files/patch-aa
index 3067e0553d46..2974aa39c2e6 100644
--- a/audio/jack/files/patch-aa
+++ b/audio/jack/files/patch-aa
@@ -1,6 +1,6 @@
-diff -urN jack-audio-connection-kit-0.94.0/configure.in configure.in
---- jack-audio-connection-kit-0.94.0/configure.in 2004-01-13 04:43:12.000000000 +0200
-+++ configure.in 2004-02-14 16:21:26.000000000 +0200
+diff -urN jack-audio-connection-kit-0.94.0.orig/configure.in configure.in
+--- jack-audio-connection-kit-0.94.0.orig/configure.in 2004-01-13 04:43:12.000000000 +0200
++++ configure.in 2004-03-15 21:24:21.000000000 +0200
@@ -116,7 +116,7 @@
JACK_CORE_CFLAGS="-I\$(top_srcdir) -I\$(top_builddir) -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -Wall"
@@ -27,14 +27,14 @@ diff -urN jack-audio-connection-kit-0.94.0/configure.in configure.in
example-clients/Makefile
doc/Makefile
doc/reference.doxygen
-diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/Makefile.am drivers/oss/Makefile.am
---- jack-audio-connection-kit-0.94.0/drivers/oss/Makefile.am 1970-01-01 02:00:00.000000000 +0200
-+++ drivers/oss/Makefile.am 2004-02-14 16:21:26.000000000 +0200
+diff -urN jack-audio-connection-kit-0.94.0.orig/drivers/oss/Makefile.am drivers/oss/Makefile.am
+--- jack-audio-connection-kit-0.94.0.orig/drivers/oss/Makefile.am 1970-01-01 02:00:00.000000000 +0200
++++ drivers/oss/Makefile.am 2004-03-15 21:25:01.000000000 +0200
@@ -0,0 +1,14 @@
+MAINTAINCLEANFILES = Makefile.in
+
+AM_CFLAGS = $(JACK_CFLAGS) -I/opt/oss/include -D_XOPEN_SOURCE=600 -DUSE_BARRIER
-+#AM_CFLAGS = $(JACK_CFLAGS) -I/opt/oss/include
++#AM_CFLAGS = $(JACK_CFLAGS) -I/opt/oss/include -D_XOPEN_SOURCE=600
+AM_LDFLAGS = $(JACK_LDFLAGS) -lpthread -lrt
+
+plugindir = $(ADDON_DIR)
@@ -45,10 +45,10 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/Makefile.am drivers/oss/M
+jack_oss_la_SOURCES = oss_driver.c oss_driver.h
+
+noinst_HEADERS = oss_driver.h
-diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/oss_driver.c
---- jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c 1970-01-01 02:00:00.000000000 +0200
-+++ drivers/oss/oss_driver.c 2004-02-14 17:22:53.000000000 +0200
-@@ -0,0 +1,1171 @@
+diff -urN jack-audio-connection-kit-0.94.0.orig/drivers/oss/oss_driver.c drivers/oss/oss_driver.c
+--- jack-audio-connection-kit-0.94.0.orig/drivers/oss/oss_driver.c 1970-01-01 02:00:00.000000000 +0200
++++ drivers/oss/oss_driver.c 2004-03-15 21:35:09.000000000 +0200
+@@ -0,0 +1,1189 @@
+/*
+
+ OSS driver for Jack
@@ -86,12 +86,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+#include <sys/soundcard.h>
+#include <stdarg.h>
+#include <getopt.h>
-+#ifndef USE_BARRIER
-+#include <pthread.h>
-+#else
+#include <pthread.h>
+#include <semaphore.h>
-+#endif
+
+#include <jack/types.h>
+#include <jack/internal.h>
@@ -103,15 +99,15 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+
+#define OSS_DRIVER_N_PARAMS 9
+const static jack_driver_param_desc_t oss_params[OSS_DRIVER_N_PARAMS] = {
-+ { "samplerate",
-+ 's',
++ { "rate",
++ 'r',
+ JackDriverParamUInt,
+ { .ui = OSS_DRIVER_DEF_FS },
+ "sample rate",
+ "sample rate"
+ },
-+ { "periodsize",
-+ 'b',
++ { "period",
++ 'p',
+ JackDriverParamUInt,
+ { .ui = OSS_DRIVER_DEF_BLKSIZE },
+ "period size",
@@ -124,36 +120,36 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ "word length",
+ "word length"
+ },
-+ { "capturech",
-+ 'c',
++ { "inchannels",
++ 'i',
+ JackDriverParamUInt,
+ { .ui = OSS_DRIVER_DEF_INS },
+ "capture channels",
+ "capture channels"
+ },
-+ { "playbackch",
-+ 'p',
++ { "outchannels",
++ 'o',
+ JackDriverParamUInt,
+ { .ui = OSS_DRIVER_DEF_OUTS },
+ "playback channels",
+ "playback channels"
+ },
-+ { "inputdev",
-+ 'i',
++ { "capture",
++ 'C',
+ JackDriverParamString,
-+ { .str = '\0' },
++ { .str = OSS_DRIVER_DEF_DEV },
+ "input device",
+ "input device"
+ },
-+ { "outputdev",
-+ 'o',
++ { "playback",
++ 'P',
+ JackDriverParamString,
-+ { .str = '\0' },
++ { .str = OSS_DRIVER_DEF_DEV },
+ "output device",
+ "output device"
+ },
+ { "ignorehwbuf",
-+ 'd',
++ 'b',
+ JackDriverParamBool,
+ { },
+ "ignore hardware period size",
@@ -173,6 +169,34 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+/* internal functions */
+
+
++static inline void update_times (oss_driver_t *driver)
++{
++ driver->last_periodtime = jack_get_microseconds();
++ if (driver->next_periodtime > 0)
++ {
++ driver->iodelay = (float)
++ ((long double) driver->last_periodtime -
++ (long double) driver->next_periodtime);
++ }
++ else driver->iodelay = 0.0F;
++ driver->next_periodtime =
++ driver->last_periodtime +
++ driver->period_usecs;
++}
++
++
++static inline void driver_cycle (oss_driver_t *driver)
++{
++ update_times(driver);
++ driver->engine->transport_cycle_start(driver->engine,
++ driver->last_periodtime);
++
++ driver->last_wait_ust = driver->last_periodtime;
++ driver->engine->run_cycle(driver->engine,
++ driver->period_size, driver->iodelay);
++}
++
++
+static void copy_and_convert_in (jack_sample_t *dst, void *src,
+ size_t nframes, int channel, int chcount, int bits)
+{
@@ -638,8 +662,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ pthread_mutex_init(&driver->mutex_out, NULL);
+# ifdef USE_BARRIER
+ pthread_barrier_init(&driver->barrier, NULL, 2);
-+ sem_init(&driver->sem_start, 0, 0);
+# endif
++ sem_init(&driver->sem_start, 0, 0);
+ driver->run = 1;
+ driver->threads = 0;
+ if (infd >= 0)
@@ -655,9 +679,6 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ }
+# ifdef USE_BARRIER
+ if (outfd >= 0)
-+# else
-+ if (outfd >= 0 && infd != outfd)
-+# endif
+ {
+ if (pthread_create(&driver->thread_out, NULL, io_thread,
+ driver) < 0)
@@ -668,12 +689,15 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ }
+ driver->threads |= 2;
+ }
-+
-+# ifdef USE_BARRIER
-+ sem_post(&driver->sem_start);
-+ sem_post(&driver->sem_start);
+# endif
+
++ if (driver->threads & 1) sem_post(&driver->sem_start);
++ if (driver->threads & 2) sem_post(&driver->sem_start);
++
++ driver->last_periodtime = jack_get_microseconds();
++ driver->next_periodtime = 0;
++ driver->iodelay = 0.0F;
++
+ return 0;
+}
+
@@ -701,8 +725,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ return -1;
+ }
+ }
-+# ifdef USE_BARRIER
+ sem_destroy(&driver->sem_start);
++# ifdef USE_BARRIER
+ pthread_barrier_destroy(&driver->barrier);
+# endif
+ pthread_mutex_destroy(&driver->mutex_in);
@@ -859,16 +883,12 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ if (pthread_barrier_wait(&driver->barrier) ==
+ PTHREAD_BARRIER_SERIAL_THREAD)
+ {
-+ driver->last_wait_ust = jack_get_microseconds();
-+ driver->engine->run_cycle(driver->engine,
-+ driver->period_size, 0);
++ driver_cycle(driver);
+ }
+ }
+ else
+ {
-+ driver->last_wait_ust = jack_get_microseconds();
-+ driver->engine->run_cycle(driver->engine,
-+ driver->period_size, 0);
++ driver_cycle(driver);
+ }
+}
+#endif
@@ -887,7 +907,7 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ schedpol = SCHED_FIFO;
+ schedp.sched_priority = sched_get_priority_max(SCHED_FIFO) - 1;
+ if (pthread_setschedparam(pthread_self(), schedpol,
-+ &schedp) < 0)
++ &schedp) != 0)
+ {
+ puts("oss_driver: pthread_setschedparam() failed\n");
+ }
@@ -897,9 +917,9 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ puts("oss_driver: pthread_getschedparam() failed\n");
+ }
+
-+# ifdef USE_BARRIER
+ sem_wait(&driver->sem_start);
+
++# ifdef USE_BARRIER
+ if (pthread_self() == driver->thread_in)
+ {
+ localsize = driver->indevbufsize;
@@ -916,8 +936,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ if (read(driver->infd, localbuf, localsize) <
+ (ssize_t) localsize)
+ {
-+ /*jack_error("OSS: read() failed: %s@%i",
-+ __FILE__, __LINE__);*/
++ jack_error("OSS: read() failed: %s@%i",
++ __FILE__, __LINE__);
+ break;
+ }
+
@@ -950,8 +970,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ if (write(driver->outfd, localbuf, localsize) <
+ (ssize_t) localsize)
+ {
-+ /*jack_error("OSS: write() failed: %s@%i",
-+ __FILE__, __LINE__);*/
++ jack_error("OSS: write() failed: %s@%i",
++ __FILE__, __LINE__);
+ break;
+ }
+
@@ -1006,9 +1026,7 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ pthread_mutex_unlock(&driver->mutex_in);
+ }
+
-+ driver->last_wait_ust = jack_get_microseconds();
-+ driver->engine->run_cycle(driver->engine,
-+ driver->period_size, 0);
++ driver_cycle(driver);
+ }
+
+ free(localbuf);
@@ -1092,38 +1110,39 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+
+ switch (param->character)
+ {
-+ case 's':
++ case 'r':
+ sample_rate = param->value.ui;
+ break;
-+ case 'b':
++ case 'p':
+ period_size = param->value.ui;
+ break;
+ case 'w':
+ bits = param->value.i;
+ break;
-+ case 'c':
++ case 'i':
+ capture_channels = param->value.ui;
+ break;
-+ case 'p':
++ case 'o':
+ playback_channels = param->value.ui;
+ break;
-+ case 'i':
++ case 'C':
+ driver->indev = strdup(param->value.str);
+ break;
-+ case 'o':
++ case 'P':
+ driver->outdev = strdup(param->value.str);
+ break;
-+ case 'd':
++ case 'b':
+ driver->ignorehwbuf = 1;
+ break;
+ case 'h':
-+ puts("-s <fs>\tsample rate");
-+ puts("-b <size>\tperiod size");
++ puts("-r <fs>\tsample rate");
++ puts("-p <size>\tperiod size");
+ puts("-w <bits>\tword length");
-+ puts("-c <chs>\tcapture channels");
-+ puts("-p <chs>\tplayback channels");
-+ puts("-i <dev>\tcapture device");
-+ puts("-o <dev>\tplayback device");
++ puts("-i <chs>\tcapture channels");
++ puts("-o <chs>\tplayback channels");
++ puts("-C <dev>\tcapture device");
++ puts("-P <dev>\tplayback device");
++ puts("-b\tignore hardware buffer size");
+ puts("-h\tthis help");
+ break;
+ }
@@ -1139,13 +1158,12 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ driver->period_usecs =
+ ((double) period_size / (double) sample_rate) * 1e6;
+ driver->last_wait_ust = 0;
++ driver->last_periodtime = jack_get_microseconds();
++ driver->next_periodtime = 0;
++ driver->iodelay = 0.0F;
+
+ driver->finish = driver_finish;
+
-+ if (driver->indev == NULL)
-+ driver->indev = strdup("/dev/dsp");
-+ if (driver->outdev == NULL)
-+ driver->outdev = strdup(driver->indev);
+ driver->infd = -1;
+ driver->outfd = -1;
+ switch (driver->bits)
@@ -1220,10 +1238,10 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.c drivers/oss/
+ free(driver);
+}
+
-diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.h drivers/oss/oss_driver.h
---- jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.h 1970-01-01 02:00:00.000000000 +0200
-+++ drivers/oss/oss_driver.h 2004-02-14 17:23:01.000000000 +0200
-@@ -0,0 +1,92 @@
+diff -urN jack-audio-connection-kit-0.94.0.orig/drivers/oss/oss_driver.h drivers/oss/oss_driver.h
+--- jack-audio-connection-kit-0.94.0.orig/drivers/oss/oss_driver.h 1970-01-01 02:00:00.000000000 +0200
++++ drivers/oss/oss_driver.h 2004-03-15 21:25:31.000000000 +0200
+@@ -0,0 +1,94 @@
+/*
+
+ OSS driver for Jack
@@ -1250,20 +1268,18 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.h drivers/oss/
+#ifndef __JACK_OSS_DRIVER_H__
+#define __JACK_OSS_DRIVER_H__
+
-+#ifndef USE_BARRIER
-+#include <pthread.h>
-+#else
+#include <pthread.h>
+#include <semaphore.h>
-+#endif
+
+#include <jack/types.h>
+#include <jack/jslist.h>
+#include <jack/driver.h>
++#include <jack/time.h>
+#include <jack/jack.h>
+
+
-+#define OSS_DRIVER_DEF_FS 44100
++#define OSS_DRIVER_DEF_DEV "/dev/dsp"
++#define OSS_DRIVER_DEF_FS 48000
+#define OSS_DRIVER_DEF_BLKSIZE 1024
+#define OSS_DRIVER_DEF_BITS 16
+#define OSS_DRIVER_DEF_INS 2
@@ -1295,6 +1311,10 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.h drivers/oss/
+ void *indevbuf;
+ void *outdevbuf;
+
++ float iodelay;
++ jack_time_t last_periodtime;
++ jack_time_t next_periodtime;
++
+ JSList *capture_ports;
+ JSList *playback_ports;
+
@@ -1309,8 +1329,8 @@ diff -urN jack-audio-connection-kit-0.94.0/drivers/oss/oss_driver.h drivers/oss/
+ pthread_mutex_t mutex_out;
+# ifdef USE_BARRIER
+ pthread_barrier_t barrier;
-+ sem_t sem_start;
+# endif
++ sem_t sem_start;
+} oss_driver_t;
+
+
diff --git a/audio/jack/files/patch-jack.pc.in b/audio/jack/files/patch-jack.pc.in
new file mode 100644
index 000000000000..7391565bf128
--- /dev/null
+++ b/audio/jack/files/patch-jack.pc.in
@@ -0,0 +1,9 @@
+--- jack.pc.in.orig Thu Jun 5 03:21:36 2003
++++ jack.pc.in Sun Mar 14 22:49:44 2004
+@@ -6,5 +6,5 @@
+ Name: jack
+ Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
+ Version: @JACK_VERSION@
+-Libs: -L${libdir} -ljack -lpthread -ldl -lrt
++Libs: -L${libdir} -ljack -lpthread
+ Cflags: -I${includedir}