web-dev-qa-db-fra.com

echo-cancel ne fonctionne pas après la reconstruction de PulseAudio

Je travaille avec Ubuntu 14.04.5 et j'ai eu du mal à reconstruire PulseAudio à partir des sources. PulseAudio ici est 4.0-0ubuntu11.1, mais je dois le reconstruire et inclure le correctif récent https://patchwork.freedesktop.org/patch/65100/ qui améliore le module echo-cancel.

J'ai essayé de reconstruire PA en suivant les instructions des documents de la communauté Ubuntu https://help.ubuntu.com/community/UpdatingADeb . C'est à dire. apt-get build-dep ..., apt-get source ..., patch ..., debchange -i, dpkg-source --commit, debuild -us -uc -i -I. Construit a réussi, une seule erreur - "pulseaudio: script/init.d/pulseaudio: postrm-not-call-updaterc.d-pour-init.d-script", mais je pense que cela devrait être ignoré. Puis j'ai installé les packages construits en utilisant debi, j'ai essayé de lancer PA et d'obtenir l'erreur suivante:

$ pulseaudio -vvv
<...>
D: [pulseaudio] module-systemd-login.c: Added new session c2
I: [pulseaudio] module.c: Loaded "module-systemd-login" (index: #14; argument: "").
I: [pulseaudio] module.c: Loaded "module-position-event-sounds" (index: #15; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-heuristics" (index: #16; argument: "").
I: [pulseaudio] module.c: Loaded "module-filter-apply" (index: #17; argument: "").
Inconsistency detected by ld.so: dl-open.c: 689: _dl_open: Assertion `_dl_debug_initialize (0, args.nsid)->r_state == RT_CONSISTENT' failed!

Le moment où le lancement échoue est exactement le moment où le module echo-cancel devrait commencer. De plus, même si je reconstruis PA sans aucun changement significatif, j'obtiens la même erreur. Si j'utilise PA du référentiel officiel Ubuntu, il démarre sans erreur et lance le module echo-cancel avec succès.

Voici comment j'active echo-cancel, ces lignes que j'ai ajoutées à la fin de /etc/Pulse/default.pa:

load-module module-echo-cancel source_name=noechosource sink_name=noechosink
set-default-source noechosource
set-default-sink noechosink

Quelqu'un pourrait-il suggérer comment puis-je résoudre ce problème de reconstruction de l'AP? Peut-être que la façon dont je reconstruis le paquet est erronée à un moment donné. Comme je l'ai dit, le problème ne vient même pas de la reconstruction de PA modifiée, mais d'une simple reconstruction sans modification. Il semble donc que le problème concerne le processus de construction lui-même.

2
Dmitriy Vinokurov

Je l'ai compris, du moins dans les grandes lignes:

C'est un problème spécifique à la construction de deb, qui n'est pas lié à PulseAudio:

  • L'échec de l'assertion RT_CONSISTENT a été provoqué par la dépendance manquante de module-echo-cancel.so:
    ldd sur ce module affiche libwebrtc-util.so => not found et, conformément à debuild log, ce fichier a été créé, mais n'est pas inclus dans deb et n'a donc pas été installé. au système
  • Le package trusty PA par défaut est construit sans le support de WebRTC AEC (et c'est pourquoi vous n'avez pas besoin d'installer ni d'installer libwebrtc-util.so).
  • Mais j'ai besoin exactement de ce type d'AEC et c'est pourquoi j'ai installé le paquetage libwebrtc-audio-processing-dev avant de reconstruire le PA. Ces bibliothèques WebRTC ont été capturées par le script de configuration de PA et le PA a été construit avec le support WebRTC, mais lors des étapes post-construites, tous les fichiers requis n'ont pas été empaquetés vers deb.
  • Maintenant, en tant que mesure temporaire, j'ai déplacé manuellement libwebrtc-util.so à l'emplacement souhaité. Plus tard, je découvrirai comment corriger les scripts de construction pour traiter correctement cette affaire et revenir pour mettre à jour cette réponse.
1
Dmitriy Vinokurov