Browse Source

[0.81.2] dummy driver fixes; man page update

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@493 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.109.0
joq 22 years ago
parent
commit
e5a2e928be
3 changed files with 25 additions and 18 deletions
  1. +1
    -1
      configure.in
  2. +19
    -14
      drivers/dummy/dummy_driver.c
  3. +5
    -3
      jackd/jackd.1.in

+ 1
- 1
configure.in View File

@@ -14,7 +14,7 @@ dnl changes are made
dnl ---
JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=81
JACK_MICRO_VERSION=1
JACK_MICRO_VERSION=2

dnl ---
dnl HOWTO: updating the jack protocal version


+ 19
- 14
drivers/dummy/dummy_driver.c View File

@@ -19,6 +19,7 @@
$Id$
*/

#include <math.h>
#include <stdio.h>
#include <memory.h>
#include <unistd.h>
@@ -50,22 +51,25 @@ dummy_driver_audio_stop (dummy_driver_t *driver)
}

static jack_nframes_t
dummy_driver_wait (dummy_driver_t *driver, int extra_fd, int *status, float *delayed_usecs)
dummy_driver_wait (dummy_driver_t *driver, int extra_fd, int *status,
float *delayed_usecs)
{
jack_time_t processing_time;

processing_time = driver->last_wait_ust
? jack_get_microseconds() - driver->last_wait_ust
: 0;

if (processing_time < driver->wait_time)
usleep (driver->wait_time - processing_time);
jack_time_t starting_time = jack_get_microseconds();
jack_time_t processing_time = (driver->last_wait_ust?
starting_time - driver->last_wait_ust: 0);
jack_time_t sleeping_time = driver->wait_time - processing_time;

/* JOQ: usleep() is inaccurate for small buffer sizes with Linux
* 2.4. I suspect it can't wait for less than one (or maybe even
* two) scheduler timeslices. Linux 2.6 is probably better. */
if (sleeping_time > 0)
usleep (sleeping_time);

driver->last_wait_ust = jack_get_microseconds ();
driver->engine->transport_cycle_start (driver->engine, driver->last_wait_ust);

*status = 0;
*delayed_usecs = 0.0;
*delayed_usecs = driver->last_wait_ust - starting_time - sleeping_time;

return driver->period_size;
}
@@ -198,8 +202,8 @@ dummy_driver_new (jack_client_t * client,
driver->start = (JackDriverStartFunction) dummy_driver_audio_start;
driver->stop = (JackDriverStopFunction) dummy_driver_audio_stop;

driver->period_usecs = (((float)period_size) / ((float)sample_rate)) / 1000000.0;
driver->period_usecs =
(jack_time_t) floor ((((float) period_size) / sample_rate) * 1000000.0f);
driver->sample_rate = sample_rate;
driver->period_size = period_size;
driver->wait_time = wait_time;
@@ -321,8 +325,9 @@ driver_initialize (jack_client_t *client, int argc, char **argv)
if (!wait_time_set)
wait_time = (((float)period_size) / ((float)sample_rate)) * 1000000.0;

return dummy_driver_new (client, "dummy_pcm", capture_ports, playback_ports,
sample_rate, period_size, wait_time);
return dummy_driver_new (client, "dummy_pcm", capture_ports,
playback_ports, sample_rate, period_size,
wait_time);
}

void


+ 5
- 3
jackd/jackd.1.in View File

@@ -1,4 +1,4 @@
.TH JACKD "1" @VERSION@ "June 2003"
.TH JACKD "1" @VERSION@ "Sept. 2003"
.SH NAME
jackd, jackstart \- JACK Audio Connection Kit sound server
.SH SYNOPSYS
@@ -97,13 +97,15 @@ Specify the sample rate. The default is 48000.
Specify the number of frames between JACK \fBprocess()\fR calls. The
default is 1024. If you need low latency, set \fB\-p\fR as low as you
can go without seeing xruns. A larger period size yields higher
latency, but makes xruns less likely.
latency, but makes xruns less likely. The JACK input latency in
seconds is \fB\-\-period\fR divided by \fB\-\-rate\fR.
.TP
\fB\-n, \-\-nperiods \fIint\fR
.br
Specify the number of periods in the hardware buffer. The default is
2. The period size (\fB\-p\fR) times \fB\-\-nperiods\fR times four is
the JACK buffer size in bytes.
the JACK buffer size in bytes. The JACK output latency in seconds is
\fB\-\-nperiods\fR times \fB\-\-period\fR divided by \fB\-\-rate\fR.
.TP
\fB\-D, \-\-duplex\fR
Provide both capture and playback ports (the default).


Loading…
Cancel
Save