Add jack_position_t::tick_double, and flags around it (#770)
[jack2.git] / ChangeLog.rst
blob8c6c212dac75d857566cbcc1afcef4fb5c8bb625
1 ChangeLog
2 #########
4 * 1.9.19 (2021-07-15)
6   * WIP
7   * zalsa: add "-w" argument to wait for soundcard to be available
9 * 1.9.18 (2021-04-15)
11   * Add zalsa_in/out as internal client (based on zita-a2j/j2a and jack1 code)
12   * Fix jack_midi_dump deadlock on close after the jack server is restarted
13   * Fix interrupt signal for linux futex waits
14   * Fix usage of meta-data in official macOS builds (private DB errors)
15   * Log error message when cleaning previous DB (macOS and Windows)
17 * 1.9.17 (2021-01-15)
19   * Fix jack_control stopping after first command iteration
20   * Fix library compat/current version under macOS
21   * Fix return codes of jackd on success
22   * Ignore DB_VERSION_MISMATCH error on windows, it is expected
23   * Remove old workaround for asio4all, as it breaks with jack-router
25 External changes, related to macOS/Windows installer:
26   * Add jack-router to Windows installer, opt-in
27   * Fix registry keys for Windows, add 32bit compat ones on 64bit
28   * Support for arm64 macOS builds
29   * Show welcome and license pages on windows installer
30   * Update QjackCtl used in macOS/Windows installers to v0.9.0, with some commits cherry-picked from develop branch
32 * 1.9.16 (2020-10-16)
34   * Fix/revert a change in how meta-data definitions were exposed (regression in 1.9.15)
35   * Remove jack-router Windows code from the repository
37 * 1.9.15 (2020-10-15)
39   * Automated builds for macOS and Windows (see jackaudio/jack2-releases repository)
40   * Adapt wscript Windows build configuration to match old v1.9.11 installer
41   * Bump maximum default number of clients and ports (now 256 clients and 2048 ports)
42   * Delete various macOS and Windows-related files from the source code (no longer relevant)
43   * Mark JACK-Session as deprecated, please use NSM instead
44   * Remove unnecessary GPL include from LGPL code
45   * Split example-clients and tools, as done in JACK1 many years ago (WIP)
46   * Write Windows registry key during installation, so 3rd parties can find jackd.exe (as HKLM\\Software\\JACK\\Location)
47   * jack_control: Fix handling of dbus bytes
48   * jack_control: Return a proper exit status on DBus exception
49   * jack_property: Fix possible crash with "-l" argument usage
50   * jack_wait: Add client name option -n/--name
51   * Fix compilation of documentation
52   * Fix compilation of mixed mode with meta-data enabled
53   * Fix compilation with mingw
54   * Fix client-side crash if initial meta-data DB setup fails
55   * Fix macOS semaphore usage, so it works again
56   * Several fixes for Windows (with contributions from Kjetil S. Matheussen)
57   * Several minor fixes and grammar corrections (with contributions from Adam Miartus and Timo Wischer)
59 * 1.9.14 (2019-10-28)
61   * Fix ARM build
62   * Fix mixed mode build when meta-data is enabled
63   * Fix blocking DBus device reservation, so it plays nice with others (like PipeWire)
64   * Use python3 for the waf build scripts
66 * 1.9.13 (2019-10-06)
68   * Meta-data API implementation. (and a few tools updated with support for it)
69   * Correct GPL licence to LGPL for files needed to build libjack.
70   * Remove FreeBoB backend (superseded by FFADO).
71   * define JACK_LIB_EXPORT, useful for internal clients.
72   * Mark jack_midi_reset_buffer as deprecated.
73   * Add example systemd unit file
74   * Signal to systemd when jackd is ready.
75   * Set "seq" alsa midi driver to maximum resolution possible.
76   * Fix loading internal clients from another internal client.
77   * Code cleanup and various fixes. (too many to mention here, see git log for details)
79 * 1.9.12 (2017-12-13)
81   * Fix Windows build issues.
82   * Fix build with gcc-7.
83   * Show hint when DBus device reservation fails.
84   * Add support for internal session files.
86 * 1.9.11-RC1 (2017-06-13)
88   * Various corrections in NetJack2 code. Partial buffers can now be
89     transmitted with libjacknet API.
90   * Including S24_LE/BE formats to linux ALSA driver.
91   * More robust shared memory allocator.
92   * Allow autostart of jackd on OSX where device-names can contain spaces.
93   * Correct CoreAudio devices aggregation code.
94   * Waf and wscripts improvement and update.
95   * More flexible RT priority setup on Windows.
96   * New JackProxyDriver.
97   * Various fixes in JACK MIDI code.
98   * Fix return value of SetTimebaseCallback().
99   * Correct netmanager latency reporting.
100   * Implement new jack_port_rename and JackPortRenameCallback API.
101   * For OSX El Capitan support, use of Posix semaphore and move of Frameworks
102     in /Library folder.
103   * Fix CPU hogging of the midi_thread().
104   * Release audio devices when alsa_driver_new fails.
105   * String management fix.
106   * Correct JackDriver::Open: call to fGraphManager->SetBufferSize has to use
107     current fEngineControl->fBufferSize value.
108   * Use ARM neon intrinsics for AudioBufferMixdown.
109   * Fix Netjack alignment.
110   * Various wscript improvements and cleanup.
111   * Fix initialization of several class variables.
112   * Heap-allocate client matrix in topo sort.
113   * Add a toggle command to transport utility, to allow toggling between play
114     and stop state.
115   * Avoid side effects from parsing of "version" option in jackd.
116   * Allow firewire device be selected via -d.
117   * Add ARM-NEON acceleration for all non-dithering sample conversion
118     functions.
119   * Add jack_simdtest utility.
120   * Use Linux futex as JackSynchro.
121   * Add autoclose option to jack_load.
123 * 1.9.10 (2014-07-19)
125   * More robust code in JackPortAudioDriver to handle buffer size change and
126     backend switching.
127   * Fix bus error on ARM platforms.
128   * Dynamically scan and print backend and internal names in jackd.
129   * CoreMIDI driver fixes.
130   * Rework NetJack2 code (OPUS codec on OSX, latency management, libjacknet
131     code).
132   * Correct auto-connect for audioadapter.
133   * Add IIO driver.
134   * Merge of Nedko no-self-connect branch.
135   * Fix freewheel mode.
136   * JackServer::SwitchMaster now correctly notify buffer_size and sample_rate
137     changes, cleanup/improvements in JackNetDriver.
138   * Tim Mayberry : Add support for building with mingw compiler.
139   * Merge of Kim Jeong Yeon Android branch.
140   * Partial port of metadata API.
142 * 1.9.9.5 (2012-11-26)
144   * Adrian Knoth fix in midiseq.c.
145   * Fix library symbols export issue.
146   * Cleanup drivers and internals loading code.
147   * jackctl_driver_params_parse API moved in public control.h.
148   * More general drivers/internals loading model on Windows.
149   * Factorize code the server/client request in JackRequestDecoder class.
150   * More robust server/client protocol.
151   * Implement shutdown for in server clients.
152   * Better time-out management in NetJack2.
153   * Experimental system port alias use in Windows JackRouter.
154   * Improve ShutDown in NetManager.
155   * Correct ShutDown in JackInternalClient and JackLibClient.
156   * Fix NetJack2 initialisation bug.
157   * Add EndTime function (especially for Windows).
158   * Rename JackProcessSync in JackPosixProcessSync.
159   * A bit more robust JackMessageBuffer implementation (in progress).
160   * Check server API callback from notification thread.
161   * Use a time-out in notification channel write function.
162   * Fix lock management in JackEngine.
163   * In control API, UNIX like sigset_t replaced by more abstract
164     jackctl_sigmask_t * opaque struct.
165   * Improve libjacknet master mode.
166   * Remove JACK_32_64 flag, so POST_PACKED_STRUCTURE now always used.
167     POST_PACKED_STRUCTURE used for jack_latency_range_t type.
168   * Rework JackMessageBuffer. [firewire]
170   * Introduce UpdateLatencies() in FFADO backend. [firewire]
172   * Allow FFADO backend to change the buffer size.
173   * Update waf.
174   * New jack_get_cycle_times() implementation from Fons Adriennsen.
175   * Align buffers to 32 byte boundaries to allow AVX processing.
176   * Extend jack_control to have parameter reset commands.
177   * Fix alsa driver parameter order.
178   * Control API: Enforce driver/internal parameter order.
179   * Fix in ALSA adapter.
180   * Devin Anderson patch for Jack/CoreMIDI duplicated messages.
181   * Change framework installation hierarchy for OSX Mountain Lion.
182   * Update JackCoreAudioDriver and JackCoreAudioAdapter with more recent API.
183   * jack_control: fix epr command.
184   * Add opus support to NetJack2.
185   * More robust channel mapping handling in JackCoreAudioDriver.
186   * netjack1/netone opus support.
187   * controlapi: fix double free on master switch.
188   * Use string ids in the alsa device list.
189   * netjack/opus: don't re-init en/decoders.
190   * Correct JackPortAudioDriver::Open: special case for ASIO drivers.
192 * 1.9.8 (2011-12-19)
194   * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers:
195     alsarawmidi, ffado, coremidi and winmme).
196   * Correction in jackdmp.cpp: notify_server_stop should be done after server
197     destruction.
198   * Correct driver lifetime management.
199   * Add XRun detection in PortAudio driver.
200   * CELT code for NetJack2.
201   * Merge branch switch-master-port-registration-notifications: correct driver
202     port registration.
203   * Libjacknet in progress.
204   * Correct MIDI in NetJack2.
205   * Correct OSX real-time thread setup.
206   * Correct rd_acquire in dbus code.
207   * Correct NetJack2 connection handling.
208   * SaveConnections/RestoreConnections in NetDriver and JackAudioDriver.
209   * Special version of jack_attach_shm/jack_release_shm on client side for
210     POSIX shared memory, to solve a memory leak issue.
211   * Another round of code improvements to handle completely buggy Digidesign
212     CoreAudio user-land driver.
213   * Special CATCH_CLOSE_EXCEPTION_RETURN to handle Close API calls.
214   * Add JACK_NETJACK_PORT and JACK_NETJACK_MULTICAST environment variables for
215     NetJack2. NetJack2 now only send data on network only is ports are
216     connected both sides.
217   * Fix for "starting two instances of same app in parallel does not work"
218     bug.
219   * Enable explicit channel mapping in CoreAudio driver.
220   * New JackTimedDriver class to be used by JackDummyDriver, JackNetDriver and
221     JackNetOneDriver classes.
222   * More robust code in synchronization primitives and in JackMessageBuffer.
223   * More robust Control API implementation. Add jackctl_driver_get_type in
224     Control API.
225   * Singleton behaviour for JackCoreMidiDriver and JackWinMMEDriver.
226   * John Emmas patch for DSP CPU computation.
227   * John Emmas Windows server launching patch.
228   * Fix jack_set_port_name API.
229   * Enable local access in NetJack2 code.
230   * Dynamic port management in JACK/CoreMidi bridge.
232 * 1.9.7 (2011-03-30)
234   * Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend.
235   * Correct JackServer::Open to avoid a race when control API is used on OSX.
236   * Improve backend error handling: fatal error returned by Read/Write now
237     cause a Process failure (so a thread exit for blocking backends).
238     Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and
239     FFADO backends.
240   * In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start.
241   * Correct symbols export in backends on OSX. ALSA backend: suspend/resume
242     handling.
243   * Correct dummy driver.
244   * Adrian Knoth jack_lsp patch.
245   * Remove JackPortIsActive flag.
246   * New latency API implementation.
247   * ComputeTotalLatencies now a client/server call.
248   * Add latent test client for latency API.
249   * Also print playback and capture latency in jack_lsp.
250     jack_client_has_session_callback implementation.
251   * Check requested buffer size and limit to 1..8192 - avoids weird behaviour
252     caused by jack_bufsize foobar.
253   * jack_port_type_get_buffer_size implementation.
254   * Stop using alloca and allocate buffer on the heap for alsa_io.
255   * Rename jdelay to jack_iodelay as per Fons' request.
256   * Call buffer size callback in activate (actually this is done on client side
257     in the RT thread Init method).
258   * Add jack_midi_dump client.
259   * Synchronize net JACK1 with JACK1 version.
260   * Synchronize jack_connect/jack_disconnect with JACK1 version.
261   * Correct JackNetMaster::SetBufferSize.
262   * Use jack_default_audio_sample_t instead of float consistently, fix ticket
263     #201.
264   * -X now allows to add several slave backends, add -I to load several
265     internal clients.
266   * Rework internal slave driver management, JackServerGlobals now handle same
267     parameters as jackdmp.
268   * Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest
269     API.
270   * Devin Anderson server-ctl-proposal branch merged on trunk: improved control
271     API, slave backend reworked. Implement renaming in JackDriver::Open to
272     avoid name collision (thanks Devin Anderson).
273   * Correct alsa_driver_restart (thanks Devin Anderson). Correction of
274     jack_connect/jack_disconnect: use of jack_activate and volatile keyword for
275     thread shared variable.
276   * Correction of JackNetOneDriver for latest CELT API.
277   * Synchronize JackWeakAPI.cpp with new APIs.
279 * 1.9.6 (2010-08-30)
281   * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are
282     described, takes default input and output and aggregate them.
283   * Correct JackGraphManager::DeactivatePort.
284   * Correct JackMachServerChannel::Execute : keep running even in error cases.
285     Raise JACK_PROTOCOL_VERSION number.
286   * Arnold Krille firewire patch.
287   * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127
288     otherwise some audio drivers cannot be loaded on OSX.
289   * Fix some file header to have library side code use LGPL.
290   * On Windows, now use TRE library for regexp (BSD license instead of GPL
291     license).
292   * ffado-portname-sync.patch from ticket #163 applied.
293   * Remove call to exit in library code.
294   * Make jack_connect/jack_disconnect wait for effective port
295     connection/disconnection.
296   * Add tests to validate intclient.h API.
297   * On Linux, inter-process synchronization primitive switched to POSIX
298     semaphore.
299   * In JackCoreAudioDriver, move code called in MeasureCallback to be called
300     once in IO thread.
301   * David Garcia Garzon netone patch.
302   * Fix from Fernando Lopez-Lezcano for compilation on fc13.
303   * Fix JackPosixSemaphore::TimedWait : same behavior as
304     JackPosixSemaphore::Wait regarding EINTR.
305   * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch.
306   * Arnold Krille firewire snooping patch.
307   * Jan Engelhardt patch for get_cycles on SPARC.
308   * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch
309     from ticket 177.
310   * Adrian Knoth fix for linux cycle.h (ticket 188).
311   * In JackCoreAudioDriver, fix an issue when no value is given for input.
313 * 1.9.5 (2010-02-12)
315   * Dynamic choice of maximum port number.
316   * More robust sample rate change handling code in JackCoreAudioDriver.
317   * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes
318     between periods (and more).
319   * Fix port_rename callback: now both old name and new name are given as
320     parameters.
321   * Special code in JackCoreAudio driver to handle completely buggy Digidesign
322     CoreAudio user-land driver.
323   * Ensure that client-side message buffer thread calls thread_init callback
324     if/when it is set by the client (backport of JACK1 rev 3838).
325   * Check dynamic port-max value.
326   * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin
327     Anderson).
328   * Josh Green ALSA driver capture only patch.
329   * When threads are cancelled, the exception has to be rethrown.
330   * Use a QUIT notification to properly quit the server channel, the server
331     channel thread can then be 'stopped' instead of 'canceled'.
332   * Mario Lang alsa_io time calculation overflow patch. Shared memory manager
333     was calling abort in case of fatal error, now return an error in caller.
334   * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts
335     to output SVG instead of PDF.
337 * 1.9.4 (2009-11-19)
339   * Solaris boomer backend now working in capture or playback only mode.
340   * Add a -G parameter in CoreAudio backend (the computation value in RT
341     thread expressed as percent of period).
342   * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and
343     output in Solaris boomer backend.
344   * Big endian bug fix in memops.c.
345   * Fix issues in JackNetDriver::DecodeTransportData and
346     JackNetDriver::Initialize.
347   * Correct CPU timing in JackNetDriver, now take cycle begin time after Read.
348   * Simplify transport in NetJack2: master only can control transport.
349   * Change CoreAudio notification thread setup for OSX Snow Leopard.
350   * Correct server temporary mode: now set a global and quit after
351     server/client message handling is finished.
352   * Add a string parameter to server ==> client notification, add a new
353     JackInfoShutdownCallback type.
354   * CoreAudio backend now issue a JackInfoShutdownCallback when an
355     unrecoverable error is detected (sampling rate change, stream
356     configuration change).
357   * Correct jackdmp.cpp (failures case were not correct..).
358   * Improve JackCoreAudioDriver code.
359   * Raise default port number to 2048.
360   * Correct JackProcessSync::LockedTimedWait.
361   * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code.
362   * Now start server channel thread only when backend has been started (so in
363     JackServer::Start).
364   * Should solve race conditions at start time.
365   * jack_verbose moved to JackGlobals class.
366   * Improve aggregate device management in JackCoreAudioDriver: now a
367     "private" device only and cleanup properly.
368   * Aggregate device code added to JackCoreAudioAdapter.
369   * Implement "hog mode" (exclusive access of the audio device) in
370     JackCoreAudioDriver.
371   * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1.
372   * Dynamic system version detection in JackCoreAudioDriver to either create
373     public or private aggregate device.
374   * In JackCoreAudioDriver, force the SR value to the wanted one *before*
375     creating aggregate device (otherwise creation will fail).
376   * In JackCoreAudioDriver, better cleanup of AD when intermediate open
377     failure.
378   * In JackCoreAudioDriver::Start, wait for the audio driver to effectively
379     start (use the MeasureCallback).
380   * In JackCoreAudioDriver, improve management of input/output channels: -1 is
381     now used internally to indicate a wanted max value.
382   * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and
383     cleanup.
384   * Correct crash bug in JackAudioAdapterInterface when not input is used in
385     adapter (temporary fix).
386   * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one.
387   * JACK_SCHED_POLICY switched to SCHED_FIFO.
388   * Now can aggregate device that are themselves AD.
389   * No reason to make jack_on_shutdown deprecated, so revert the incorrect
390     change.
391   * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread
392     field.
393   * Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling
394     thread.
395   * Correctly save and restore RT mode state in freewheel mode.
396   * Correct freewheel code on client side.
397   * Fix AcquireRealTime and DropRealTime: now distinguish when called from
398     another thread (AcquireRealTime/DropRealTime) and from the thread itself
399     (AcquireSelfRealTime/DropSelfRealTime).
400   * Correct JackPosixThread::StartImp: thread priority setting now done in the
401     RT case only.
402   * Correct JackGraphManager::GetBuffer for the "client loop with one
403     connection" case: buffer must be copied.
404   * Correct JackInfoShutdownCallback prototype, two new
405     JackClientProcessFailure and JackClientZombie JackStatus code.
406   * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d
407     parameter.
408   * Better memory allocation error checking on client (library) side.
409   * Better memory allocation error checking in ringbuffer.c, weak import
410     improvements.
411   * Memory allocation error checking for jack_client_new and jack_client_open
412     (server and client side).
413   * Memory allocation error checking in server for RPC.
414   * Simplify server temporary mode: now use a JackTemporaryException.
415   * Lock/Unlock shared memory segments (to test...).
416   * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is
417     now default, usable backend given vie platform.
418   * In JackCoreAudio driver, (possibly) clock drift compensation when needed
419     in aggregated devices.
420   * In JackCoreAudio driver, clock drift compensation in aggregated devices
421     working.
422   * In JackCoreAudio driver, clock drift compensation semantic changed a bit:
423     when on, does not activate if not needed (same clock domain).
424   * Sync JackCoreAudioAdapter code with JackCoreAudioDriver.
426 * 1.9.3 (2009-07-21)
428   * New JackBoomerDriver class for Boomer driver on Solaris.
429   * Add mixed 32/64 bits mode (off by default).
430   * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver).
431   * In ALSA audio card reservation code, tries to open the card even if
432     reservation fails.
433   * Clock source setting on Linux.
434   * Add jackctl_server_switch_master API.
435   * Fix transport callback (timebase master, sync) issue when used after
436     jack_activate (RT thread was not running).
437   * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API.
438   * Cleanup "loopback" stuff in server.
439   * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c.
440   * New jack_free function added in jack.h.
441   * Reworked Torben Hohn fix for server restart issue on Windows.
442   * Correct jack_set_error_function, jack_set_info_function and
443     jack_set_thread_creator functions.
444   * Correct JackFifo::TimedWait for EINTR handling.
445   * Move DBus based audio device reservation code in ALSA backend compilation.
446   * Correct JackTransportEngine::MakeAllLocating, sync callback has to be
447     called in this case also.
448   * NetJack2 code: better error checkout, method renaming.
449   * Tim Bechmann patch: hammerfall, only release monitor thread, if it has
450     been created.
451   * Tim Bechmann memops.c optimization patches.
452   * In combined --dbus and --classic compilation code, use PulseAudio
453     acquire/release code.
454   * Big rewrite of Solaris boomer driver, seems to work in duplex mode at
455     least.
456   * Loopback backend reborn as a dynamically loadable separated backend.
458 * 1.9.2 (2009-02-11)
460   * Solaris version.
461   * New "profiling" tools.
462   * Rework the mutex/signal classes.
463   * Support for BIG_ENDIAN machines in NetJack2.
464   * D-BUS based device reservation to better coexist with PulseAudio on Linux.
465   * Add auto_connect parameter in netmanager and netadapter.
466   * Use Torben Hohn PI controler code for adapters.
467   * Client incorrect re-naming fixed : now done at socket and fifo level.
468   * Virtualize and allow overriding of thread creation function, to allow Wine
469     support (from JACK1).
471 * 1.9.1 (2008-11-14)
473   * Fix jackctl_server_unload_internal.
474   * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access
475     a died server.
476   * Libjack shutdown handler does not "deactivate" (fActive = false) the
477     client anymore, so that jack_deactivate correctly does the job later on.
478   * Better isolation of server and clients system resources to allow starting
479     the server in several user account at the same time.
480   * Report ringbuffer.c fixes from JACK1.
481   * Client and library global context cleanup in case of incorrect shutdown
482     handling (that is applications not correctly closing client after server
483     has shutdown).
484   * Use JACK_DRIVER_DIR variable in internal clients loader.
485   * For ALSA driver, synchronize with latest JACK1 memops functions.
486   * Synchronize JACK2 public headers with JACK1 ones.
487   * Implement jack_client_real_time_priority and
488     jack_client_max_real_time_priority API.
489   * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117.
490   * Cleanup server starting code for clients directly linked with
491     libjackserver.so.
492   * JackMessageBuffer was using thread "Stop" scheme in destructor, now use
493     the safer thread "Kill" way.
494   * Synchronize ALSA backend code with JACK1 one.
495   * Set default mode to 'slow' in JackNetDriver and JackNetAdapter.
496   * Simplify audio packet order verification.
497   * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation
498     and JackNetMasterInterface::DataRecv if synch packet is received, various
499     cleanup.
500   * Better recovery of network overload situations, now "resynchronize" by
501     skipping cycles.".
502   * Support for BIG_ENDIAN machines in NetJack2.
503   * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports.
504   * Support for "-h" option in internal clients to print the parameters.
505   * In NetJack2, fix a bug when capture or playback only channels are used.
506   * Add a JACK_INTERNAL_DIR environment variable to be used for internal
507     clients.
508   * Add a resample quality parameter in audioadapter.
509   * Now correctly return an error if JackServer::SetBufferSize could not
510     change the buffer size (and was just restoring the current one).
511   * Use PRIu32 kind of macro in JackAlsaDriver again.
512   * Add a resample quality parameter in netadapter.
514 * 1.9.0 (2008-03-18)
516   * Waf based build system: Nedko Arnaudov, Grame for preliminary OSX support.
517   * Control API, dbus based server control access: Nedko Arnaudov, Grame.
518   * NetJack2 components (in progress): jack_net backend, netmanager,
519     audioadapter, netadapter : Romain Moret, Grame.
520   * Code restructuring to help port on other architectures: Michael Voigt.
521   * Code cleanup/optimization: Tim Blechmann.
522   * Improve handling of server internal clients that can now be
523     loaded/unloaded using the new server control API: Grame.
524   * A lot of bug fix and improvements.
526 * 0.72 (2008-04-10)
528 * 0.71 (2008-02-14)
530   * Add port register/unregister notification in JackAlsaDriver.
531   * Correct JACK_port_unregister in MIDI backend.
532   * Add TimeCallback in JackDebugClient class.
533   * Correct jack_get_time propotype.
534   * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead
535     of ServerAsyncCall.
536   * Better documentation in jack.h. libjackdmp.so renamed to
537     libjackservermp.so and same for OSX framework.
538   * Define an internal jack_client_open_aux needed for library wrapper feature.
539   * Remove unneeded jack_port_connect API.
540   * Correct jack_port_get_connections function (should return NULL when no
541     connections).
542   * In thread model, execute a dummy cycle to be sure thread has the correct
543     properties (ensure thread creation is finished).
544   * Fix engine real-time notification (was broken since ??).
545   * Implements wrapper layer.
546   * Correct jack_port_get_total_latency.
547   * Correct all backend playback port latency in case of "asynchronous" mode
548     (1 buffer more).
549   * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread
550     API.
551   * RT scheduling for OSX thread (when used in dummy driver).
552   * Add -L (extra output latency in aynchronous mode) in CoreAudio driver.
553   * New JackLockedEngine decorator class to serialize access from ALSA Midi
554     thread, command thread and in-server clients.
555   * Use engine in JackAlsaDriver::port_register and
556     JackAlsaDriver::port_unregister.
557   * Fix connect notification to deliver *one* notification only.
558   * Correct JackClient::Activate so that first kGraphOrderCallback can be
559     received by the client notification thread.
560   * New jack_server_control client to test notifications when linked to the
561     server library.
562   * Synchronise transport.h with latest jackd version (Video handling).
563   * Transport timebase fix.
564   * Dmitry Baikov patch for alsa_rawmidi driver.
565   * Pieter Palmers patch for FFADO driver.
566   * Add an Init method for blocking drivers to be decorated using
567     JackThreadedDriver class.
568   * Correct PortRegister, port name checking must be done on server side.
569   * Correct a missing parameter in the usage message of jack_midiseq.
570   * New SetNonBlocking method for JackSocket.
571   * Correct a dirty port array issue in JackGraphManager::GetPortsAux.
573 * 0.70 (2008-01-24)
575   * Updated API to match jack 0.109.0 version.
576   * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2.
577   * Latest jack_lsp code from jack SVN.
578   * Add jack_mp_thread_wait client example.
579   * Add jack_thread_wait client example.
580   * Remove checking thread in CoreAudio driver, better device state change
581     recovery strategy: the driver is stopped and restarted.
582   * Move transport related methods from JackEngine to JackServer.
585   * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer,
586     use of Apple Accelerate framework on OSX.
587   * Remove use of assert in JackFifo, JackMachSemaphore, and
588     JackPosixSemaphore: print an error instead.
589   * Correct "server_connect": close the communication channel.
590   * More robust external API.
591   * Use SetAlias for port naming.
592   * Use jackd midi port naming scheme.
593   * Notify ports unregistration in JackEngine::ClientCloseAux.
594   * Fix in JackClient::Error(): when RT thread is failing and calling
595     Shutdown, Shutdown was not desactivating the client correctly.
597 * 0.69
599   * On OSX, use CFNotificationCenterPostNotificationWithOptions with
600     kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for
601     server ==> JackRouter plugin notification.
602   * On OSX, use jack server name in notification system.
603   * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and
604     JackAudioDriver::SetSampleRate.
605   * Correct JackMachNotifyChannel::ClientNotify.
606   * Correct bug in CoreAudio driver sample rate management.
607   * Add a sample_rate change listener in CoreAudio driver.
608   * Correct sample_rate management in JackCoreAudioDriver::Open.
609   * Better handling in sample_rate change listener.
610   * Pieter Palmers FFADO driver and scons based build.
611   * Pieter Palmers second new build system: scons and Makefile based build.
612   * Tim Blechmann scons patch.
613   * Change string management for proper compilation with gcc 4.2.2.
614   * JackLog cleanup.
615   * Cleanup in CoreAudio driver.
616   * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim
617     Blechmann patch for scons install.
618   * Dmitry Baikov MIDI patch: alsa_seqmidi and alsa_rammidi drivers.
619   * CoreAudio driver improvement: detect and notify abnormal situations
620     (stopped driver in case of SR change...).
622 * 0.68 (2007-10-16)
624   * Internal loadable client implementation, winpipe version added.
625   * Reorganize jack headers.
626   * Improve Linux install/remove scripts.
627   * Use LIB_DIR variable for 64 bits related compilation (drivers location).
628   * More generic Linux script.
629   * Correct jack_acquire_real_time_scheduling on OSX.
630   * Merge of Dmitry Baikov MIDI branch.
631   * Correct JackGraphManager::GetPortsAux to use port type.
632   * Remove JackEngineTiming class: code moved in JackEngineControl.
633   * Add midiseq and midisine examples.
634   * Cleanup old zombification code.
635   * Linux Makefile now install jack headers.
636   * Use of JACK_CLIENT_DEBUG environment variable to activate debug client
637     mode.
638   * Definition of JACK_LOCATION variable using -D in the Makefile.
639   * Restore jack 0.103.0 MIDI API version.
640   * Fix a bug in freewheel management in async mode: drivers now receive the
641     kStartFreewheelCallback and kStopFreewheelCallback notifications.
642   * Server and user directory related code moved in a JackTools file.
643   * Client name rewriting to remove path characters (used in fifo naming).
644   * Correct ALSA driver Attach method: internal driver may have changed the
645     buffer_size and sample_rate values.
646   * Add JackWinSemaphore class.
647   * Add an implementation for obsolete jack_internal_client_new and
648     jack_internal_client_close.
649   * Add missing jack_port_type_size.
650   * Use of JackWinSemaphore instead of JackWinEvent for inter-process
651     synchronization.
652   * Correct types.h for use with MINGW on Windows.
653   * Move OSX start/stop notification mechanism in Jackdmp.cpp.
654   * Correct CheckPort in JackAPI.cpp.
656 * 0.67 (2007-09-28)
658   * Correct jack_client_open "status" management.
659   * Rename server_name from "default" to "jackdmp_default" to avoid conflict
660     with regular jackd server.
661   * Fix a resource leak issue in JackCoreAudioDriver::Close().
662   * Better implement "jack_client_open" when linking a client with the server
663     library.
664   * Correct "jack_register_server" in shm.c.
665   * Add missing timestamps.c and timestamps.h files.
666   * Correctly export public headers in OSX frameworks.
667   * Suppress JackEngine::ClientInternalCloseIm method.
668   * Use .jackdrc file (instead of .jackdmprc).
669   * Install script now creates a link "jackd ==> jackdmp" so that automatic
670     launch can work correctly.
671   * Paul Davis patch for -r (--replace-registry) feature.
672   * Internal loadable client implementation.
673   * Fix JackEngine::Close() method.
674   * Windows JackRouter.dll version 0.17: 32 integer sample format.
676 * 0.66 (2007-09-06)
678   * Internal cleanup.
679   * Windows JackRouter.dll version 0.16: use of "jack_client_open" API to
680     allow automatic client renaming, better Windows VISTA support, new
681     JackRouter.ini file.
683 * 0.65 (2007-08-30)
685   * Fix backend port alias management (renaming in system:xxx).
686   * Fix a bug in JackLibClient::Open introduced when adding automatic client
687     renaming.
688   * Fix a bug in jack_test.
689   * Correct JackShmMem destructor.
690   * Correct end case in JackClient::Execute.
691   * Correct JackMachSemaphore::Disconnect.
692   * Implement server temporary (-T) mode.
693   * Make "Rename" a method of JackPort class, call it from driver Attach
694     method.
695   * Server/library protocol checking implementation.
697 * 0.64 (2007-07-26)
699   * Checking in the server to avoid calling the clients if no callback are
700     registered.
701   * Correct deprecated jack_set_sample_rate_callback to return 0 instead of
702     -1.
703   * Dmitry Baikov buffer size patch.
704   * Correct notification for kActivateClient event. Correct
705     JackEngine::ClientCloseAux (when called from
706     JackEngine::ClientExternalOpen).
707   * Correct JackWinEvent::Allocate.
708   * Automatic client renaming.
709   * Add "systemic" latencies management in CoreAudio driver.
710   * Automatic server launch.
711   * Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter.
713 * 0.63 (2007-04-05)
715   * Correct back JackAlsaDriver::Read method.
716   * Dmitry Baikov patch for JackGraphManager.cpp. Merge JackGraphManager Remove
717     and Release method in a unique Release method.
718   * Dmitry Baikov jackmp-time patch : add jack_get_time, jack_time_to_frames,
719     jack_frames_to_time. Add missing -D__SMP__in OSX project.  Add new
720     jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API.
721   * Steven Chamberlain patch to fix jack_port_by_id export.
722   * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type
723     behaviour in jack_test.cpp tool. Add jack_set_client_registration_callback
724     API. Add "callback exiting" and "jack_frame_time" tests in jack_test.
726 * 0.62 (2007-02-16)
728   * More client debug code: check if the client is still valid in every
729     JackDebugClient method, check if the library context is still valid in
730     every API call.
731   * Uses a time out value of 10 sec in freewheel mode (like jack).
732   * More robust activation/deactivation code, especially in case of client
733     crash.
734   * New LockAllMemory and UnlockAllMemory functions.
735   * Use pthread_attr_setstacksize in JackPosixThread class.
736   * Add Pieter Palmers FreeBob driver.
737   * Thibault LeMeur ALSA driver patch.
738   * Thom Johansen fix for port buffer alignment issues.
739   * Better error checking in PortAudio driver.
741 * 0.61 (2006-12-18)
743   * Tom Szilagyi memory leak fix in ringbuffer.c.
744   * Move client refnum management in JackEngine.
745   * Shared_ports renamed to shared_graph.
746   * Add call to the init callback (set up using the
747     jack_set_thread_init_callback API) in Real-Time and Notification threads.
748   * Define a new 'kActivateClient' notification.
749   * New server/client data transfer model to fix a 64 bits system bug.
750   * Fix a device name reversal bug in ALSA driver.
751   * Implement thread.h API.
753 * 0.60 (2006-11-23)
755   * Improve audio driver synchronous code to better handle possible time-out
756     cases.
757   * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case).
758   * Correct JackEngine::ClientExternalNew.
760 * 0.59 (2006-09-22)
762   * Various fixes in Windows version.
763   * Signal handling in the Windows server.
764   * Improved JackRouter ASIO/Jack bridge on Windows.
765   * Rename global "verbose" in "jack_verbose" to avoid symbol clash with
766     PureData.
767   * Add a new cpu testing/loading client.
768   * Correct server SetBufferSize in case of failure.
769   * Correct PortAudio driver help.
770   * Use -D to setup ADDON_DIR on OSX and Linux.
771   * Synchronize ALSA backend with jack one.
773 * 0.58 (2006-09-06)
775   * Correct a bug introduced in 0.55 version that was preventing coreaudio
776     audio inputs to work.
777   * Restructured code structure after import on svn.
779 * 0.57
781   * Correct bug in Mutex code in JackClientPipeThread::HandleRequest.
782   * ASIO JackRouter driver supports more applications.
783   * Updated HTML documentation.
784   * Windows dll binaries are compiled in "release" mode.
786 * 0.56
788   * Correct SetBufferSize in coreaudio driver, portaudio driver and
789     JackServer.
790   * Real-time notifications for Windows version.
791   * In the PortAudio backend, display more informations for installed WinMME,
793   * DirectSound and ASIO drivers.
795 * 0.55
797   * Windows version.
798   * Correct management of monitor ports in ALSA driver.
799   * Engine code cleanup.
800   * Apply Rui patch for more consistent parameter naming in coreaudio driver.
801   * Correct JackProcessSync::TimedWait: time-out was not computed correctly.
802   * Check the return code of NotifyAddClient in JackEngine. 
804 * 0.54
806   * Use the latest shm implementation that solve the uncleaned shm segment
807     problem on OSX.
808   * Close still opened file descriptors (report from Giso Grimm). Updated html
809     documentation.
811 * 0.53
813   * Correct JackPilotMP tool on OSX.
814   * Correct CoreAudio driver for half duplex cases.
815   * Fix a bug in transport for "unactivated" clients.
816   * Fix a bug when removing "unactivated" clients from the server. Tested on
817     Linux/PPC.
819 * 0.52
821   * Universal version for Mac Intel and PPC.
822   * Improvement of CoreAudio driver for half duplex cases.
824 * 0.51
826   * Correct bugs in transport API implementation.
828 * 0.50
830   * Transport API implementation.
832 * 0.49
834   * Internal connection manager code cleanup.
836 * 0.48
838   * Finish software monitoring implementation for ALSA and CoreAudio drivers.
839   * Simpler shared library management on OSX.
841 * 0.47
843   * More fix for 64 bits compilation.
844   * Correct ALSA driver.
845   * Create a specific folder for jackdmp drivers.
846   * Use /dev/shm as default for fifo and sockets.
847   * "Install" and "Remove" script for smoother use with regular jack.
849 * 0.46
851   * Fix a bug in loop management.
852   * Fix a bug in driver loading/unloading code.
853   * Internal code cleanup for better 64 bits architecture support.
854   * Compilation on OSX/Intel.
855   * Add the -d option for coreaudio driver (display CoreAudio devices internal
856     name).
858 * 0.45
860   * Script to remove the OSX binary stuff.
861   * Correct an export symbol issue that was preventing QjackCtl to work on OSX.
862   * Fix the consequences of the asynchronous semantic of
863     connections/disconnections.
865 * 0.44
867   * Patch from Dmitry Daikov: use clock_gettime by default for timing.
868   * Correct dirty buffer issue in CoreAudio driver. Updated doc.
870 * 0.43
872   * Correct freewheel mode.
873   * Optimize ALSA and coreaudio drivers.
874   * Correct OSX installation script.
876 * 0.42
878   * Patch from Nick Mainsbridge.
879   * Correct default mode for ALSA driver.
880   * Correct XCode project.
882 * 0.41
884   * Add the ALSA MMAP_COMPLEX support for ALSA driver.
885   * Patch from Dmitry Daikov: compilation option to choose between
886     "get_cycles" and "gettimeofday" to measure timing.
888 * 0.4
890   * Linux version, code cleanup, new -L parameter to activate the loopback
891     driver (see Documentation), a number of loopback ports can be defined.
892     Client validation tool.
894 * 0.31
896   * Correct bug in mixing code that caused Ardour + jackdmp to crash...
898 * 0.3
900   * Implement client zombification + correct feedback loop management + code
901     cleanup.
903 * 0.2
905   * Implements jack_time_frame, new -S (sync) mode: when "synch" mode is
906     activated, the jackdmp server waits for the graph to be finished in the
907     current cycle before writing the output buffers. Note: To experiment with
908     the -S option, jackdmp must be launched in a console.
910 * 0.1
912   * First published version