jackaudio / jack2

jack2 codebase
GNU General Public License v2.0
2.19k stars 374 forks source link

Compile fails with CELT 0.6.1 #112

Open karllinden opened 9 years ago

karllinden commented 9 years ago

If CELT 0.6.1 installed when compiling jack2 from git the following error occurs. I know that CELT 0.6.1, but the build system seems to accept it so it should be possible to use CELT 0.6.1. You might want to drop support for CELT < 0.7.0 to solve this since CELT 0.6.1 is approx. six years old (and obsoleted by opus). I can remove all conditional code for CELT < 0.7.0 if you wish.

$ ./waf configure
Setting top to                           : /home/kalle/Sources/jack2 
Setting out to                           : /home/kalle/Sources/jack2/build 
Checking for 'g++' (c++ compiler)        : /usr/bin/g++ 
Checking for 'gcc' (c compiler)          : /usr/bin/gcc 
Linux detected 
Checking for header samplerate.h         : yes 
Checking for program pkg-config          : /usr/bin/pkg-config 
Checking for 'alsa' >= 1.0.18            : yes 
Checking for 'libfreebob' >= 1.0.0       : not found 
Checking for 'libffado' >= 1.999.17      : yes 
Checking for 'gtkIOStream' >= 1.4.0      : not found 
Checking for 'eigen3' >= 3.1.2           : not found 
Checking for header samplerate.h         : yes 
Checking for header sndfile.h            : yes 
Checking for 'celt' >= 0.5.0             : yes 
Checking for library readline            : yes 
Checking for 'celt' >= 0.11.0            : not found 
Checking for 'celt' >= 0.8.0             : not found 
Checking for 'celt' >= 0.7.0             : not found 
Checking for 'celt' >= 0.5.0             : yes 
Checking for 'opus' >= 0.9.0             : yes 
Checking for header opus/opus_custom.h   : not found 

==================                      
JACK 1.9.11 svn revision will checked and eventually updated during build
Build with a maximum of 64 JACK clients
Build with a maximum of 768 ports per application
Install prefix                           :  /usr/local 
Library directory                        :  /usr/local/lib 
Drivers directory                        :  /usr/local/lib/jack 
Build debuggable binaries                :  no 
C compiler flags                         :  ['-Wall'] 
C++ compiler flags                       :  ['-Wall'] 
Linker flags                             :  [] 
Build doxygen documentation              :  no 
Build Opus netjack2                      :  no 
Build with engine profiling              :  no 
Build with 32/64 bits mixed mode         :  no 
Build standard JACK (jackd)              :  yes 
Build D-Bus JACK (jackdbus)              :  no 
Autostart method                         :  classic 
Build with ALSA support                  :  no 
Build with FireWire (FreeBob) support    :  no 
Build with FireWire (FFADO) support      :  no 
Build with IIO support                   :  no 

