61 lines
3.9 KiB
Plaintext
61 lines
3.9 KiB
Plaintext
---------------------
|
|
Jackdmp Todo list
|
|
---------------------
|
|
|
|
|
|
2008-03-12 : Do not start the client RT thread if no callback or thread routine has been setup (no use of jack_set_process_callback or jack_set_process_thread). This require change in the server to avoid signaling the client in this case. Check direct access from server internal clients (see comment in JackInternalClient::JackInternalClient() in JackInternalClient.cpp)
|
|
|
|
2008-02-07 : Pipelining idea:
|
|
|
|
- cut the driver buffer size in n slices : clients see the divided value, server deal with the driver value, some clients may want to keep the driver buffer size (non pipelining)
|
|
- new jack_set_buffer_divisor/jack_get_buffer_divisor and jack_set_pipelining/jack_get_pipelining API
|
|
- jack_set_buffer_size changes the driver buffer size, jack_get_buffer_size get the divided value
|
|
- buffer_size callback notify the divided value for pipelining clients
|
|
|
|
2008-02-06 : Do a "fork-exec" for the server (deamon..)
|
|
|
|
2008-02-05 : Hierarchical model : having several client graph running simultaneously (Fons) with a "link" between them (AKA NetJack)
|
|
|
|
2008-01-15 : Server control API (Nedko Arnoudov): would help to develop external control applications (DBUS or OSC based...)
|
|
|
|
2007-12-16 : Dynamic backend switch, so that audio backend can be switch off and replaced by the dummy backend.
|
|
|
|
2007-10-17 : Optimize activation call graph with multiple clients in a same process
|
|
|
|
Andrzej Szombierski recently did interesting test to measure jack client activation speed in different context: jack client opened in separated processes, multiple jack clients running in the server, multiple jack clients running in a same separated process, this using jackd or jackdmp.
|
|
|
|
jackd:
|
|
|
|
- multiple jack clients in the server: fast because *direct function call* to the client process callback is done bypassing the fifo based activation system
|
|
- jack clients in separated processes: slower using the fifo based activation system
|
|
- multiple jack clients in a separated process: slower using the fifo based activation system
|
|
|
|
jackdmp:
|
|
|
|
- multiple jack clients in the server: slower using the fifo based activation system
|
|
- jack clients in separated processes: slower using the fifo based activation system
|
|
- multiple jack clients in a separated process: slower using the fifo based activation system
|
|
|
|
So basically jackdmp use the same fifo based activated system in all cases, and jackd does some optimization in the "multiple jack clients in the server" case.
|
|
|
|
Also having multiple clients in a same process (jack server or separated process) is not so common, it may still be interesting to be able to optimize the activation path with sequential clients in a same process (server or separated). I am thinking in a method that could be done in jackdmp data-flow model : since the activation path is "computed on the fly" when following links between clients, the step where a client activates all its output could be reworked a little with something like :
|
|
|
|
- find one of the client in the output client list that is in the same process
|
|
- activate all other output clients using the normal fifo based system
|
|
- *direct* call the client process callback
|
|
|
|
(and this would be done recursively following a sequential path in the graph until no more client in the same process is found)
|
|
|
|
There is still an issue if a client uses the "Fons special" ((-: new jack_thread_wait API, where a client explicitly gives control back to libjack... I still don't have a clear idea if this optimization path could still be done.
|
|
|
|
Even if the "multiple clients" way is not really used in existing applications, is it a desirable feature to have at some point?
|
|
|
|
2007-10-07 : Before doing an official package, check all public headers
|
|
|
|
2007-03-14 : Check JackGraphManager::GetPortsAux after MIDI branch merge.
|
|
|
|
2007-03-14 : Add Paul dynamic jack server location code.
|
|
|
|
2007-01-22 : Check the "dead" client removing code in the server : non running client may cause Desactivation and Close time out problems.
|
|
|