Building libmediasoupclient problem

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

It’s defined in media/base/h264_profile_level_id.h in webrtc sources. It should be accessible.