User Tools

Site Tools


embedded-web-interaction:wpe:webrtc

This is an old revision of the document!


WebRTC on WPE

WebRTC is currently not shipping with the stable WPE (v2.24 at the time of writing).

However, it is present in an experimental form if compiling WPE from svn, even on the official release tag. For example, to get buildroot to compile it:

WPEWEBKIT_SITE_METHOD = svn
WPEWEBKIT_VERSION = 243536
WPEWEBKIT_SITE = "http://svn.webkit.org/repository/webkit/releases/WPE%20WebKit/webkit-2.24.0/"

WPEWEBKIT_CONF_OPTS += \
	-DENABLE_VIDEO=ON \
	-DENABLE_WEB_AUDIO=ON \
	-DENABLE_FULLSCREEN_API=ON \
	-DENABLE_MEDIA_SOURCE=ON \
	-DENABLE_WEB_RTC=ON \
	-DENABLE_MEDIA_STREAM=ON

However, when trying to compile this for RPi compilation fails because of 2 different issues. I havne't figured out the cause yet, but:

1) Strangely, while static linking libwebrtc.a, some symbols are being overwritten because of some files that have the same name in webrtc and in libsrtp (such as err.c). As a temporary fix, I changed link.txt of webrtc.dir in CMakeFiles from this command:

arm-buildroot-linux-gnueabihf-ar rT ../../../lib/libwebrtc.a  ...

To this

arm-buildroot-linux-gnueabihf-ar qT ../../../lib/libwebrtc.a  ...

Changing the r argument to q appends the symbols from the new files instead of replacing ones with files in the same name.

Looks like this should have already been fixed in CMake!

2) Probably because of my gcc flags, the libyuv library was trying to use the Neon functions of the ARM processor (as it should). However, the *_neon.cc files were not included in CMakeLists.txt, I am not sure why. I had to manually add these to CMakeLists.txt:

    Source/third_party/libyuv/source/compare_neon.cc
    Source/third_party/libyuv/source/rotate_neon.cc
    Source/third_party/libyuv/source/rotate_neon.cc
    Source/third_party/libyuv/source/row_neon.cc
    Source/third_party/libyuv/source/scale_neon.cc
embedded-web-interaction/wpe/webrtc.1554163107.txt.gz · Last modified: 2019/04/01 23:58 by avnerus