Ticket #1954 (closed enhancement: fixed)

Opened 13 months ago

Last modified 8 months ago

Add WebRTC to third party component

Reported by: ming Owned by: bennylp
Priority: normal Milestone: release-2.6
Component: third-party Version: trunk
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description (last modified by ming) (diff)

WebRTC AEC support is added in ticket #1888. However, building WebRTC separately has a few drawbacks:

  • Following the recommended steps to build WebRTC, it is required to download the entire project which is large in size (approximately 6 GB), while we actually only require a small portion of it (namely, the AEC component).
  • The latest version of WebRTC has some modifications which is incompatible with our implementation. Thus, we can only use the version circa October 2015 or before.

This ticket will add WebRTC to the third party folder, use a specific version and include only the necessary source.

Below is the steps to build and use WebRTC:

For GNU targets

  1. By default, WebRTC will always be built automatically. This automatic build can be disabled via configure script param --disable-webrtc.
  2. if you want to use external WebRTC, specify --with-external-webrtc and set header/library search paths via CFLAGS and LDFLAGS environment variables. See ticket #1888 for more details as to which libraries are required.

Additional step for iOS targets

  1. Add third-party/lib/libwebrtc-[TARGET].a to application project in XCode.

Supported architectures for Android

  1. On Android, we successfully tested with these architectures: armeabi (armv7), armeabi-v7a, arm64-v8a, mips, mips64, x86, x86_64.

For Visual Studio

  1. libwebrtc will always be built automatically.
  2. To enable WebRTC AEC, add this to your config_site.h:
    #define PJMEDIA_HAS_WEBRTC_AEC		1
    

Change History

comment:1 Changed 13 months ago by ming

  • Description modified (diff)
  • Summary changed from Add webrtc to third party component to Add WebRTC to third party component

comment:2 Changed 13 months ago by ming

In 5428:

Re #1954: Add WebRTC to third party component

  • Add build config for GNU build systems

comment:3 Changed 13 months ago by ming

In 5429:

Re #1954: Fixed compilation flags for Android armeabi build

comment:4 Changed 13 months ago by ming

In 5431:

Re #1954: Fixed compilation flags for building on arm64 iOS.

comment:5 Changed 13 months ago by ming

In 5432:

Re #1954: Add support for VS2015.

comment:6 Changed 13 months ago by riza

In 5433:

Re #1954: Add support for VS2005.

comment:7 Changed 13 months ago by ming

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

comment:8 Changed 12 months ago by riza

In 5438:

Re #1954 (misc): Fix build error on pjmedia-test when defining PJMEDIA_CONF_USE_SWITCH_BOARD.

comment:9 Changed 12 months ago by ming

In 5443:

Re #1954: Add libwebrtc to ipjsua sample app

comment:10 Changed 12 months ago by ming

In 5446:

Re #1954: Add option to use WebRtc? EC in aectest sample app

comment:11 Changed 10 months ago by ming

In 5496:

Re #1954: Add WebRTC license info files

comment:12 Changed 9 months ago by nanang

In 5499:

Misc (re #1945 and re #1954): Export TARGET_ABI to env var in configure-android script. This var is needed by configure script to generate WebRTC source list for Android when "--use-ndk-cflags" is specified.

comment:13 Changed 9 months ago by ming

In r5509:

Checked in as ticket #1945 (misc): Fixed WebRTC build failure for mips64 platform (thanks Oliver Wigley for the report).

comment:14 Changed 9 months ago by ming

  • Description modified (diff)

comment:15 Changed 8 months ago by nanang

In 5548:

Re #1954: Fixed WebRTC build config for mingw32/msys.

Note: See TracTickets for help on using tickets.