- Timestamp:
- Oct 6, 2015 5:57:51 AM (9 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/aconfigure
r5150 r5186 639 639 openssl_h_present 640 640 ac_no_ssl 641 ac_webrtc_ldflags 642 ac_webrtc_cflags 641 643 ac_libyuv_ldflags 642 644 ac_libyuv_cflags … … 801 803 with_libyuv 802 804 enable_libyuv 805 with_webrtc 806 enable_webrtc 803 807 enable_ipp 804 808 with_ipp … … 1466 1470 --disable-openh264 Disable OpenH264 (default: not disabled) 1467 1471 --disable-libyuv Exclude libyuv in the build 1472 --disable-webrtc Exclude webrtc in the build 1468 1473 --enable-ipp Enable Intel IPP support. Specify the Intel IPP 1469 1474 package and samples location using IPPROOT and … … 1506 1511 --with-openh264=DIR Specify alternate OpenH264 prefix 1507 1512 --with-libyuv=DIR Specify alternate libyuv prefix 1513 --with-webrtc=DIR Specify alternate WebRtc prefix 1508 1514 --with-ipp=DIR Specify the Intel IPP location 1509 1515 --with-ipp-samples=DIR Specify the Intel IPP samples location … … 7323 7329 7324 7330 7331 7332 # Check whether --with-webrtc was given. 7333 if test "${with_webrtc+set}" = set; then : 7334 withval=$with_webrtc; 7335 else 7336 with_webrtc=no 7337 7338 fi 7339 7340 7341 if test "x$ac_cross_compile" != "x" -a "x$with_webrtc" = "xno"; then 7342 enable_webrtc=no 7343 fi 7344 7345 7346 7347 # Check whether --enable-webrtc was given. 7348 if test "${enable_webrtc+set}" = set; then : 7349 enableval=$enable_webrtc; if test "$enable_webrtc" = "no"; then 7350 { $as_echo "$as_me:${as_lineno-$LINENO}: result: Checking if webrtc is disabled...yes" >&5 7351 $as_echo "Checking if webrtc is disabled...yes" >&6; } 7352 fi 7353 else 7354 7355 if test "x$with_webrtc" != "xno" -a "x$with_webrtc" != "x"; then 7356 WEBRTC_PREFIX=$with_webrtc 7357 WEBRTC_CFLAGS="-I$WEBRTC_PREFIX/src" 7358 7359 case $target in 7360 *-apple-darwin_ios*) 7361 case $ARCH in 7362 *arm*) 7363 WEBRTC_CFLAGS="-DPJMEDIA_WEBRTC_AEC_USE_MOBILE=1 $WEBRTC_CFLAGS" 7364 WEBRTC_LDFLAGS="-L$WEBRTC_PREFIX/src/out_ios/Release-iphoneos" 7365 WEBRTC_LIBS="-laudio_processing_neon -lcommon_audio_neon" 7366 ;; 7367 *) 7368 ;; 7369 esac 7370 ;; 7371 *mingw* | *cygw* | *win32* | *w32* | *darwin* | *linux* | *android*) 7372 WEBRTC_LDFLAGS="-L$WEBRTC_PREFIX/src/out/Release" 7373 WEBRTC_LIBS="-laudio_processing_sse2" 7374 ;; 7375 *) 7376 ;; 7377 esac 7378 7379 { $as_echo "$as_me:${as_lineno-$LINENO}: result: Using webrtc prefix... $with_webrtc" >&5 7380 $as_echo "Using webrtc prefix... $with_webrtc" >&6; } 7381 else 7382 WEBRTC_CFLAGS="" 7383 WEBRTC_LDFLAGS="" 7384 fi 7385 7386 WEBRTC_LIBS="$WEBRTC_LIBS -laudio_processing -lcommon_audio -lsystem_wrappers" 7387 7388 SAVED_LIBS="$LIBS" 7389 SAVED_LDFLAGS="$LDFLAGS" 7390 SAVED_CFLAGS="$CFLAGS" 7391 7392 LIBS="$WEBRTC_LIBS $LIBS" 7393 LDFLAGS="$WEBRTC_LDFLAGS $LDFLAGS" 7394 CFLAGS="$WEBRTC_CFLAGS $CFLAGS" 7395 7396 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WebRtcAec_Process in -laudio_processing" >&5 7397 $as_echo_n "checking for WebRtcAec_Process in -laudio_processing... " >&6; } 7398 if ${ac_cv_lib_audio_processing_WebRtcAec_Process+:} false; then : 7399 $as_echo_n "(cached) " >&6 7400 else 7401 ac_check_lib_save_LIBS=$LIBS 7402 LIBS="-laudio_processing 7403 $LIBS" 7404 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 7405 /* end confdefs.h. */ 7406 7407 /* Override any GCC internal prototype to avoid an error. 7408 Use char because int might match the return type of a GCC 7409 builtin and then its argument prototype would still apply. */ 7410 #ifdef __cplusplus 7411 extern "C" 7412 #endif 7413 char WebRtcAec_Process (); 7414 int 7415 main () 7416 { 7417 return WebRtcAec_Process (); 7418 ; 7419 return 0; 7420 } 7421 _ACEOF 7422 if ac_fn_c_try_link "$LINENO"; then : 7423 ac_cv_lib_audio_processing_WebRtcAec_Process=yes 7424 else 7425 ac_cv_lib_audio_processing_WebRtcAec_Process=no 7426 fi 7427 rm -f core conftest.err conftest.$ac_objext \ 7428 conftest$ac_exeext conftest.$ac_ext 7429 LIBS=$ac_check_lib_save_LIBS 7430 fi 7431 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audio_processing_WebRtcAec_Process" >&5 7432 $as_echo "$ac_cv_lib_audio_processing_WebRtcAec_Process" >&6; } 7433 if test "x$ac_cv_lib_audio_processing_WebRtcAec_Process" = xyes; then : 7434 ac_webrtc_cflags="-DPJMEDIA_HAS_WEBRTC_AEC=1 $WEBRTC_CFLAGS" 7435 ac_webrtc_ldflags="$WEBRTC_LDFLAGS $WEBRTC_LIBS" 7436 7437 else 7438 LIBS="$SAVED_LIBS" 7439 LDFLAGS="$SAVED_LDFLAGS" 7440 CFLAGS="$SAVED_CFLAGS" 7441 7442 fi 7443 7444 7445 fi 7446 7447 7325 7448 # Check whether --enable-ipp was given. 7326 7449 if test "${enable_ipp+set}" = set; then : -
pjproject/trunk/aconfigure.ac
r5150 r5186 1257 1257 1258 1258 1259 dnl # WebRtc alt prefix 1260 AC_ARG_WITH(webrtc, 1261 AC_HELP_STRING([--with-webrtc=DIR], 1262 [Specify alternate WebRtc prefix]), 1263 [], 1264 [with_webrtc=no] 1265 ) 1266 1267 dnl # Do not use default webrtc installation if we are cross-compiling 1268 if test "x$ac_cross_compile" != "x" -a "x$with_webrtc" = "xno"; then 1269 enable_webrtc=no 1270 fi 1271 1272 dnl # WebRtc 1273 AC_SUBST(ac_webrtc_cflags) 1274 AC_SUBST(ac_webrtc_ldflags) 1275 AC_ARG_ENABLE(webrtc, 1276 AC_HELP_STRING([--disable-webrtc], 1277 [Exclude webrtc in the build]), 1278 [if test "$enable_webrtc" = "no"; then 1279 AC_MSG_RESULT([Checking if webrtc is disabled...yes]) 1280 fi], 1281 [ 1282 if test "x$with_webrtc" != "xno" -a "x$with_webrtc" != "x"; then 1283 WEBRTC_PREFIX=$with_webrtc 1284 WEBRTC_CFLAGS="-I$WEBRTC_PREFIX/src" 1285 1286 case $target in 1287 *-apple-darwin_ios*) 1288 case $ARCH in 1289 *arm*) 1290 WEBRTC_CFLAGS="-DPJMEDIA_WEBRTC_AEC_USE_MOBILE=1 $WEBRTC_CFLAGS" 1291 WEBRTC_LDFLAGS="-L$WEBRTC_PREFIX/src/out_ios/Release-iphoneos" 1292 WEBRTC_LIBS="-laudio_processing_neon -lcommon_audio_neon" 1293 ;; 1294 *) 1295 ;; 1296 esac 1297 ;; 1298 *mingw* | *cygw* | *win32* | *w32* | *darwin* | *linux* | *android*) 1299 WEBRTC_LDFLAGS="-L$WEBRTC_PREFIX/src/out/Release" 1300 WEBRTC_LIBS="-laudio_processing_sse2" 1301 ;; 1302 *) 1303 ;; 1304 esac 1305 1306 AC_MSG_RESULT([Using webrtc prefix... $with_webrtc]) 1307 else 1308 WEBRTC_CFLAGS="" 1309 WEBRTC_LDFLAGS="" 1310 fi 1311 1312 WEBRTC_LIBS="$WEBRTC_LIBS -laudio_processing -lcommon_audio -lsystem_wrappers" 1313 1314 SAVED_LIBS="$LIBS" 1315 SAVED_LDFLAGS="$LDFLAGS" 1316 SAVED_CFLAGS="$CFLAGS" 1317 1318 LIBS="$WEBRTC_LIBS $LIBS" 1319 LDFLAGS="$WEBRTC_LDFLAGS $LDFLAGS" 1320 CFLAGS="$WEBRTC_CFLAGS $CFLAGS" 1321 1322 AC_CHECK_LIB(audio_processing, 1323 WebRtcAec_Process, 1324 [ ac_webrtc_cflags="-DPJMEDIA_HAS_WEBRTC_AEC=1 $WEBRTC_CFLAGS" 1325 ac_webrtc_ldflags="$WEBRTC_LDFLAGS $WEBRTC_LIBS" 1326 ], 1327 [ LIBS="$SAVED_LIBS" 1328 LDFLAGS="$SAVED_LDFLAGS" 1329 CFLAGS="$SAVED_CFLAGS" 1330 ], 1331 [] 1332 ) 1333 ]) 1334 1259 1335 dnl ######################################################## 1260 1336 dnl # Intel IPP support -
pjproject/trunk/pjmedia/build/Makefile
r5118 r5186 63 63 conf_switch.o converter.o converter_libswscale.o converter_libyuv.o \ 64 64 delaybuf.o echo_common.o \ 65 echo_port.o echo_suppress.o e ndpoint.o errno.o \65 echo_port.o echo_suppress.o echo_webrtc.o endpoint.o errno.o \ 66 66 event.o format.o ffmpeg_util.o \ 67 67 g711.o jbuf.o master_port.o mem_capture.o mem_player.o \ -
pjproject/trunk/pjmedia/build/os-auto.mak.in
r5029 r5186 38 38 OPENH264_LDFLAGS = @ac_openh264_ldflags@ 39 39 40 # WebRtc 41 WEBRTC_CFLAGS = @ac_webrtc_cflags@ 42 WEBRTC_LDFLAGS = @ac_webrtc_ldflags@ 43 40 44 41 45 # PJMEDIA features exclusion … … 43 47 $(SDL_CFLAGS) $(FFMPEG_CFLAGS) $(V4L2_CFLAGS) $(QT_CFLAGS) \ 44 48 $(IOS_CFLAGS) $(ANDROID_CFLAGS) $(LIBYUV_CFLAGS) \ 45 $(OPENH264_CFLAGS) 49 $(OPENH264_CFLAGS) $(WEBRTC_CFLAGS) 46 50 export LDFLAGS += $(SDL_LDFLAGS) $(FFMPEG_LDFLAGS) $(V4L2_LDFLAGS) \ 47 $(LIBYUV_LDFLAGS) $(OPENH264_LDFLAGS) 51 $(LIBYUV_LDFLAGS) $(OPENH264_LDFLAGS) $(WEBRTC_LDFLAGS) 48 52 49 53 # Define the desired sound device backend -
pjproject/trunk/pjmedia/include/pjmedia/config.h
r4981 r5186 658 658 659 659 /** 660 * WebRtc Accoustic Echo Cancellation (AEC). 661 * By default is disabled. 662 */ 663 #ifndef PJMEDIA_HAS_WEBRTC_AEC 664 # define PJMEDIA_HAS_WEBRTC_AEC 0 665 #endif 666 667 /** 668 * Specify whether WebRtc EC should use its mobile version AEC. 669 * 670 * Default: 0 (no) 671 */ 672 #ifndef PJMEDIA_WEBRTC_AEC_USE_MOBILE 673 # define PJMEDIA_WEBRTC_AEC_USE_MOBILE 0 674 #endif 675 676 677 /** 660 678 * Maximum number of parameters in SDP fmtp attribute. 661 679 * -
pjproject/trunk/pjmedia/include/pjmedia/echo.h
r4082 r5186 67 67 /** 68 68 * Force to use Speex AEC as the backend echo canceller algorithm. 69 * This setting is mutually exclusive with PJMEDIA_ECHO_SIMPLE. 69 * This setting is mutually exclusive with PJMEDIA_ECHO_SIMPLE and 70 * PJMEDIA_ECHO_WEBRTC. 70 71 */ 71 72 PJMEDIA_ECHO_SPEEX = 1, … … 75 76 * creation, then a simple echo suppressor will be used instead of 76 77 * an accoustic echo cancellation. This setting is mutually exclusive 77 * with PJMEDIA_ECHO_SPEEX .78 * with PJMEDIA_ECHO_SPEEX and PJMEDIA_ECHO_WEBRTC. 78 79 */ 79 80 PJMEDIA_ECHO_SIMPLE = 2, 81 82 /** 83 * Force to use WebRTC AEC as the backend echo canceller algorithm. 84 * This setting is mutually exclusive with PJMEDIA_ECHO_SIMPLE and 85 * PJMEDIA_ECHO_SPEEX. 86 */ 87 PJMEDIA_ECHO_WEBRTC = 3, 80 88 81 89 /** … … 102 110 * will be used instead of device EC. 103 111 */ 104 PJMEDIA_ECHO_USE_SW_ECHO = 64 112 PJMEDIA_ECHO_USE_SW_ECHO = 64, 113 114 /** 115 * If PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR flag is specified, the echo 116 * canceller will also apply noise suppressor method to reduce noise. 117 */ 118 PJMEDIA_ECHO_USE_NOISE_SUPPRESSOR = 128, 119 120 /** 121 * Use default aggressiveness setting for the echo canceller algorithm. 122 * This setting is mutually exclusive with the other aggressiveness 123 * settings. 124 */ 125 PJMEDIA_ECHO_AGGRESSIVENESS_DEFAULT = 0, 126 127 /** 128 * Use conservative aggressiveness setting for the echo canceller 129 * algorithm. This setting is mutually exclusive with the other 130 * aggressiveness settings. 131 */ 132 PJMEDIA_ECHO_AGGRESSIVENESS_CONSERVATIVE = 0x100, 133 134 /** 135 * Use moderate aggressiveness setting for the echo canceller algorithm. 136 * This setting is mutually exclusive with the other aggressiveness 137 * settings. 138 */ 139 PJMEDIA_ECHO_AGGRESSIVENESS_MODERATE = 0x200, 140 141 /** 142 * Use aggressive aggressiveness setting for the echo canceller 143 * algorithm. This setting is mutually exclusive with the other 144 * aggressiveness settings. 145 */ 146 PJMEDIA_ECHO_AGGRESSIVENESS_AGGRESSIVE = 0x300, 147 148 /** 149 * For internal use. 150 */ 151 PJMEDIA_ECHO_AGGRESSIVENESS_MASK = 0xF00 105 152 106 153 } pjmedia_echo_flag; -
pjproject/trunk/pjmedia/src/pjmedia/echo_common.c
r4622 r5186 126 126 127 127 /* 128 * WebRTC AEC prototypes 129 */ 130 #if defined(PJMEDIA_HAS_WEBRTC_AEC) && PJMEDIA_HAS_WEBRTC_AEC!=0 131 static struct ec_operations webrtc_aec_op = 132 { 133 "WebRTC AEC", 134 &webrtc_aec_create, 135 &webrtc_aec_destroy, 136 &webrtc_aec_reset, 137 &webrtc_aec_cancel_echo 138 }; 139 #endif 140 141 /* 128 142 * Create the echo canceller. 129 143 */ … … 186 200 #endif 187 201 202 #if defined(PJMEDIA_HAS_WEBRTC_AEC) && PJMEDIA_HAS_WEBRTC_AEC!=0 203 } else if ((options & PJMEDIA_ECHO_ALGO_MASK) == PJMEDIA_ECHO_WEBRTC || 204 (options & PJMEDIA_ECHO_ALGO_MASK) == PJMEDIA_ECHO_DEFAULT) 205 { 206 ec->op = &webrtc_aec_op; 207 #endif 208 188 209 } else { 189 210 ec->op = &echo_supp_op; -
pjproject/trunk/pjmedia/src/pjmedia/echo_internal.h
r4622 r5186 78 78 void *reserved ); 79 79 80 PJ_DECL(pj_status_t) webrtc_aec_create(pj_pool_t *pool, 81 unsigned clock_rate, 82 unsigned channel_count, 83 unsigned samples_per_frame, 84 unsigned tail_ms, 85 unsigned options, 86 void **p_echo ); 87 PJ_DECL(pj_status_t) webrtc_aec_destroy(void *state ); 88 PJ_DECL(void) webrtc_aec_reset(void *state ); 89 PJ_DECL(pj_status_t) webrtc_aec_cancel_echo(void *state, 90 pj_int16_t *rec_frm, 91 const pj_int16_t *play_frm, 92 unsigned options, 93 void *reserved ); 94 80 95 81 96 PJ_END_DECL -
pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app_config.c
r5077 r5186 23 23 24 24 #define MAX_APP_OPTIONS 128 25 26 #define str(s) #s 27 #define xstr(s) str(s) 25 28 26 29 char *stdout_refresh_text = "STDOUT_REFRESH"; … … 142 145 puts (" --rec-file=file Open file recorder (extension can be .wav or .mp3"); 143 146 puts (" --auto-rec Automatically record conversation"); 144 puts (" --quality=N Specify media quality (0-10, default=6)"); 147 puts (" --quality=N Specify media quality (0-10, default=" 148 xstr(PJSUA_DEFAULT_CODEC_QUALITY) ")"); 145 149 puts (" --ptime=MSEC Override codec ptime to MSEC (default=specific)"); 146 150 puts (" --no-vad Disable VAD/silence detector (default=vad enabled)"); 147 puts (" --ec-tail=MSEC Set echo canceller tail length (default=256)"); 151 puts (" --ec-tail=MSEC Set echo canceller tail length (default=" 152 xstr(PJSUA_DEFAULT_EC_TAIL_LEN) ")"); 148 153 puts (" --ec-opt=OPT Select echo canceller algorithm (0=default, "); 149 puts (" 1=speex, 2=suppressor)"); 150 puts (" --ilbc-mode=MODE Set iLBC codec mode (20 or 30, default is 30)"); 154 puts (" 1=speex, 2=suppressor, 3=WebRtc)"); 155 puts (" --ilbc-mode=MODE Set iLBC codec mode (20 or 30, default is " 156 xstr(PJSUA_DEFAULT_ILBC_MODE) ")"); 151 157 puts (" --capture-dev=id Audio capture device ID (default=-1)"); 152 158 puts (" --playback-dev=id Audio playback device ID (default=-1)"); 153 puts (" --capture-lat=N Audio capture latency, in ms (default=100)"); 154 puts (" --playback-lat=N Audio playback latency, in ms (default=100)"); 159 puts (" --capture-lat=N Audio capture latency, in ms (default=" 160 xstr(PJMEDIA_SND_DEFAULT_REC_LATENCY) ")"); 161 puts (" --playback-lat=N Audio playback latency, in ms (default=" 162 xstr(PJMEDIA_SND_DEFAULT_PLAY_LATENCY) ")"); 155 163 puts (" --snd-auto-close=N Auto close audio device when idle for N secs (default=1)"); 156 164 puts (" Specify N=-1 to disable this feature.");
Note: See TracChangeset
for help on using the changeset viewer.