error building mediasoupclient

I am trying build a c++ client, but I am getting below error. any idea what could have went wrong?

4%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/grammar.cpp.o
[ 8%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/parser.cpp.o
[ 12%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/writer.cpp.o
[ 16%] Linking CXX static library libsdptransform.a
[ 16%] Built target sdptransform
[ 20%] Building CXX object CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o
In file included from /webrtc-checkout/src/api/units/time_delta.h:22,
from /webrtc/mediasoup/webrtc-checkout/src/api/units/timestamp.h:21,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:16,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:44: error: ‘is_floating_point_v’ is not a member of ‘std’; did you mean ‘is_floating_point’?
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~~~~~~~~~~~~~~~~~~
| is_floating_point
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:44: error: ‘is_floating_point_v’ is not a member of ‘std’; did you mean ‘is_floating_point’?
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~~~~~~~~~~~~~~~~~~
| is_floating_point
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:64: error: template argument 1 is invalid
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:65: error: expected identifier before ‘>’ token
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^~
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:270:69: error: expected unqualified-id before ‘=’ token
270 | typename std::enable_if_t<std::is_floating_point_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:44: error: ‘is_integral_v’ is not a member of ‘std’; did you mean ‘is_integral’?
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~~~~~~~~~~~~
| is_integral
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:44: error: ‘is_integral_v’ is not a member of ‘std’; did you mean ‘is_integral’?
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~~~~~~~~~~~~
| is_integral
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:58: error: template argument 1 is invalid
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:59: error: expected identifier before ‘>’ token
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^~
/webrtc/mediasoup/webrtc-checkout/src/rtc_base/units/unit_base.h:275:63: error: expected unqualified-id before ‘=’ token
275 | typename std::enable_if_t<std::is_integral_v>* = nullptr>
| ^
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_image.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:38: error: ‘is_same_v’ is not a member of ‘std’; did you mean ‘is_same’?
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^~~~~~~~~
| is_same
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:48: error: expected primary-expression before ‘decltype’
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^~~~~~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:47: error: expected ‘;’ at end of member declaration
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^
| ;
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:32:68: error: expected unqualified-id before ‘,’ token
32 | static constexpr bool value = std::is_same_v<decltype(Test(0)), int>;
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:34: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:34: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:73: error: template argument 1 is invalid
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:82:75: error: expected identifier before ‘&&’ token
82 | typename std::enable_if<std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:83:33: error: expected ‘>’
83 | std::is_abstract_v,
| ^~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:84:33: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
84 | T>::type* = nullptr>
| ^~~~
| wctype
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:15: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:54: error: template argument 1 is invalid
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:95:56: error: expected identifier before ‘&&’ token
95 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:96:13: error: expected ‘>’
96 | webrtc_make_ref_counted_internal::HasAddRefAndRelease::value,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:97:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
97 | T>::type* = nullptr>
| ^~~~
| wctype
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:15: error: ‘is_convertible_v’ is not a member of ‘std’; did you mean ‘is_convertible’?
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~~~~~~~~~~~~~~~
| is_convertible
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:31: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses]
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:54: error: template argument 1 is invalid
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:108:56: error: expected identifier before ‘&&’ token
108 | !std::is_convertible_v<T*, RefCountInterface*> &&
| ^~
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:109:13: error: expected ‘>’ before ‘!’ token
109 | !webrtc_make_ref_counted_internal::HasAddRefAndRelease::value,
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/make_ref_counted.h:111:13: error: ‘type’ in namespace ‘::’ does not name a type; did you mean ‘wctype’?
111 | T>::type* = nullptr>
| ^~~~
| wctype
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_image.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/recordable_encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/media_stream_interface.h:27,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:5,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h: In static member function ‘static rtc::scoped_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(const vector_type&)’:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:91:19: error: ‘make_ref_counted’ is not a member of ‘rtc’
91 | return rtc::make_ref_counted(entries);
| ^~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:91:40: error: expected primary-expression before ‘>’ token
91 | return rtc::make_ref_counted(entries);
| ^
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h: In static member function ‘static rtc::scoped_refptrwebrtc::RtpPacketInfos::Data webrtc::RtpPacketInfos::Data::Create(webrtc::RtpPacketInfos::vector_type&&)’:
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:100:19: error: ‘make_ref_counted’ is not a member of ‘rtc’
100 | return rtc::make_ref_counted(std::move(entries));
| ^~~~~~~~~~~~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/rtp_packet_infos.h:100:40: error: expected primary-expression before ‘>’ token
100 | return rtc::make_ref_counted(std::move(entries));
| ^
In file included from /webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/video_codec.h:22,
from /webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/video_encoder.h:27,
from /webrtc/mediasoup/webrtc-checkout/src/modules/video_coding/include/video_codec_interface.h:20,
from /webrtc/mediasoup/webrtc-checkout/src/modules/video_coding/encoded_frame.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/video/encoded_frame.h:19,
from /webrtc/mediasoup/webrtc-checkout/src/api/frame_transformer_interface.h:18,
from /webrtc/mediasoup/webrtc-checkout/src/api/rtp_receiver_interface.h:22,
from /webrtc/mediasoup/libmediasoupclient/include/Consumer.hpp:6,
from /webrtc/mediasoup/libmediasoupclient/src/Consumer.cpp:3:
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h: At global scope:
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h:57:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
57 | inline constexpr ScalabilityMode kAllScalabilityModes = {
| ^~~~~~
/webrtc/mediasoup/webrtc-checkout/src/api/video_codecs/scalability_mode.h:89:1: warning: inline variables are only available with ‘-std=c++17’ or ‘-std=gnu++17’
89 | inline constexpr size_t kScalabilityModeCount =
| ^~~~~~
make[2]: *** [CMakeFiles/mediasoupclient.dir/build.make:76: CMakeFiles/mediasoupclient.dir/src/Consumer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Can you please post all the previous commands that you ran until you got this error?

I think the previous error was due to some version mismatch. I update cmake to use version 17 so I can fix the error with version mismatched, but I got different error below

I update the camke file to to point to libwenrtc dir
set(LIBWEBRTC_INCLUDE_PATH “/webrtc/mediasoup/webrtc-checkout/src”)
set(LIBWEBRTC_BINARY_PATH “/webrtc/mediasoup/webrtc-checkout/src/out/webrtc/obj”)

cmake . then make

[ 4%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/grammar.cpp.o
[ 8%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/parser.cpp.o
[ 12%] Building CXX object libsdptransform/CMakeFiles/sdptransform.dir/src/writer.cpp.o
[ 16%] Linking CXX static library libsdptransform.a
[ 16%] Built target sdptransform
[ 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
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘mediasoupclient::SendHandler::SendResult mediasoupclient::SendHandler::Send(webrtc::MediaStreamTrackInterface*, std::vectorwebrtc::RtpEncodingParameters, const json, const json*)’:
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:212:88: error: no matching function for call to ‘mediasoupclient::PeerConnection::AddTransceiver(webrtc::MediaStreamTrackInterface*&, webrtc::RtpTransceiverInit&)’
212 | webrtc::RtpTransceiverInterface* transceiver = this->pc->AddTransceiver(track, transceiverInit);
| ^~
In file included from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:124:69: note: candidate: ‘rtc::scoped_refptrwebrtc::RtpTransceiverInterface mediasoupclient::PeerConnection::AddTransceiver(cricket::MediaType)’
124 | rtc::scoped_refptrwebrtc::RtpTransceiverInterface AddTransceiver(cricket::MediaType mediaType);
| ^
~~~~~~~~~~~
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:124:69: note: candidate expects 1 argument, 2 provided
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:125:69: note: candidate: ‘rtc::scoped_refptrwebrtc::RtpTransceiverInterface mediasoupclient::PeerConnection::AddTransceiver(rtc::scoped_refptrwebrtc::MediaStreamTrackInterface, webrtc::RtpTransceiverInit)’
125 | rtc::scoped_refptrwebrtc::RtpTransceiverInterface AddTransceiver(
| ^~~~~~~~~~~~~~
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:126:73: note: no known conversion for argument 1 from ‘webrtc::MediaStreamTrackInterface*’ to ‘rtc::scoped_refptrwebrtc::MediaStreamTrackInterface
126 | rtc::scoped_refptrwebrtc::MediaStreamTrackInterface track,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:359:63: error: cannot convert ‘rtc::scoped_refptrwebrtc::RtpSenderInterface’ to ‘webrtc::RtpSenderInterface*’ in assignment
359 | sendResult.rtpSender = transceiver->sender();
| ~~~~~~~~~~~~~~~~~~~^~
| |
| rtc::scoped_refptrwebrtc::RtpSenderInterface
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘void mediasoupclient::SendHandler::StopSending(const string&)’:
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:464:58: error: cannot convert ‘rtc::scoped_refptrwebrtc::RtpSenderInterface’ to ‘webrtc::RtpSenderInterface*’
464 | this->pc->RemoveTrack(transceiver->sender());
| ~~~~~~~~~~~~~~~~~~~^~
| |
| rtc::scoped_refptrwebrtc::RtpSenderInterface
In file included from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:
/webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:129:62: note: initializing argument 1 of ‘bool mediasoupclient::PeerConnection::RemoveTrack(webrtc::RtpSenderInterface*)’
129 | bool RemoveTrack(webrtc::RtpSenderInterface* sender);
| ~~~~~~~~~~~~~~^~
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp: In member function ‘mediasoupclient::RecvHandler::RecvResult mediasoupclient::RecvHandler::Receive(const string&, const string&, const json*)’:
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:700:52: error: cannot convert ‘rtc::scoped_refptrwebrtc::RtpTransceiverInterface’ to ‘std::unordered_map<std::__cxx11::basic_string, webrtc::RtpTransceiverInterface*>::mapped_type’ {aka ‘webrtc::RtpTransceiverInterface*’} in assignment
700 | this->mapMidTransceiver[localId] = transceiver;
| ^

| |
| rtc::scoped_refptrwebrtc::RtpTransceiverInterface
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:705:63: error: cannot convert ‘rtc::scoped_refptrwebrtc::RtpReceiverInterface’ to ‘webrtc::RtpReceiverInterface*’ in assignment
705 | recvResult.rtpReceiver = transceiver->receiver();
| ~~~~~~~~~~~~~~~~~~~~~^~
| |
| rtc::scoped_refptrwebrtc::RtpReceiverInterface
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:706:72: error: cannot convert ‘rtc::scoped_refptrwebrtc::MediaStreamTrackInterface’ to ‘webrtc::MediaStreamTrackInterface*’ in assignment
706 | recvResult.track = transceiver->receiver()->track();
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
| |
| rtc::scoped_refptrwebrtc::MediaStreamTrackInterface
In file included from /usr/include/c++/11/bits/stl_algobase.h:71,
from /usr/include/c++/11/algorithm:61,
from /webrtc/mediasoup/libmediasoupclient/deps/libsdptransform/include/json.hpp:37,
from /webrtc/mediasoup/libmediasoupclient/include/PeerConnection.hpp:4,
from /webrtc/mediasoup/libmediasoupclient/include/Handler.hpp:4,
from /webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:3:
/usr/include/c++/11/bits/predefined_ops.h: In instantiation of ‘bool __gnu_cxx::__ops::_Iter_pred<_Predicate>::operator()(_Iterator) [with _Iterator = __gnu_cxx::__normal_iterator<rtc::scoped_refptrwebrtc::RtpTransceiverInterface, std::vector<rtc::scoped_refptrwebrtc::RtpTransceiverInterface > >; _Predicate = mediasoupclient::RecvHandler::Receive(const string&, const string&, const json)::<lambda(webrtc::RtpTransceiverInterface*)>]’:
/usr/include/c++/11/bits/stl_algobase.h:2069:14: required from ‘_RandomAccessIterator std::__find_if(_RandomAccessIterator, _RandomAccessIterator, _Predicate, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<rtc::scoped_refptrwebrtc::RtpTransceiverInterface, std::vector<rtc::scoped_refptrwebrtc::RtpTransceiverInterface > >; _Predicate = __gnu_cxx::__ops::_Iter_pred<mediasoupclient::RecvHandler::Receive(const string&, const string&, const json)::<lambda(webrtc::RtpTransceiverInterface*)> >]’
/usr/include/c++/11/bits/stl_algobase.h:2114:23: required from ‘_Iterator std::__find_if(_Iterator, _Iterator, _Predicate) [with _Iterator = __gnu_cxx::__normal_iterator<rtc::scoped_refptrwebrtc::RtpTransceiverInterface, std::vector<rtc::scoped_refptrwebrtc::RtpTransceiverInterface > >; _Predicate = __gnu_cxx::__ops::_Iter_pred<mediasoupclient::RecvHandler::Receive(const string&, const string&, const json)::<lambda(webrtc::RtpTransceiverInterface*)> >]’
/usr/include/c++/11/bits/stl_algo.h:3910:28: required from ‘_IIter std::find_if(_IIter, _IIter, _Predicate) [with _IIter = __gnu_cxx::__normal_iterator<rtc::scoped_refptrwebrtc::RtpTransceiverInterface, std::vector<rtc::scoped_refptrwebrtc::RtpTransceiverInterface > >; _Predicate = mediasoupclient::RecvHandler::Receive(const string&, const string&, const json)::<lambda(webrtc::RtpTransceiverInterface*)>]’
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:689:36: required from here
/usr/include/c++/11/bits/predefined_ops.h:318:30: error: no match for call to ‘(mediasoupclient::RecvHandler::Receive(const string&, const string&, const json*)::<lambda(webrtc::RtpTransceiverInterface*)>) (rtc::scoped_refptrwebrtc::RtpTransceiverInterface&)’
318 | { return bool(_M_pred(__it)); }
| ~^
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:690:61: note: candidate: ‘mediasoupclient::RecvHandler::Receive(const string&, const string&, const json
)::<lambda(webrtc::RtpTransceiverInterface*)>’
690 | transceivers.begin(), transceivers.end(), [&localId](webrtc::RtpTransceiverInterface* t) {
| ^
/webrtc/mediasoup/libmediasoupclient/src/Handler.cpp:690:61: note: no known conversion for argument 1 from ‘rtc::scoped_refptrwebrtc::RtpTransceiverInterface’ to ‘webrtc::RtpTransceiverInterface*’
make[2]: *** [CMakeFiles/mediasoupclient.dir/build.make:132: CMakeFiles/mediasoupclient.dir/src/Handler.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:135: CMakeFiles/mediasoupclient.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

No one can help you if you don’t want be be helped. I will repeat this again in case you missed it:

Can you please post all the previous commands that you ran until you got this error?

@copiltembel I just sent you what I did for the mediasoup client, I am not sure what commands you are referring to. Please be clear, I am not hiding anything :slight_smile:

I update the camke file to to point to libwenrtc dir

set(LIBWEBRTC_INCLUDE_PATH “/webrtc/mediasoup/webrtc-checkout/src”)
set(LIBWEBRTC_BINARY_PATH “/webrtc/mediasoup/webrtc-checkout/src/out/webrtc/obj”)

cmake . then make

if you are asking about building libwebrtc, I ran below commands to get the recent code of libwebrtc based on webrtc.org
after I installed depot-tools
git checkout -b m105 refs/remotes/branch-heads/5195
gclient sync

gn gen out/webrtc --args=‘is_debug=false is_component_build=false rtc_include_tests=false rtc_use_h264=true use_rtti=true use_glib=false treat_warnings_as_errors=false use_custom_libcxx=false’

ninja -C out/webrtc

I was able to build libwebrtc without any issues, then I pointed the mediasoup client to it

Did you notice in the documentation on libmediasoupclient installation that currently supported branch of libwebrtc is m94?

1 Like

Yes. I keep having issues with getting audio due to libwebrtc being old after checking with webrtc group

I am still having issues in both. M94 is audio issues and it is in libwebrtc and had to update it to fix it

Now I am having issue with mediasoup client.

Do you know how to fix either issues?

You’ll have to modify libmediasoupclient sources to make it compile with newer libwebrtc. There were some breaking changes in call parameters, etc around m100. I’ve seen some efforts of this kind while browsing through different projects on github. Can’t say offhand where.

This is the problem. As stated by Sergey, m105 is NOT supported yet by libmediasoupclient.

This and also the ones for libmediasoupclient. You usually get a quick answer on this forum if people understand all the steps you did that led you to an error.

1 Like

Yes. And at the same time libwebrtc m94 is not working for me unable to read audio.

@copiltembel @snnz

I was able to build everything using m94. But the issue the audio does not work and crashes comes from libwebrtc.

It seems the best choice to build mediasoup client using recent code of m105 so i can test on it. Unfortunately mediasoup client is not maintained and it does not seem there is plan to update it. Correct?

What do you guys recommend my next action?

Do you think trying m99 could work? If around m100. Probably my Audio issue could be solved my m99. I will try it anyways, but what do you think?

No, I think it will not compile with m99. Maybe with m98.