]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
WIP: pulseaudio: accept webrtc-audio-processing-1
authorMartin Jansa <Martin.Jansa@gmail.com>
Fri, 17 Mar 2023 12:27:11 +0000 (13:27 +0100)
committerMartin Jansa <Martin.Jansa@gmail.com>
Fri, 17 Mar 2023 16:41:28 +0000 (17:41 +0100)
This isn't complete still fails with:
http://errors.yoctoproject.org/Errors/Details/698130/
and after fixing this include (by dropping webrtc prefix), the other 2 includes don't exist anymore as well and fails with:
http://errors.yoctoproject.org/Errors/Details/698132/

FAILED: src/modules/echo-cancel/libwebrtc-util.so.p/webrtc.cc.o
x86_64-oe-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot -Isrc/modules/echo-cancel/libwebrtc-util.so.p -Isrc/modules/echo-cancel -I../pulseaudio-16.1/src/modules/echo-cancel -I. -I../pulseaudio-16.1 -Isrc -I../pulseaudio-16.1/src -ITOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/webrtc-audio-processing-1 -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -std=c++11 -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/pulseaudio-16.1=/usr/src/debug/pulseaudio/16.1-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/pulseaudio-16.1=/usr/src/debug/pulseaudio/16.1-r0 -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/build=/usr/src/debug/pulseaudio/16.1-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/build=/usr/src/debug/pulseaudio/16.1-r0 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot= -fmacro-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot= -fdebug-prefix-map=TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot-native= -fvisibility-inlines-hidden -fPIC -DWEBRTC_LIBRARY_IMPL -DWEBRTC_POSIX -DNOMINMAX -DHAVE_CONFIG_H -D_GNU_SOURCE -D__INCLUDED_FROM_PULSE_AUDIO -MD -MQ src/modules/echo-cancel/libwebrtc-util.so.p/webrtc.cc.o -MF src/modules/echo-cancel/libwebrtc-util.so.p/webrtc.cc.o.d -o src/modules/echo-cancel/libwebrtc-util.so.p/webrtc.cc.o -c ../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc
In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/base/config.h:86,
                 from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/types/optional.h:38,
                 from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/webrtc-audio-processing-1/modules/audio_processing/include/audio_processing.h:26,
                 from ../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:37:
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
   79 | #error "C++ versions less than C++14 are not supported."
      |  ^~~~~
In file included from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/webrtc-audio-processing-1/rtc_base/checks.h:58,
                 from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/webrtc-audio-processing-1/api/array_view.h:18,
                 from TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/webrtc-audio-processing-1/modules/audio_processing/include/audio_processing.h:27:
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h: In member function 'constexpr void absl::string_view::remove_prefix(size_type) const':
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h:340:10: error: assignment of member 'absl::string_view::ptr_' in read-only object
  340 |     ptr_ += n;
      |     ~~~~~^~~~
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h:341:13: error: assignment of member 'absl::string_view::length_' in read-only object
  341 |     length_ -= n;
      |     ~~~~~~~~^~~~
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h: In member function 'constexpr void absl::string_view::remove_suffix(size_type) const':
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h:350:13: error: assignment of member 'absl::string_view::length_' in read-only object
  350 |     length_ -= n;
      |     ~~~~~~~~^~~~
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h: In member function 'constexpr void absl::string_view::swap(absl::string_view&) const':
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h:358:13: error: passing 'const absl::string_view' as 'this' argument discards qualifiers [-fpermissive]
  358 |     *this = s;
      |             ^
