Changes between Version 4 and Version 5 of Ticket #1888


Ignore:
Timestamp:
Oct 7, 2015 3:35:20 PM (3 years ago)
Author:
ismangil
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1888

    • Property Summary changed from Support for WebRtc Accoustic Echo Cancellation to Support for WebRTC Accoustic Echo Cancellation
  • Ticket #1888 – Description

    v4 v5  
    1 [[Image()]]= How to build WebRTC = 
     1[[Image()]] 
     2 
     3= How to build WebRTC = 
    24== Mac == 
    3 Refer to !WebRtc development guide [http://www.webrtc.org/native-code/development here]. 
     5Refer to !WebRTC development guide [http://www.webrtc.org/native-code/development here]. 
    46 
    57Then configure PJSIP with: 
     
    911 
    1012== iOS (ARM) == 
    11 Refer to !WebRtc development guide [http://www.webrtc.org/native-code/ios here]. 
     13Refer to !WebRTC development guide [http://www.webrtc.org/native-code/ios here]. 
    1214 
    13 PJSIP's auto configuration will look for the library in {{{out_ios/Release}}} folder, so make sure you set the output dir properly when building !WebRtc 
     15PJSIP's auto configuration will look for the library in {{{out_ios/Release}}} folder, so make sure you set the output dir properly when building !WebRTC  
    1416{{{ 
    1517export GYP_GENERATOR_FLAGS="output_dir=out_ios" 
     
    2527Android development is only supported on Linux (reference [http://www.webrtc.org/native-code/android here]), so if you use other platforms, you need to set up a Linux virtual machine. 
    2628 
    27 Alternatively, you can build the stripped down version of !WebRtc instead, which will only build the required AEC module and its required dependencies. These steps below are tested on a Mac machine: 
     29Alternatively, you can build the stripped down version of !WebRTC instead, which will only build the required AEC module and its required dependencies. These steps below are tested on a Mac machine: 
    28301. Create a working directory, for example: {{{webrtc-android}}}. 
    29311. Go to the work dir and unzip {{{webrtc-android-jni.zip}}} (provided in the ticket attachment below). 
     
    5860Then rebuild PJSIP. 
    5961 
    60 = How to use !WebRtc AEC = 
    61 To use !WebRtc AEC, specify the value {{{PJMEDIA_ECHO_WEBRTC}}} in {{{pjsua_media_config.ec_options}}} ({{{MediaConfig.ecOptions}}} for PJSUA2), and specify the delay estimate for sound card and system buffers in {{{pjsua_media_config.ec_tail_len}}} ({{{MediaConfig.ecTailLen}}} for PJSUA2). !WebRtc AEC's performance is very dependent on this delay calculation. A poor estimate, even by as little as 40ms, may affect the echo cancellation results greatly. Our !WebRtc wrapper has enabled the delay agnostic feature, which will adjust the delay accordingly, however it may take some time (5-10s or more) for the Aec module to learn the optimal delay, thus a good initial estimate is necessary for good EC quality in the beginning of a call. 
     62= How to use !WebRTC AEC = 
     63To use !WebRTC AEC, specify the value {{{PJMEDIA_ECHO_WEBRTC}}} in {{{pjsua_media_config.ec_options}}} ({{{MediaConfig.ecOptions}}} for PJSUA2), and specify the delay estimate for sound card and system buffers in {{{pjsua_media_config.ec_tail_len}}} ({{{MediaConfig.ecTailLen}}} for PJSUA2). !WebRTC AEC's performance is very dependent on this delay calculation. A poor estimate, even by as little as 40ms, may affect the echo cancellation results greatly. Our !WebRTC wrapper has enabled the delay agnostic feature, which will adjust the delay accordingly, however it may take some time (5-10s or more) for the Aec module to learn the optimal delay, thus a good initial estimate is necessary for good EC quality in the beginning of a call. 
    6264 
    6365The delay should be '''at least''' as much as frame time (by default, ptime is 20ms) + {{{PJMEDIA_WSOLA_DELAY_MSEC}}} (the default is 5ms). 
     
    6870}}} 
    6971 
    70 = Poor !WebRtc EC quality = 
     72= Poor !WebRTC EC quality = 
    7173Disable {{{PJMEDIA_WEBRTC_AEC_USE_MOBILE}}} (set it to 0), then change the definition of {{{SHOW_DELAY_METRICS}}} in {{{pjmedia/src/pjmedia/echo_webrtc.c}}} to a non-zero value. For example, if you set to 250, with ptime 20ms, it will print the delay metrics stats every 5 seconds or so. 
    7274{{{