1. 19 May, 2016 4 commits
    • Gaël PORTAY's avatar
      Fix duplicate instruction. · fd48059f
      Gaël PORTAY authored
      fd48059f
    • Gaël PORTAY's avatar
      9e5d1909
    • Gaël PORTAY's avatar
      Fix initialization of string members. · ddf1b5a1
      Gaël PORTAY authored
      Reported by valgrind using the command below:
      $ valgrind jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==8930== Memcheck, a memory error detector
      ==8930== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==8930== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
      ==8930== Command: jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==8930==
      jackdmp 1.9.11
      Copyright 2001-2005 Paul Davis and others.
      Copyright 2004-2016 Grame.
      jackdmp comes with ABSOLUTELY NO WARRANTY
      This is free software, and you are welcome to redistribute it
      under certain conditions; see the file COPYING for details
      JACK server starting in realtime mode with priority 10
      self-connect-mode is "Don't restrict self connect requests"
      creating alsa driver ... hw:0|hw:0|2048|2|44100|0|0|nomon|swmeter|-|16bit
      configuring for 44100Hz, period = 2048 frames (46.4 ms), buffer = 2 periods
      ALSA: final selected sample format for capture: 16bit little-endian
      ALSA: use 2 periods for capture
      ALSA: final selected sample format for playback: 16bit little-endian
      ALSA: use 2 periods for playback
      ==8930== Thread 4:
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4E94C62: Jack::JackClientCheckResult::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:227)
      ==8930==    by 0x4ECDF3A: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:58)
      ==8930==    by 0x4ED4219: Jack::JackSocketServerChannel::Execute() (JackSocketServerChannel.cpp:247)
      ==8930==    by 0x4EA4B63: Jack::JackPosixThread::ThreadHandler(void*) (JackPosixThread.cpp:59)
      ==8930==    by 0x59F5181: start_thread (pthread_create.c:312)
      ==8930==    by 0x572247C: clone (clone.S:111)
      ==8930==  Address 0x41da85e is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:46)
      ==8930==
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4ED619B: Jack::JackClientNotification::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:1606)
      ==8930==    by 0x4ED5F2E: Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:56)
      ==8930==    by 0x4EB51DF: Jack::JackExternalClient::ClientNotify(int, char const*, int, int, char const*, int, int) (JackExternalClient.cpp:40)
      ==8930==    by 0x4EAFA9A: Jack::JackEngine::ClientNotify(Jack::JackClientInterface*, int, char const*, int, int, char const*, int, int) (JackEngine.cpp:274)
      ==8930==    by 0x4EAFD34: Jack::JackEngine::NotifyAddClient(Jack::JackClientInterface*, char const*, int) (JackEngine.cpp:318)
      ==8930==    by 0x4EB0C99: Jack::JackEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackEngine.cpp:636)
      ==8930==    by 0x4ED4486: Jack::JackLockedEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackLockedEngine.h:123)
      ==8930==    by 0x4ED3AD5: Jack::JackSocketServerChannel::ClientAdd(Jack::detail::JackChannelTransactionInterface*, Jack::JackClientOpenRequest*, Jack::JackClientOpenResult*) (JackSocketServerChannel.cpp:132)
      ==8930==    by 0x4ECE0B8: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:73)
      ==8930==    by 0x4ECDFBA: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:63)
      ==8930==  Address 0x41d9ccb is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:51)
      ==8930==
      ==8930== Syscall param write(buf) points to uninitialised byte(s)
      ==8930==    at 0x571388D: ??? (syscall-template.S:81)
      ==8930==    by 0x4EA70B3: Jack::JackClientSocket::Write(void*, int) (JackSocket.cpp:233)
      ==8930==    by 0x4ED633C: Jack::JackClientNotification::Write(Jack::detail::JackChannelTransactionInterface*) (JackRequest.h:1612)
      ==8930==    by 0x4ED5F2E: Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:56)
      ==8930==    by 0x4EB51DF: Jack::JackExternalClient::ClientNotify(int, char const*, int, int, char const*, int, int) (JackExternalClient.cpp:40)
      ==8930==    by 0x4EAFA9A: Jack::JackEngine::ClientNotify(Jack::JackClientInterface*, int, char const*, int, int, char const*, int, int) (JackEngine.cpp:274)
      ==8930==    by 0x4EAFD34: Jack::JackEngine::NotifyAddClient(Jack::JackClientInterface*, char const*, int) (JackEngine.cpp:318)
      ==8930==    by 0x4EB0C99: Jack::JackEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackEngine.cpp:636)
      ==8930==    by 0x4ED4486: Jack::JackLockedEngine::ClientExternalOpen(char const*, int, int, int*, int*, int*, int*) (JackLockedEngine.h:123)
      ==8930==    by 0x4ED3AD5: Jack::JackSocketServerChannel::ClientAdd(Jack::detail::JackChannelTransactionInterface*, Jack::JackClientOpenRequest*, Jack::JackClientOpenResult*) (JackSocketServerChannel.cpp:132)
      ==8930==    by 0x4ECE0B8: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:73)
      ==8930==    by 0x4ECDFBA: Jack::JackRequestDecoder::HandleRequest(Jack::detail::JackChannelTransactionInterface*, int) (JackRequestDecoder.cpp:63)
      ==8930==  Address 0x41d9d1d is on thread 4's stack
      ==8930==  in frame #3, created by Jack::JackSocketNotifyChannel::ClientNotify(int, char const*, int, int, char const*, int, int, int*) (JackSocketNotifyChannel.cpp:51)
      ==8930==
      ddf1b5a1
    • Gaël PORTAY's avatar
      Fix uninitialized fEndDateUst. · a91969e1
      Gaël PORTAY authored
      Reported by valgrind using the command below:
      $ valgrind jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==17496== Memcheck, a memory error detector
      ==17496== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
      ==17496== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info
      ==17496== Command: jackd -p128 -t2000 -dalsa -dhw:0 -r44100 -p2048 -n2 -S
      ==17496==
      jackdmp 1.9.11
      Copyright 2001-2005 Paul Davis and others.
      Copyright 2004-2016 Grame.
      jackdmp comes with ABSOLUTELY NO WARRANTY
      This is free software, and you are welcome to redistribute it
      under certain conditions; see the file COPYING for details
      JACK server starting in realtime mode with priority 10
      self-connect-mode is "Don't restrict self connect requests"
      creating alsa driver ... hw:0|hw:0|2048|2|44100|0|0|nomon|swmeter|-|16bit
      configuring for 44100Hz, period = 2048 frames (46.4 ms), buffer = 2 periods
      ALSA: final selected sample format for capture: 16bit little-endian
      ALSA: use 2 periods for capture
      ALSA: final selected sample format for playback: 16bit little-endian
      ALSA: use 2 periods for playback
      ==17496== Thread 3:
      ==17496== Conditional jump or move depends on uninitialised value(s)
      ==17496==    at 0x4E91CC9: Jack::JackEngineControl::CalcCPULoad(Jack::JackClientInterface**, Jack::JackGraphManager*, unsigned long, unsigned long) (JackEngineControl.cpp:58)
      ==17496==    by 0x4EB3256: Jack::JackEngineControl::CycleBegin(Jack::JackClientInterface**, Jack::JackGraphManager*, unsigned long, unsigned long) (JackEngineControl.h:153)
      ==17496==    by 0x4EAF54A: Jack::JackEngine::Process(unsigned long, unsigned long) (JackEngine.cpp:166)
      ==17496==    by 0x4EA922E: Jack::JackLockedEngine::Process(unsigned long, unsigned long) (JackLockedEngine.h:261)
      ==17496==    by 0x4EA8819: Jack::JackAudioDriver::ProcessGraphAsyncMaster() (JackAudioDriver.cpp:250)
      ==17496==    by 0x4EA87D0: Jack::JackAudioDriver::ProcessGraphAsync() (JackAudioDriver.cpp:236)
      ==17496==    by 0x4EA8795: Jack::JackAudioDriver::ProcessAsync() (JackAudioDriver.cpp:225)
      ==17496==    by 0x4EA870E: Jack::JackAudioDriver::Process() (JackAudioDriver.cpp:202)
      ==17496==    by 0x4EBA5DA: Jack::JackThreadedDriver::Process() (JackThreadedDriver.cpp:71)
      ==17496==    by 0x4EBAC52: Jack::JackThreadedDriver::Execute() (JackThreadedDriver.cpp:244)
      ==17496==    by 0x4EA4B63: Jack::JackPosixThread::ThreadHandler(void*) (JackPosixThread.cpp:61)
      ==17496==    by 0x59F5181: start_thread (pthread_create.c:312)
      ==17496==
      ^CJack main caught signal 2
      ==17496==
      ==17496== HEAP SUMMARY:
      ==17496==     in use at exit: 95,475 bytes in 1,441 blocks
      ==17496==   total heap usage: 2,793 allocs, 1,352 frees, 7,217,645 bytes allocated
      ==17496==
      ==17496== LEAK SUMMARY:
      ==17496==    definitely lost: 1,458 bytes in 10 blocks
      ==17496==    indirectly lost: 7,680 bytes in 4 blocks
      ==17496==      possibly lost: 42,998 bytes in 1,314 blocks
      ==17496==    still reachable: 43,339 bytes in 113 blocks
      ==17496==         suppressed: 0 bytes in 0 blocks
      ==17496== Rerun with --leak-check=full to see details of leaked memory
      ==17496==
      ==17496== For counts of detected and suppressed errors, rerun with: -v
      ==17496== Use --track-origins=yes to see where uninitialised values come from
      ==17496== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
      a91969e1
  2. 17 May, 2016 1 commit
  3. 31 Mar, 2016 1 commit
  4. 30 Mar, 2016 1 commit
  5. 18 Mar, 2016 3 commits
  6. 11 Mar, 2016 2 commits
  7. 24 Feb, 2016 1 commit
  8. 11 Feb, 2016 1 commit
  9. 01 Jan, 2016 1 commit
  10. 10 Nov, 2015 1 commit
  11. 22 Oct, 2015 1 commit
  12. 08 Oct, 2015 3 commits
  13. 05 Oct, 2015 1 commit
  14. 03 Sep, 2015 1 commit
  15. 25 Aug, 2015 1 commit
  16. 19 Jul, 2015 3 commits
  17. 17 Jul, 2015 1 commit
  18. 26 Jun, 2015 1 commit
  19. 02 Jun, 2015 1 commit
  20. 02 May, 2015 1 commit
  21. 29 Apr, 2015 1 commit
  22. 27 Apr, 2015 3 commits
    • Cédric Schieli's avatar
      Add JackProxyDriver · 8f6c3c6d
      Cédric Schieli authored
      This driver is very similar to the JackNetDriver, but instead of connecting
      through the network, it connects to its upstream server through standard jack
      API. So it can only reach local servers which must be running as the same user
      or in promiscuous mode.
      
      The main use case is the multi-user, multi-session, shared workstation:
      
       - a classic server with hw driver is launched system-wide at boot time, in
         promiscuous mode, optionaly restricted to the audio group
       - in each user session, a jackdbus server is automatically started with
         JackProxyDriver as master driver, automatically connected to the
         system-wide one
       - optionaly, each user run PulseAudio with a pulse-jack bridge
      8f6c3c6d
    • Cédric Schieli's avatar
      Add JackWaitCallbackDriver · 1cd25cb9
      Cédric Schieli authored
      This wrapper driver has the same usage as its parent JackWaitThreadedDriver,
      but for non-threaded (callback) drivers. After waiting for Initialize to
      return, its main thread simply ends instead of calling the driver's Process
      method in a loop. The decorated driver, which must extends JackRestarerDriver
      instead of JackWaiterDriver, can restart the wait cycle by calling its
      RestartWait method.
      1cd25cb9
    • Cédric Schieli's avatar
      Split JackWaitThreadedDriver's Execute method · c1ae33f9
      Cédric Schieli authored
      This makes it possible to use JackWaitThreadedDriver as a base class
      for a non-threaded version.
      c1ae33f9
  23. 21 Apr, 2015 2 commits
  24. 20 Apr, 2015 1 commit
  25. 15 Apr, 2015 1 commit
  26. 13 Apr, 2015 1 commit
  27. 10 Apr, 2015 1 commit