versatica / mediasoup-broadcaster-demo

mediasoup broadcaster demo (libmediasoupclient)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

update to last libmediasoupclient v3 (libwebrtc m81)

jmillan opened this issue · comments

I'm facing an issue when trying to upgrade to libmediasoupclient v3 which now uses libwebrtc m81 version.

After upgrading the files in our fakegenerators folder, which have changed in libwebrtc, I'm getting the following Undefined symbols linking error:

[ 72%] Linking CXX executable broadcaster
Undefined symbols for architecture x86_64:
  "webrtc::test::ResourcePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      webrtc::test::(anonymous namespace)::TransformFilePath(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in frame_generator_capturer.cc.o
  "webrtc::test::CreateSlideFrameGenerator(int, int, int)", referenced from:
      webrtc::test::FrameGeneratorCapturer::Create(webrtc::Clock*, webrtc::TaskQueueFactory&, webrtc::test::FrameGeneratorCapturerConfig::SquareSlides) in frame_generator_capturer.cc.o
  "webrtc::test::CreateSquareFrameGenerator(int, int, absl::optional<webrtc::test::FrameGeneratorInterface::OutputType>, absl::optional<int>)", referenced from:
      webrtc::FrameGeneratorCapturerVideoTrackSource::FrameGeneratorCapturerVideoTrackSource(webrtc::FrameGeneratorCapturerVideoTrackSource::Config, webrtc::Clock*, bool) in MediaStreamTrackFactory.cpp.o
      webrtc::test::FrameGeneratorCapturer::Create(webrtc::Clock*, webrtc::TaskQueueFactory&, webrtc::test::FrameGeneratorCapturerConfig::SquaresVideo) in frame_generator_capturer.cc.o
  "webrtc::test::CreateFromYuvFileFrameGenerator(std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, unsigned long, unsigned long, int)", referenced from:
      webrtc::test::FrameGeneratorCapturer::Create(webrtc::Clock*, webrtc::TaskQueueFactory&, webrtc::test::FrameGeneratorCapturerConfig::VideoFile) in frame_generator_capturer.cc.o
      webrtc::test::FrameGeneratorCapturer::Create(webrtc::Clock*, webrtc::TaskQueueFactory&, webrtc::test::FrameGeneratorCapturerConfig::ImageSlides) in frame_generator_capturer.cc.o
  "webrtc::test::CreateScrollingInputFromYuvFilesFrameGenerator(webrtc::Clock*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >, unsigned long, unsigned long, unsigned long, unsigned long, long long, long long)", referenced from:
      webrtc::test::FrameGeneratorCapturer::Create(webrtc::Clock*, webrtc::TaskQueueFactory&, webrtc::test::FrameGeneratorCapturerConfig::ImageSlides) in frame_generator_capturer.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [broadcaster] Error 1
make[1]: *** [CMakeFiles/broadcaster.dir/all] Error 2
make: *** [all] Error 2

I can't spot the reason since libwebrtc is being compiled with the following args (see: rtc_include_tests:

jmillan@MacBook.local:~/src/webrtc-checkout/src ((HEAD detached at branch-heads/4044))$ cat out/4044/args.gn
is_debug = true
is_component_build = false
is_clang = true
rtc_include_tests = true
rtc_use_h264 = true
rtc_enable_protobuf = false
use_rtti = true
mac_deployment_target = "10.11"
use_custom_libcxx = false

I'm wondering if you could give it a shoot @copiltembel.

Thanks a lot.

BTW: The libwebrtc branch associated to m81 is branch-heads/4044

@jmillan I'm on it.

No progress yet, will continue tomorrow.

@copiltembel,

I've got it. Just realised that the needed object is not linked in the demo code since the libwebrtc test binaries are not linked anymore.

I'll move the needed file/s to our repo.

I'll handle it. Will come back in en event of an issue.

Thanks.