Hello. I’m trying to make android client support myself with latest libmediasoupclient. I’m stuck at building libmediasoupclient.
First I build webrtc from branch-heads/4147 branch
With
gn gen out/Release --args='is_debug=false is_component_build=false rtc_include_tests=false target_os="android" target_cpu="arm" is_clang=false rtc_use_h264=true use_rtti=true use_custom_libcxx=false treat_warnings_as_errors=false use_ozone=true'
And then, when I try to build libmediasoupclient with:
cmake . -Bbuild \
-DLIBWEBRTC_INCLUDE_PATH:PATH=$HOME/webrtc/src \
-DLIBWEBRTC_BINARY_PATH:PATH=$HOME/webrtc/src/out/Release/obj \
-DCMAKE_CXX_FLAGS="-fvisibility=hidden"
I’m getting this error:
make: Entering directory '/home/mikluha/Projects/libmediasoupclient/build'
make[1]: Entering directory '/home/mikluha/Projects/libmediasoupclient/build'
make[2]: Entering directory '/home/mikluha/Projects/libmediasoupclient/build'
Consolidate compiler generated dependencies of target sdptransform
make[2]: Leaving directory '/home/mikluha/Projects/libmediasoupclient/build'
[ 16%] Built target sdptransform
make[2]: Entering directory '/home/mikluha/Projects/libmediasoupclient/build'
Consolidate compiler generated dependencies of target mediasoupclient
make[2]: Leaving directory '/home/mikluha/Projects/libmediasoupclient/build'
make[2]: Entering directory '/home/mikluha/Projects/libmediasoupclient/build'
[ 20%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o
[ 24%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataConsumer.cpp.o
[ 28%] Building CXX object CMakeFiles/mediasoupclient.dir/src/DataProducer.cpp.o
[ 32%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Device.cpp.o
[ 36%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Handler.cpp.o
[ 40%] Building CXX object CMakeFiles/mediasoupclient.dir/src/PeerConnection.cpp.o
[ 44%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Producer.cpp.o
[ 48%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Transport.cpp.o
[ 52%] Building CXX object CMakeFiles/mediasoupclient.dir/src/mediasoupclient.cpp.o
[ 56%] Building CXX object CMakeFiles/mediasoupclient.dir/src/ortc.cpp.o
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp: In function ‘bool matchCodecs(json&, json&, bool, bool)’:
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1603:39: error: ‘CodecParameterMap’ is not a member of ‘webrtc::H264’
1603 | webrtc::H264::CodecParameterMap aParameters;
| ^~~~~~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1604:39: error: ‘CodecParameterMap’ is not a member of ‘webrtc::H264’
1604 | webrtc::H264::CodecParameterMap bParameters;
| ^~~~~~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1606:25: error: ‘aParameters’ was not declared in this scope
1606 | aParameters["level-asymmetry-allowed"] = std::to_string(getH264LevelAssimetryAllowed(aCodec));
| ^~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1609:25: error: ‘bParameters’ was not declared in this scope
1609 | bParameters["level-asymmetry-allowed"] = std::to_string(getH264LevelAssimetryAllowed(bCodec));
| ^~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1616:39: error: ‘CodecParameterMap’ is not a member of ‘webrtc::H264’
1616 | webrtc::H264::CodecParameterMap newParameters;
| ^~~~~~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1620:47: error: ‘GenerateProfileLevelIdForAnswer’ is not a member of ‘webrtc::H264’
1620 | webrtc::H264::GenerateProfileLevelIdForAnswer(aParameters, bParameters, &newParameters);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1620:106: error: ‘newParameters’ was not declared in this scope
1620 | webrtc::H264::GenerateProfileLevelIdForAnswer(aParameters, bParameters, &newParameters);
| ^~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1622:37: warning: catching polymorphic type ‘class std::runtime_error’ by value [-Wcatch-value=]
1622 | catch (std::runtime_error)
| ^~~~~~~~~~~~~
/home/mikluha/Projects/libmediasoupclient/src/ortc.cpp:1629:57: error: ‘newParameters’ was not declared in this scope
1629 | auto profileLevelIdIt = newParameters.find("profile-level-id");
| ^~~~~~~~~~~~~
make[2]: *** [CMakeFiles/mediasoupclient.dir/build.make:216: CMakeFiles/mediasoupclient.dir/src/ortc.cpp.o] Error 1
make[2]: Leaving directory '/home/mikluha/Projects/libmediasoupclient/build'
make[1]: *** [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2
make[1]: Leaving directory '/home/mikluha/Projects/libmediasoupclient/build'
make: *** [Makefile:136: all] Error 2
make: Leaving directory '/home/mikluha/Projects/libmediasoupclient/build'
And
./tools_webrtc/android/build_aar.py --extra-gn-args 'is_debug=false is_component_build=false is_clang=true rtc_include_tests=false rtc_use_h264=true rtc_enable_protobuf=false use_rtti=true use_custom_libcxx=false' --build-dir ./out/release-build/
doesn’t make .a files, so I use gn gen
Thanks for any help!
I had to mention I also get a lot of warning when building webrtc, similar to
warning: unknown warning option '-Wno-class-memaccess'; did you mean '-Wno-class-varargs'? [-Wunknown-warning-option]
when I build with is_clang=false
UPD:
I did everything from start and it worked, don’t know why. Sorry for bumping