Skip navigation.
Home

JACK 1.9.4 released

Continuing the JACK2 serie: Jack 1.9.4 is API synched with JACK 0.118.0. Fix a lot of more or less important bugs, especially on OSX with much better support off CoreAudio devices (input/output devices "internally" aggregated, hog mode...etc...).

- Solaris boomer backend now working in capture or playback only mode.
- Add a -G parameter in CoreAudio backend (the computation value in RT thread expressed as percent of period).
- Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and output in Solaris boomer backend.
- Big endian bug fix in memops.c.
- Fix issues in JackNetDriver::DecodeTransportData and JackNetDriver::Initialize.
- Correct CPU timing in JackNetDriver, now take cycle begin time after Read.
- Simplify transport in NetJack2: master only can control transport.
- Change CoreAudio notification thread setup for OSX Snow Leopard.
- Correct server temporary mode : now set a global and quit after server/client message handling is finished.
- Add a string parameter to server ==> client notification, add a new JackInfoShutdownCallback type.
- CoreAudio backend now issue a JackInfoShutdownCallback when an unrecoverable error is detected (sampling rate change, stream configuration change…).
- Correct jackdmp.cpp (failures case were not correct..).
- Improve JackCoreAudioDriver code.
- Raise default port number to 2048.
- Correct JackProcessSync::LockedTimedWait.
- Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code.
- Now start server channel thread only when backend has been started (so in JackServer::Start).
- Should solve race conditions at start time. jack_verbose moved to JackGlobals class.
- Improve aggregate device management in JackCoreAudioDriver : now a "private" device only and cleanup properly.
- Aggregate device code added to JackCoreAudioAdapter.
- Implement "hog mode" (exclusive access of the audio device) in JackCoreAudioDriver.
- Fix jack_set_sample_rate_callback to have he same behavior as in JACK1.
- Dynamic system version detection in JackCoreAudioDriver to either create public or private aggregate device. I
- n JackCoreAudioDriver, force the SR value to the wanted one *before* creating aggregate device (otherwise creation will fail). - In JackCoreAudioDriver, better cleanup of AD when intermediate open failure. In JackCoreAudioDriver::Start, wait for the audio driver to effectively start (use the MeasureCallback).
- In JackCoreAudioDriver, improve management of input/output channels: -1 is now used internally to indicate a wanted max value.
- In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and cleanup.
- Correct crash bug in JackAudioAdapterInterface when not input is used in adapter (temporary fix…).
- Sync JackCoreAudioAdapter code on JackCoreAudioDriver one.
- JACK_SCHED_POLICY switched to SCHED_FIFO.
- Now can aggregate device that are themselves AD.
- No reason to make jack_on_shutdown deprecated, so revert the incorrect change.
- Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread field.
- Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling thread.
- Correctly save and restore RT mode state in freewheel mode.
- Correct freewheel code on client side.
- Fix AcquireRealTime and DropRealTime: now distinguish when called from another thread (AcquireRealTime/DropRealTime) and from the thread itself (AcquireSelfRealTime/DropSelfRealTime).
- Correct JackPosixThread::StartImp : thread priority setting now done in the RT case only.
- Correct JackGraphManager::GetBuffer for the "client loop with one connection" case : buffer must be copied.
- Correct JackInfoShutdownCallback prototype, two new JackClientProcessFailure and JackClientZombie JackStatus code.
- Correct JackCoreAudio driver when empty strings are given as -C, -P or -d parameter.
- Better memory allocation error checking on client (library) side.
- Better memory allocation error checking in ringbuffer.c, weak import improvements.
- Memory allocation error checking for jack_client_new and jack_client_open (server and client side). Memory allocation error checking in server for RPC. Simplify server temporary mode : now use a JackTemporaryException.
- Lock/Unlock shared memory segments (to test...).
- Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is now default, usable backend given vie platform.
- In JackCoreAudio driver, (possibly) clock drift compensation when needed in aggregated devices.
- In JackCoreAudio driver, clock drift compensation in aggregated devices working.
- In JackCoreAudio driver, clock drift compensation semantic changed a bit : when on, does not activate if not needed (same clock domain).
- Sync JackCoreAudioAdapter code with JackCoreAudioDriver.