Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

incompatible with webrtc-audio-processing 0.3 #56

Open
ewtoombs opened this issue Jul 31, 2016 · 0 comments
Open

incompatible with webrtc-audio-processing 0.3 #56

ewtoombs opened this issue Jul 31, 2016 · 0 comments

Comments

@ewtoombs
Copy link

Build fails with the following error:

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I../src -I../src/modules -I../src/modules -DPA_ALSA_PATHS_DIR=\"/usr/local/share/pulseaudio/alsa-mixer/paths\" -DPA_ALSA_PROFILE_SETS_DIR=\"/usr/local/share/pulseaudio/alsa-mixer/profile-sets\" -DPA_SRCDIR=\"/home/eric/pkg/pulseaudio-raop2/src\" -DPA_BUILDDIR=\"/home/eric/pkg/pulseaudio-raop2/src\" -DPULSE_LOCALEDIR=\"/usr/local/share/locale\" -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -D__INCLUDED_FROM_PULSE_AUDIO -DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD -DWEBRTC_POSIX -I/usr/include/webrtc_audio_processing -DHAVE_WEBRTC=1 -g -O2 -MT modules/echo-cancel/libwebrtc_util_la-webrtc.lo -MD -MP -MF modules/echo-cancel/.deps/libwebrtc_util_la-webrtc.Tpo -c modules/echo-cancel/webrtc.cc  -fPIC -DPIC -o modules/echo-cancel/.libs/libwebrtc_util_la-webrtc.o
modules/echo-cancel/webrtc.cc:36:30: fatal error: audio_processing.h: No such file or directory
 #include <audio_processing.h>

I tried redirecting audio_processing.h and module_common_types.h to their new locations in webrtc.cc, but then it just blew up with a different error message:

libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -I../src -I../src/modules -I../src/modules -DPA_ALSA_PATHS_DIR=\"/usr/local/share/pulseaudio/alsa-mixer/paths\" -DPA_ALSA_PROFILE_SETS_DIR=\"/usr/local/share/pulseaudio/alsa-mixer/profile-sets\" -DPA_SRCDIR=\"/home/eric/pkg/pulseaudio-raop2/src\" -DPA_BUILDDIR=\"/home/eric/pkg/pulseaudio-raop2/src\" -DPULSE_LOCALEDIR=\"/usr/local/share/locale\" -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -D__INCLUDED_FROM_PULSE_AUDIO -DWEBRTC_AUDIO_PROCESSING_ONLY_BUILD -DWEBRTC_POSIX -I/usr/include/webrtc_audio_processing -DHAVE_WEBRTC=1 -g -O2 -MT modules/echo-cancel/libwebrtc_util_la-webrtc.lo -MD -MP -MF modules/echo-cancel/.deps/libwebrtc_util_la-webrtc.Tpo -c modules/echo-cancel/webrtc.cc  -fPIC -DPIC -o modules/echo-cancel/.libs/libwebrtc_util_la-webrtc.o
modules/echo-cancel/webrtc.cc: In function ‘bool pa_webrtc_ec_init(pa_core*, pa_echo_canceller*, pa_sample_spec*, pa_channel_map*, pa_sample_spec*, pa_channel_map*, pa_sample_spec*, pa_channel_map*, uint32_t*, const char*)’:
modules/echo-cancel/webrtc.cc:156:44: error: no matching function for call to ‘webrtc::AudioProcessing::Create(int)’
     apm = webrtc::AudioProcessing::Create(0);
                                            ^