'configure' finished successfully (0.651s)
$ ./waf
Waf: Entering directory `/home/kalle/Sources/jack2/build'
make[1]: Entering directory `/home/kalle/Sources/jack2/build'
[  1/215] svnversion:  -> build/svnversion.h
Generated /home/kalle/Sources/jack2/build/svnversion.h (0+5ed57785dfb1a1b29e59e57fb063bb615da98f71)
[  2/215] cxx: common/JackActivationCount.cpp -> build/common/JackActivationCount.cpp.1.o
[  3/215] cxx: common/JackAPI.cpp -> build/common/JackAPI.cpp.1.o
[  4/215] cxx: common/JackClient.cpp -> build/common/JackClient.cpp.1.o
[  5/215] cxx: common/JackConnectionManager.cpp -> build/common/JackConnectionManager.cpp.1.o
[  6/215] c: common/ringbuffer.c -> build/common/ringbuffer.c.1.o
[  7/215] cxx: common/JackError.cpp -> build/common/JackError.cpp.1.o
[  8/215] cxx: common/JackException.cpp -> build/common/JackException.cpp.1.o
[  9/215] cxx: common/JackFrameTimer.cpp -> build/common/JackFrameTimer.cpp.1.o
[ 10/215] cxx: common/JackGraphManager.cpp -> build/common/JackGraphManager.cpp.1.o
[ 11/215] cxx: common/JackPort.cpp -> build/common/JackPort.cpp.1.o
[ 12/215] cxx: common/JackPortType.cpp -> build/common/JackPortType.cpp.1.o
[ 13/215] cxx: common/JackAudioPort.cpp -> build/common/JackAudioPort.cpp.1.o
[ 14/215] cxx: common/JackMidiPort.cpp -> build/common/JackMidiPort.cpp.1.o
[ 15/215] cxx: common/JackMidiAPI.cpp -> build/common/JackMidiAPI.cpp.1.o
[ 16/215] cxx: common/JackEngineControl.cpp -> build/common/JackEngineControl.cpp.1.o
[ 17/215] cxx: common/JackShmMem.cpp -> build/common/JackShmMem.cpp.1.o
[ 18/215] cxx: common/JackGenericClientChannel.cpp -> build/common/JackGenericClientChannel.cpp.1.o
[ 19/215] c: common/shm.c -> build/common/shm.c.1.o
[ 20/215] cxx: common/JackGlobals.cpp -> build/common/JackGlobals.cpp.1.o
[ 21/215] cxx: common/JackTransportEngine.cpp -> build/common/JackTransportEngine.cpp.1.o
[ 22/215] cxx: common/JackTools.cpp -> build/common/JackTools.cpp.1.o
[ 23/215] cxx: common/JackMessageBuffer.cpp -> build/common/JackMessageBuffer.cpp.1.o
[ 24/215] cxx: common/JackEngineProfiling.cpp -> build/common/JackEngineProfiling.cpp.1.o
[ 25/215] cxx: common/JackDebugClient.cpp -> build/common/JackDebugClient.cpp.1.o
[ 26/215] c: common/timestamps.c -> build/common/timestamps.c.1.o
[ 27/215] cxx: posix/JackPosixThread.cpp -> build/posix/JackPosixThread.cpp.1.o
[ 28/215] cxx: posix/JackPosixSemaphore.cpp -> build/posix/JackPosixSemaphore.cpp.1.o
[ 29/215] cxx: posix/JackPosixProcessSync.cpp -> build/posix/JackPosixProcessSync.cpp.1.o
[ 30/215] cxx: posix/JackPosixMutex.cpp -> build/posix/JackPosixMutex.cpp.1.o
[ 31/215] cxx: posix/JackSocket.cpp -> build/posix/JackSocket.cpp.1.o
[ 32/215] c: linux/JackLinuxTime.c -> build/linux/JackLinuxTime.c.1.o
[ 33/215] cxx: common/JackLibClient.cpp -> build/common/JackLibClient.cpp.1.o
[ 34/215] cxx: common/JackLibAPI.cpp -> build/common/JackLibAPI.cpp.1.o
[ 35/215] cxx: posix/JackSocketClientChannel.cpp -> build/posix/JackSocketClientChannel.cpp.1.o
[ 36/215] cxx: posix/JackPosixServerLaunch.cpp -> build/posix/JackPosixServerLaunch.cpp.1.o
[ 37/215] cxx: common/JackActivationCount.cpp -> build/common/JackActivationCount.cpp.2.o
[ 38/215] cxx: common/JackAPI.cpp -> build/common/JackAPI.cpp.2.o
[ 39/215] cxx: common/JackClient.cpp -> build/common/JackClient.cpp.2.o
[ 40/215] cxx: common/JackConnectionManager.cpp -> build/common/JackConnectionManager.cpp.2.o
[ 41/215] c: common/ringbuffer.c -> build/common/ringbuffer.c.2.o
[ 42/215] cxx: common/JackError.cpp -> build/common/JackError.cpp.2.o
[ 43/215] cxx: common/JackException.cpp -> build/common/JackException.cpp.2.o
[ 44/215] cxx: common/JackFrameTimer.cpp -> build/common/JackFrameTimer.cpp.2.o
[ 45/215] cxx: common/JackGraphManager.cpp -> build/common/JackGraphManager.cpp.2.o
[ 46/215] cxx: common/JackPort.cpp -> build/common/JackPort.cpp.2.o
[ 47/215] cxx: common/JackPortType.cpp -> build/common/JackPortType.cpp.2.o
[ 48/215] cxx: common/JackAudioPort.cpp -> build/common/JackAudioPort.cpp.2.o
[ 49/215] cxx: common/JackMidiPort.cpp -> build/common/JackMidiPort.cpp.2.o
[ 50/215] cxx: common/JackMidiAPI.cpp -> build/common/JackMidiAPI.cpp.2.o
[ 51/215] cxx: common/JackEngineControl.cpp -> build/common/JackEngineControl.cpp.2.o
[ 52/215] cxx: common/JackShmMem.cpp -> build/common/JackShmMem.cpp.2.o
[ 53/215] cxx: common/JackGenericClientChannel.cpp -> build/common/JackGenericClientChannel.cpp.2.o
[ 54/215] c: common/shm.c -> build/common/shm.c.2.o
[ 55/215] cxx: common/JackGlobals.cpp -> build/common/JackGlobals.cpp.2.o
[ 56/215] cxx: common/JackTransportEngine.cpp -> build/common/JackTransportEngine.cpp.2.o
[ 57/215] cxx: common/JackTools.cpp -> build/common/JackTools.cpp.2.o
[ 58/215] cxx: common/JackMessageBuffer.cpp -> build/common/JackMessageBuffer.cpp.2.o
[ 59/215] cxx: common/JackEngineProfiling.cpp -> build/common/JackEngineProfiling.cpp.2.o
[ 60/215] cxx: common/JackDebugClient.cpp -> build/common/JackDebugClient.cpp.2.o
[ 61/215] c: common/timestamps.c -> build/common/timestamps.c.2.o
[ 62/215] cxx: posix/JackPosixThread.cpp -> build/posix/JackPosixThread.cpp.2.o
[ 63/215] cxx: posix/JackPosixSemaphore.cpp -> build/posix/JackPosixSemaphore.cpp.2.o
[ 64/215] cxx: posix/JackPosixProcessSync.cpp -> build/posix/JackPosixProcessSync.cpp.2.o
[ 65/215] cxx: posix/JackPosixMutex.cpp -> build/posix/JackPosixMutex.cpp.2.o
[ 66/215] cxx: posix/JackSocket.cpp -> build/posix/JackSocket.cpp.2.o
[ 67/215] c: linux/JackLinuxTime.c -> build/linux/JackLinuxTime.c.2.o
[ 68/215] cxx: common/JackAudioDriver.cpp -> build/common/JackAudioDriver.cpp.2.o
[ 69/215] cxx: common/JackTimedDriver.cpp -> build/common/JackTimedDriver.cpp.2.o
[ 70/215] cxx: common/JackMidiDriver.cpp -> build/common/JackMidiDriver.cpp.2.o
[ 71/215] cxx: common/JackDriver.cpp -> build/common/JackDriver.cpp.2.o
[ 72/215] cxx: common/JackEngine.cpp -> build/common/JackEngine.cpp.2.o
[ 73/215] cxx: common/JackExternalClient.cpp -> build/common/JackExternalClient.cpp.2.o
[ 74/215] cxx: common/JackFreewheelDriver.cpp -> build/common/JackFreewheelDriver.cpp.2.o
[ 75/215] cxx: common/JackInternalClient.cpp -> build/common/JackInternalClient.cpp.2.o
[ 76/215] cxx: common/JackServer.cpp -> build/common/JackServer.cpp.2.o
[ 77/215] cxx: common/JackThreadedDriver.cpp -> build/common/JackThreadedDriver.cpp.2.o
[ 78/215] cxx: common/JackRestartThreadedDriver.cpp -> build/common/JackRestartThreadedDriver.cpp.2.o
[ 79/215] cxx: common/JackWaitThreadedDriver.cpp -> build/common/JackWaitThreadedDriver.cpp.2.o
[ 80/215] cxx: common/JackServerAPI.cpp -> build/common/JackServerAPI.cpp.2.o
[ 81/215] cxx: common/JackDriverLoader.cpp -> build/common/JackDriverLoader.cpp.2.o
[ 82/215] cxx: common/JackServerGlobals.cpp -> build/common/JackServerGlobals.cpp.2.o
[ 83/215] cxx: common/JackControlAPI.cpp -> build/common/JackControlAPI.cpp.2.o
[ 84/215] cxx: common/JackNetTool.cpp -> build/common/JackNetTool.cpp.2.o
[ 85/215] cxx: common/JackNetInterface.cpp -> build/common/JackNetInterface.cpp.2.o
[ 86/215] cxx: common/JackArgParser.cpp -> build/common/JackArgParser.cpp.2.o
../common/JackNetTool.cpp: In constructor 'Jack::NetCeltAudioBuffer::NetCeltAudioBuffer(Jack::session_params_t*, uint32_t, char*, int)':
../common/JackNetTool.cpp:499:93: error: invalid conversion from 'int*' to 'int' [-fpermissive]
             fCeltMode[i] = celt_mode_create(params->fSampleRate, params->fPeriodSize, &error);
                                                                                             ^
