jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
2.8KB

  1. ---------------------
  2. Jackdmp Todo list
  3. ---------------------
  4. 2007-12-16 Dynamic backend switch, so that audio backend can be switch off and replaced by the dummy backend.
  5. 2007-10-17 Optimize activation call graph with multiple clients in a process
  6. 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.
  7. jackd:
  8. - multiple jack clients in the server: fast because *direct function call* to the client process callback is done bypassing the fifo based activation system
  9. - jack clients in separated processes: slower using the fifo based activation system
  10. - multiple jack clients in a separated process: slower using the fifo based activation system
  11. jackdmp:
  12. - multiple jack clients in the server: slower using the fifo based activation system
  13. - jack clients in separated processes: slower using the fifo based activation system
  14. - multiple jack clients in a separated process: slower using the fifo based activation system
  15. 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.
  16. 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:
  17. - find one of the client in the output client list that is in the same process
  18. - activate all other output clients using the normal fifo based system
  19. - *direct* call the client process callback
  20. (and this would be done recursively following a sequential path in the graph until no more client in the same process is found)
  21. 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.
  22. Even if the "multiple clients" way is not really used in existing applications, is it a desirable feature to have at some point?
  23. 2007-10-07 Before doing an official package, check all public headers
  24. 2007-03-14 Check JackGraphManager::GetPortsAux after MIDI branch merge.
  25. 2007-03-14 Add Paul dynamic jack server location code.
  26. 2007-01-22 Check the "dead" client removing code in the server: non running client may cause Desactivation and Close time out problems.