In file included from modules/echo-cancel/webrtc.cc:36:0:
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:238:27: note: candidate: static webrtc::AudioProcessing* webrtc::AudioProcessing::Create()
   static AudioProcessing* Create();
                           ^~~~~~
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:238:27: note:   candidate expects 0 arguments, 1 provided
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:240:27: note: candidate: static webrtc::AudioProcessing* webrtc::AudioProcessing::Create(const webrtc::Config&)
   static AudioProcessing* Create(const Config& config);
                           ^~~~~~
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:240:27: note:   no known conversion for argument 1 from ‘int’ to ‘const webrtc::Config&’
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:242:27: note: candidate: static webrtc::AudioProcessing* webrtc::AudioProcessing::Create(const webrtc::Config&, webrtc::Beamformer<float>*)
   static AudioProcessing* Create(const Config& config,
                           ^~~~~~
/usr/include/webrtc_audio_processing/webrtc/modules/audio_processing/include/audio_processing.h:242:27: note:   candidate expects 2 arguments, 1 provided
modules/echo-cancel/webrtc.cc:166:10: error: ‘class webrtc::AudioProcessing’ has no member named ‘set_sample_rate_hz’; did you mean ‘proc_sample_rate_hz’?
     apm->set_sample_rate_hz(out_ss->rate);
          ^~~~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:168:10: error: ‘class webrtc::AudioProcessing’ has no member named ‘set_num_channels’; did you mean ‘num_input_channels’?
     apm->set_num_channels(out_ss->channels, out_ss->channels);
          ^~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:169:10: error: ‘class webrtc::AudioProcessing’ has no member named ‘set_num_reverse_channels’; did you mean ‘num_reverse_channels’?
     apm->set_num_reverse_channels(play_ss->channels);
          ^~~~~~~~~~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:176:39: error: ‘class webrtc::EchoCancellation’ has no member named ‘set_device_sample_rate_hz’
             apm->echo_cancellation()->set_device_sample_rate_hz(out_ss->rate);
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:228:9: error: ‘Destroy’ is not a member of ‘webrtc::AudioProcessing’
         webrtc::AudioProcessing::Destroy(apm);
         ^~~~~~
modules/echo-cancel/webrtc.cc: In function ‘void pa_webrtc_ec_play(pa_echo_canceller*, const uint8_t*)’:
modules/echo-cancel/webrtc.cc:238:16: error: ‘class webrtc::AudioFrame’ has no member named ‘_audioChannel’
     play_frame._audioChannel = ss->channels;
                ^~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:239:16: error: ‘class webrtc::AudioFrame’ has no member named ‘_frequencyInHz’
     play_frame._frequencyInHz = ss->rate;
                ^~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:240:16: error: ‘class webrtc::AudioFrame’ has no member named ‘_payloadDataLengthInSamples’
     play_frame._payloadDataLengthInSamples = ec->params.priv.webrtc.blocksize / pa_frame_size(ss);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:241:23: error: ‘class webrtc::AudioFrame’ has no member named ‘_payloadData’
     memcpy(play_frame._payloadData, play, ec->params.priv.webrtc.blocksize);
                       ^~~~~~~~~~~~
modules/echo-cancel/webrtc.cc: In function ‘void pa_webrtc_ec_record(pa_echo_canceller*, const uint8_t*, uint8_t*)’:
modules/echo-cancel/webrtc.cc:252:15: error: ‘class webrtc::AudioFrame’ has no member named ‘_audioChannel’
     out_frame._audioChannel = ss->channels;
               ^~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:253:15: error: ‘class webrtc::AudioFrame’ has no member named ‘_frequencyInHz’
     out_frame._frequencyInHz = ss->rate;
               ^~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:254:15: error: ‘class webrtc::AudioFrame’ has no member named ‘_payloadDataLengthInSamples’
     out_frame._payloadDataLengthInSamples = ec->params.priv.webrtc.blocksize / pa_frame_size(ss);
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:255:22: error: ‘class webrtc::AudioFrame’ has no member named ‘_payloadData’
     memcpy(out_frame._payloadData, rec, ec->params.priv.webrtc.blocksize);
                      ^~~~~~~~~~~~
modules/echo-cancel/webrtc.cc:271:27: error: ‘class webrtc::AudioFrame’ has no member named ‘_payloadData’
     memcpy(out, out_frame._payloadData, ec->params.priv.webrtc.blocksize);
                           ^~~~~~~~~~~~
modules/echo-cancel/webrtc.cc: In function ‘void pa_webrtc_ec_done(pa_echo_canceller*)’:
modules/echo-cancel/webrtc.cc:288:9: error: ‘Destroy’ is not a member of ‘webrtc::AudioProcessing’
         webrtc::AudioProcessing::Destroy((webrtc::AudioProcessing*)ec->params.priv.webrtc.apm);
         ^~~~~~

The only solution I've found is to add --disable-webrtc-aec to ./configure's switches. Downgrading webrtc-audio-processing would probably also work. Either way, the installation instructions need to change a little. Fixing it for real will probably require rebasing to pulseaudio 9.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant