User Tools

Site Tools


embedded-web-interaction:wpe:webrtc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
embedded-web-interaction:wpe:webrtc [2019/04/01 23:58]
avnerus
embedded-web-interaction:wpe:webrtc [2019/04/02 11:51] (current)
avnerus
Line 21: Line 21:
 </​code>​ </​code>​
  
-However, when trying to compile this for RPi compilation fails because of 2 different issues. I havne'​t figured out the cause yet, but:+When trying to compile this for RPi compilation fails because of 2 different issues:
  
-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 temporary fixI changed ​//​link.txt// ​ of webrtc.dir in CMakeFiles from this command:+1) While static linking libwebrtc.a,​ some symbols are being overwritten because of files that have the same name
 +  * **third_party/​boringssl/​src/​crypto/​err/​err.c** 
 +  * **third_party/​libsrtp/​crypto/​kernel/​err.c** 
 + 
 +The symbols are overwritten because libsrtp is appended in separate //ar// commandbecause it is defined as: 
 +<​code>​ 
 + ​$<​TARGET_OBJECTS:​libsrtp>​ 
 +</​code>​ 
 + 
 +Changing ​//​link.txt//​ of webrtc.dir in CMakeFiles from this command:
 <​code>​ <​code>​
 arm-buildroot-linux-gnueabihf-ar rT ../​../​../​lib/​libwebrtc.a ​ ... arm-buildroot-linux-gnueabihf-ar rT ../​../​../​lib/​libwebrtc.a ​ ...
Line 31: Line 40:
 arm-buildroot-linux-gnueabihf-ar qT ../​../​../​lib/​libwebrtc.a ​ ... arm-buildroot-linux-gnueabihf-ar qT ../​../​../​lib/​libwebrtc.a ​ ...
 </​code>​ </​code>​
-Changing the r argument to q appends ​the symbols ​from the new files instead of replacing ones with files in the same name.+Appends ​the symbols instead of replacing ones with files in the same name and fixes the problem.
  
-Looks like this should have already been fixed in [[https://​github.com/​Kitware/​CMake/​commit/​1ec6485c6a16c230bf29696ab8fd48eb5edbb78a|CMake]]+This should have already been fixed in [[https://​github.com/​Kitware/​CMake/​commit/​1ec6485c6a16c230bf29696ab8fd48eb5edbb78a|CMake]], but WebKit added the **USE_THIN_ARCHIVES** [[https://​svn.webkit.org/​repository/​webkit/​releases/​WPE%20WebKit/​webkit-2.24.0/​Source/​cmake/​OptionsCommon.cmake|feature]] that introduced this issue.
  
-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:+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 [[https://​trac.webkit.org/​browser/​webkit/​releases/​WPE%20WebKit/​webkit-2.24.0/​Source/​ThirdParty/​libwebrtc/​CMakeLists.txt?​rev=243690|CMakeLists.txt,​]] I am not sure why. I had to manually add these:
  
 <​code>​ <​code>​
embedded-web-interaction/wpe/webrtc.1554163107.txt.gz · Last modified: 2019/04/01 23:58 by avnerus