Ticket #588 (closed enhancement: fixed)

Opened 10 years ago

Last modified 10 years ago

Improvements to echo cancellation framework

Reported by: bennylp Owned by: nanang
Priority: normal Milestone: release-1.0-rc1
Component: pjmedia Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description

Modify the echo cancellation framework as follow to make it easier to integrate with new echo cancellation backends, and to generally improve it. These changes should be backward compatible.

  • Support for multi-channel echo cancellation:
    • Add new API to specify channel count
    • Modify EC backends to support multi-channel EC (latest Speex AEC supports this)
  • Change the semantic of options flag when creating the EC, to allow application to choose which EC backend to use when there are multiple backend algorithm.
  • Move the latency compensation functionality from Speex EC (echo_speex.c) to the generic EC framework (echo_common.c) so that it can be reused by other backends.
  • Since the common EC framework now does the buffering, remove the ec_playback() and ec_capture() internal API from the backends. The backends now only need to supply ec_cancel() API, which is simpler, and this opens support for more backends.
  • Add new reset API.
  • Modify the aectest.c to work with WAV files instead of live recording. This would make it easier to test.

Change History

comment:1 Changed 10 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to fixed

Done in r2198. Also in this changeset:

  • roll-back Speex mdf.c from rc1 to beta3 version as the latest one does not work.

comment:2 Changed 10 years ago by bennylp

Note:

  • with the previous commit, Speex AEC currently does not support multi-channel EC. This will be updated by ticket #589
Note: See TracTickets for help on using tickets.