- make it work with 24-bit formats (as with azalia and envy)
- use the correct member of struct sio_par for the buffer size
- check both poll(2) revents as well as calculated buffer positions
to know when we can read/write data
sun_driver.c:
- make it work with 24-bit formats (as with azalia and envy)
jackd/engine.c:
- don't spam error messages every time a client quits
add README.OpenBSD
* deal with sio_{read,write} possibly moving less data than requested
* check for out-of-sync conditions and restart if they occur
makes running jackd over aucat much more reliable
- add sndio backend
playback under aucat server is pretty solid. for full-duplex,
starting aucat with 'aucat -l -b 2048' and jackd with just
'jackd -d sndio' seems to work best for me. we want low latency
anyway, right ;)
- fix build on alpha by not comparing a va_list to NULL. problem
noticed and fix tested by merdely@.
- fix possible 100% cpu usage in full-duplex mode
- fix net client/server
- add @bin markers to PLIST
- don't bother trying to fix compiler optimization flag tests. they're
badly broken/linux spcific, and we don't use them anyway.
- the net source client became a "real" client (executable), instead of
an "in process" client (plugin)
- previous sun_driver patches accepted upstream, plus:
* fix cycle timing in duplex mode by moving calculations and function
calls out of the poll() synchronization loop
* shorten xrun and silence writing/reading messages
* remove unused variables
* attempt to stop continuous playback underruns in duplex mode that are
caused by the capture buffer overrunning
* try harder to make sure we have pristine buffers after
sun_driver_start()
* use native endian audio encodings
* report a delay when poll() times out, instead of effectively running
a null cycle
now jack works on my r10k sgi :)
nanosleep(2) instead of usleep(3), which is limited to 1 second.
- stop clients from getting "zombified" after connection graph
changes by ignoring errors from read(2)ing data that isn't used.
- in each call to sun_driver_write(), bzero the buffer that will be
written to the audio device. stops jackd from "buzzing" or
"humming" when the last samples from a client weren't true silence.
- consistently use bzero instead of memset to zero out buffers.
- add missing returns in error conditions.
JACK is a low-latency audio server, written for POSIX conformant
operating systems. It can connect a number of different applications to
an audio device, as well as allowing them to share audio between
themselves. Its clients can run in their own processes (ie. as normal
applications), or can they can run within the JACK server (ie. as a
"plugin").
JACK was designed from the ground up for professional audio work, and
its design focuses on two key areas: synchronous execution of all
clients, and low latency operation.
ok kili@