TOPDIR/tmp-glibc/work/core2-64-oe-linux/pulseaudio/16.1-r0/recipe-sysroot/usr/include/absl/strings/string_view.h:161:7: note:   in call to 'absl::string_view& absl::string_view::operator=(const absl::string_view&)'
  161 | class string_view {
      |       ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In function 'int routing_mode_from_string(const char*)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:84:24: error: 'webrtc::EchoControlMobile' has not been declared
   84 |         return webrtc::EchoControlMobile::kQuietEarpieceOrHeadset;
      |                        ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:86:24: error: 'webrtc::EchoControlMobile' has not been declared
   86 |         return webrtc::EchoControlMobile::kEarpiece;
      |                        ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:88:24: error: 'webrtc::EchoControlMobile' has not been declared
   88 |         return webrtc::EchoControlMobile::kLoudEarpiece;
      |                        ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:90:24: error: 'webrtc::EchoControlMobile' has not been declared
   90 |         return webrtc::EchoControlMobile::kSpeakerphone;
      |                        ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:92:24: error: 'webrtc::EchoControlMobile' has not been declared
   92 |         return webrtc::EchoControlMobile::kLoudSpeakerphone;
      |                        ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: At global scope:
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:97:60: error: expected class-name before '{' token
   97 | class PaWebrtcTraceCallback : public webrtc::TraceCallback {
      |                                                            ^
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:98:24: error: 'webrtc::TraceLevel' has not been declared
   98 |     void Print(webrtc::TraceLevel level, const char *message, int length)
      |                        ^~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In member function 'void PaWebrtcTraceCallback::Print(int, const char*, int)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:100:29: error: 'kTraceError' is not a member of 'webrtc'
  100 |         if (level & webrtc::kTraceError || level & webrtc::kTraceCritical)
      |                             ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:100:60: error: 'kTraceCritical' is not a member of 'webrtc'
  100 |         if (level & webrtc::kTraceError || level & webrtc::kTraceCritical)
      |                                                            ^~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:102:34: error: 'kTraceWarning' is not a member of 'webrtc'
  102 |         else if (level & webrtc::kTraceWarning)
      |                                  ^~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:104:34: error: 'kTraceInfo' is not a member of 'webrtc'
  104 |         else if (level & webrtc::kTraceInfo)
      |                                  ^~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: At global scope:
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:165:79: error: 'Point' is not a member of 'webrtc'
  165 | static bool parse_mic_geometry(const char **mic_geometry, std::vector<webrtc::Point>& geometry) {
      |                                                                               ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:165:79: error: 'Point' is not a member of 'webrtc'
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:165:84: error: template argument 1 is invalid
  165 | static bool parse_mic_geometry(const char **mic_geometry, std::vector<webrtc::Point>& geometry) {
      |                                                                                    ^
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:165:84: error: template argument 2 is invalid
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In function 'bool parse_mic_geometry(const char**, int&)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:202:30: error: request for member 'size' in 'geometry', which is of non-class type 'int'
  202 |     for (i = 0; i < geometry.size(); i++) {
      |                              ^~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:209:27: error: request for member 'size' in 'geometry', which is of non-class type 'int'
  209 |         if (i != geometry.size() - 1) {
      |                           ^~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:220:17: error: invalid types 'int[long unsigned int]' for array subscript
  220 |         geometry[i].c[0] = f[0];
      |                 ^
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:221:17: error: invalid types 'int[long unsigned int]' for array subscript
  221 |         geometry[i].c[1] = f[1];
      |                 ^
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:222:17: error: invalid types 'int[long unsigned int]' for array subscript
  222 |         geometry[i].c[2] = f[2];
      |                 ^
../pulseaudio-16.1/src/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*)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:358:28: error: 'ExtendedFilter' is not a member of 'webrtc'
  358 |         config.Set<webrtc::ExtendedFilter>(new webrtc::ExtendedFilter(true));
      |                            ^~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:358:28: error: 'ExtendedFilter' is not a member of 'webrtc'
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:358:48: error: expected type-specifier
  358 |         config.Set<webrtc::ExtendedFilter>(new webrtc::ExtendedFilter(true));
      |                                                ^~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:371:17: error: 'webrtc::Trace' has not been declared
  371 |         webrtc::Trace::CreateTrace();
      |                 ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:372:17: error: 'webrtc::Trace' has not been declared
  372 |         webrtc::Trace::set_level_filter(webrtc::kTraceAll);
      |                 ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:372:49: error: 'kTraceAll' is not a member of 'webrtc'
  372 |         webrtc::Trace::set_level_filter(webrtc::kTraceAll);
      |                                                 ^~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:374:17: error: 'webrtc::Trace' has not been declared
  374 |         webrtc::Trace::SetTraceCallback((PaWebrtcTraceCallback *) ec->params.webrtc.trace_callback);
      |                 ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:381:29: error: 'Point' is not a member of 'webrtc'
  381 |         std::vector<webrtc::Point> geometry(rec_ss->channels);
      |                             ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:381:29: error: 'Point' is not a member of 'webrtc'
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:381:34: error: template argument 1 is invalid
  381 |         std::vector<webrtc::Point> geometry(rec_ss->channels);
      |                                  ^
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:381:34: error: template argument 2 is invalid
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:382:17: error: 'SphericalPointf' is not a member of 'webrtc'
  382 |         webrtc::SphericalPointf direction(0.0f, 0.0f, 0.0f);
      |                 ^~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:415:13: error: 'direction' was not declared in this scope; did you mean 'sigaction'?
  415 |             direction.s[0] = f[0];
      |             ^~~~~~~~~
      |             sigaction
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:421:32: error: 'Beamforming' is not a member of 'webrtc'
  421 |             config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry));
      |                                ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:421:32: error: 'Beamforming' is not a member of 'webrtc'
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:421:49: error: expected type-specifier
  421 |             config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry));
      |                                                 ^~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:423:32: error: 'Beamforming' is not a member of 'webrtc'
  423 |             config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry, direction));
      |                                ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:423:32: error: 'Beamforming' is not a member of 'webrtc'
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:423:49: error: expected type-specifier
  423 |             config.Set<webrtc::Beamforming>(new webrtc::Beamforming(true, geometry, direction));
      |                                                 ^~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:426:36: error: 'Create' is not a member of 'webrtc::AudioProcessing'
  426 |     apm = webrtc::AudioProcessing::Create(config);
      |                                    ^~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:440:14: error: 'class webrtc::AudioProcessing' has no member named 'high_pass_filter'
  440 |         apm->high_pass_filter()->Enable(true);
      |              ^~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:443:14: error: 'class webrtc::AudioProcessing' has no member named 'echo_cancellation'
  443 |         apm->echo_cancellation()->enable_drift_compensation(ec->params.drift_compensation);
      |              ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:444:14: error: 'class webrtc::AudioProcessing' has no member named 'echo_cancellation'
  444 |         apm->echo_cancellation()->Enable(true);
      |              ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:446:14: error: 'class webrtc::AudioProcessing' has no member named 'echo_control_mobile'
  446 |         apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
      |              ^~~~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:446:74: error: 'EchoControlMobile' in namespace 'webrtc' does not name a type; did you mean 'EchoControl'?
  446 |         apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
      |                                                                          ^~~~~~~~~~~~~~~~~
      |                                                                          EchoControl
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:446:91: error: expected '>' before '::' token
  446 |         apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
      |                                                                                           ^~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:446:91: error: expected '(' before '::' token
  446 |         apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
      |                                                                                           ^~
      |                                                                                           (
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:446:93: error: '::RoutingMode' has not been declared
  446 |         apm->echo_control_mobile()->set_routing_mode(static_cast<webrtc::EchoControlMobile::RoutingMode>(rm));
      |                                                                                             ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:447:14: error: 'class webrtc::AudioProcessing' has no member named 'echo_control_mobile'
  447 |         apm->echo_control_mobile()->enable_comfort_noise(cn);
      |              ^~~~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:448:14: error: 'class webrtc::AudioProcessing' has no member named 'echo_control_mobile'
  448 |         apm->echo_control_mobile()->Enable(true);
      |              ^~~~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:452:14: error: 'class webrtc::AudioProcessing' has no member named 'noise_suppression'
  452 |         apm->noise_suppression()->set_level(webrtc::NoiseSuppression::kHigh);
      |              ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:452:53: error: 'webrtc::NoiseSuppression' has not been declared
  452 |         apm->noise_suppression()->set_level(webrtc::NoiseSuppression::kHigh);
      |                                                     ^~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:453:14: error: 'class webrtc::AudioProcessing' has no member named 'noise_suppression'
  453 |         apm->noise_suppression()->Enable(true);
      |              ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:457:37: error: 'webrtc::EchoControlMobile' has not been declared
  457 |         if (mobile && rm <= webrtc::EchoControlMobile::kEarpiece) {
      |                                     ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:459:18: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  459 |             apm->gain_control()->set_mode(webrtc::GainControl::kFixedDigital);
      |                  ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:459:51: error: 'webrtc::GainControl' has not been declared
  459 |             apm->gain_control()->set_mode(webrtc::GainControl::kFixedDigital);
      |                                                   ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:462:18: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  462 |             apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveDigital);
      |                  ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:462:51: error: 'webrtc::GainControl' has not been declared
  462 |             apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveDigital);
      |                                                   ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:465:18: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  465 |             apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveAnalog);
      |                  ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:465:51: error: 'webrtc::GainControl' has not been declared
  465 |             apm->gain_control()->set_mode(webrtc::GainControl::kAdaptiveAnalog);
      |                                                   ^~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:466:22: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  466 |             if (apm->gain_control()->set_analog_level_limits(0, WEBRTC_AGC_MAX_VOLUME) !=
      |                      ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:474:14: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  474 |         apm->gain_control()->Enable(true);
      |              ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:478:14: error: 'class webrtc::AudioProcessing' has no member named 'voice_detection'
  478 |         apm->voice_detection()->Enable(true);
      |              ^~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:500:17: error: 'webrtc::Trace' has not been declared
  500 |         webrtc::Trace::ReturnTrace();
      |                 ^~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In function 'void pa_webrtc_ec_record(pa_echo_canceller*, const uint8_t*, uint8_t*)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:541:14: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  541 |         apm->gain_control()->set_stream_analog_level(old_volume);
      |              ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:556:31: error: 'class webrtc::AudioProcessing' has no member named 'gain_control'
  556 |             new_volume = apm->gain_control()->stream_analog_level();
      |                               ^~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In function 'void pa_webrtc_ec_set_drift(pa_echo_canceller*, float)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:569:10: error: 'class webrtc::AudioProcessing' has no member named 'echo_cancellation'
  569 |     apm->echo_cancellation()->set_stream_drift_samples(drift * ec->params.webrtc.blocksize);
      |          ^~~~~~~~~~~~~~~~~
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc: In function 'void pa_webrtc_ec_done(pa_echo_canceller*)':
../pulseaudio-16.1/src/modules/echo-cancel/webrtc.cc:581:17: error: 'webrtc::Trace' has not been declared
  581 |         webrtc::Trace::ReturnTrace();
      |                 ^~~~~

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson.build-accept-webrtc-audio-processing-1.patch [new file with mode: 0644]
meta/recipes-multimedia/pulseaudio/pulseaudio_16.1.bb

diff --git a/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson.build-accept-webrtc-audio-processing-1.patch b/meta/recipes-multimedia/pulseaudio/pulseaudio/0001-meson.build-accept-webrtc-audio-processing-1.patch
new file mode 100644 (file)
index 0000000..3432548
--- /dev/null
@@ -0,0 +1,25 @@
+From 6856e2e6964cb56d44457b653698eb6b3ca0d34f Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 17 Mar 2023 13:25:01 +0100
+Subject: [PATCH] meson.build: accept webrtc-audio-processing-1
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index d4cdbd6..2138e64 100644
+--- a/meson.build
++++ b/meson.build
+@@ -717,7 +717,7 @@ if get_option('daemon')
+     cdata.set('HAVE_SOXR', 1)
+   endif
+-  webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : get_option('webrtc-aec'))
++  webrtc_dep = dependency('webrtc-audio-processing-1', required : get_option('webrtc-aec'))
+   if webrtc_dep.found()
+     cdata.set('HAVE_WEBRTC', 1)
+   endif
index 64002cd1cc0e4d8902206aebf80ae93f44b78194..42b3ed3405ad2550fb456ac198d4315a1b807130 100644 (file)
@@ -5,6 +5,7 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/releases/${BP}.tar.xz \
            file://0002-do-not-display-CLFAGS-to-improve-reproducibility-bui.patch \
            file://volatiles.04_pulse \
            file://0001-doxygen-meson.build-remove-dependency-on-doxygen-bin.patch \
+           file://0001-meson.build-accept-webrtc-audio-processing-1.patch \
            "
 SRC_URI[sha256sum] = "8eef32ce91d47979f95fd9a935e738cd7eb7463430dabc72863251751e504ae4"
 UPSTREAM_CHECK_REGEX = "pulseaudio-(?P<pver>\d+(\.(?!99)\d+)+)\.tar"