Summary: | Crash when enabling echo cancellation and also specifying PULSE_PROP="filter.want=echo-cancel media.role=phone" | ||
---|---|---|---|
Product: | PulseAudio | Reporter: | Raman Gupta <rocketraman> |
Component: | modules | Assignee: | pulseaudio-bugs |
Status: | RESOLVED FIXED | QA Contact: | pulseaudio-bugs |
Severity: | normal | ||
Priority: | medium | CC: | lennart |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Bug Depends on: | |||
Bug Blocks: | 102546 | ||
Attachments: |
gdb backtrace with symbols
Output of pa Patch ignore monitor sources |
Description
Raman Gupta
2018-02-06 00:49:04 UTC
One followup: if the echo cancel module is not added explicitly to default.pa, then there is no crash. There is no need to load module-echo-cancel explicitly when you specify filter.want. Nevertheless the crash should not happen. Can you please supply a full log? It looks like module-filter-apply tries to use the filter while its master source is moving, but there is not enough of the log to verify. The simple fix might be to return false in find_paired_master() if so->source->output_from_master is NULL, but I need to be sure about the order of events. Created attachment 137182 [details] Output of pa (In reply to Georg Chini from comment #2) > There is no need to load module-echo-cancel explicitly when you specify > filter.want. Agreed, though I note that the only reason I added loading of the module explicitly was because I there does not appear to be any way to specify parameters to the echo cancel module when using filter.want... > Nevertheless the crash should not happen. Can you please supply > a full log? It looks like module-filter-apply tries to use the filter while > its master source is moving, but there is not enough of the log to verify. > The simple fix might be to return false in find_paired_master() if > so->source->output_from_master is NULL, but I need to be sure about the > order of events. I have attached the full log as pa.log. Created attachment 137188 [details] [review] Patch ignore monitor sources Could you try the attached patch? Zoiper seems to test all the available sources and sinks if I read the log right. So module-filter-apply at some point tried to use the monitor source of the echo-cancel sink as source for the filter. Since 11.0 there is a way to pass parameters to a filter loaded via filter.want. You should be able to specify them via the filter.apply.echo-cancel.parameters property. (In reply to Georg Chini from comment #4) Could you try the attached patch? Zoiper seems to test all the available sources and sinks if I read the log right. So module-filter-apply at some point tried to use the monitor source of the echo-cancel sink as source for the filter. Yes, this patch solves the segfault. (In reply to Georg Chini from comment #5) > Since 11.0 there is a way to pass parameters to a filter loaded via > filter.want. You should be able to specify them via the > filter.apply.echo-cancel.parameters property. Nice! I googled "filter.apply.echo-cancel.parameters" with no results. Can you provide an example of its use or a docs or code reference? Thanks for testing. Regarding the new feature, there is not much documentation. You can find some in the release notes for 11.0 under "Notes for application developers". Release notes are at https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/11.0/. The commit which introduced the feature is here: https://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/?id=caabff2728d9d588664f8a0ea2f8441804c8b91a Since this is a crash bug, I'm marking this as a release blocker. Georg's fix is now in master, closing bug. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.