../common/JackNetTool.cpp:499:93: error: too few arguments to function 'Jack::CELTMode* Jack::celt_mode_create(Jack::celt_int32_t, int, int, int*)'
In file included from ../common/JackNetTool.h:371:0,
                 from ../common/JackNetTool.cpp:20:
/usr/include/celt/celt.h:141:18: note: declared here
 EXPORT CELTMode *celt_mode_create(celt_int32_t Fs, int channels, int frame_size, int *error);
                  ^
Waf: Leaving directory `/home/kalle/Sources/jack2/build'
Build failed
 -> task in 'serverlib' failed (exit status 1): 
    {task 140116747592080: cxx JackNetTool.cpp -> JackNetTool.cpp.2.o}
['/usr/bin/g++', '-Wall', '-fPIC', '-fvisibility=hidden', '-I/home/kalle/Sources/jack2/build/linux', '-I/home/kalle/Sources/jack2/linux', '-I/home/kalle/Sources/jack2/build/posix', '-I/home/kalle/Sources/jack2/posix', '-I/home/kalle/Sources/jack2/build/common', '-I/home/kalle/Sources/jack2/common', '-I/home/kalle/Sources/jack2/build/common/jack', '-I/home/kalle/Sources/jack2/common/jack', '-I/home/kalle/Sources/jack2/build', '-I/home/kalle/Sources/jack2', '-I/usr/include/opus', '-DHAVE_ALSA=1', '-DHAVE_LIBFFADO=1', '-DHAVE_PPOLL=1', '-DHAVE_SAMPLERATE=1', '-DHAVE_SNDFILE=1', '-DHAVE_CELT=1', '-DHAVE_READLINE=1', '-DHAVE_CELT_API_0_11=0', '-DHAVE_CELT_API_0_8=0', '-DHAVE_CELT_API_0_7=0', '-DHAVE_CELT_API_0_5=1', '-DHAVE_OPUS=0', '-DUSE_CLASSIC_AUTOLAUNCH=1', '-DCLIENT_NUM=64', '-DPORT_NUM_FOR_CLIENT=768', '-DADDON_DIR="/usr/local/lib/jack"', '-DJACK_LOCATION="/usr/local/bin"', '-DUSE_POSIX_SHM=1', '-DJACKMP=1', '-DHAVE_CONFIG_H', '-DSERVER_SIDE', '../common/JackNetTool.cpp', '-c', '-o', 'common/JackNetTool.cpp.2.o']
karllinden commented 8 years ago

I will drop old CELT after pull request #145 is merged.

7890 commented 5 years ago

@karllinden Following up on this, I see that https://github.com/jackaudio/jack2/pull/145 was closed but not merged. However https://github.com/jackaudio/jack2/pull/190 was merged. Do you eventually know if this covered all the issues you mentioned for CELT? If this is still an issue: please create a new PR. I think what you've found there is valuable and should be fixed. Leaving this issue open for now.