ZhuChaozheng / libjingle

Automatically exported from code.google.com/p/libjingle
0 stars 0 forks source link

call_main.cc compile/build error with addition of Linphone #376

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Setup Libjingle (as outlined in README) for use of linphone and media 
package.
2. Edit line 140 of linphonemediaengine.cc to: talk_base::Thread *thread = 
talk_base::ThreadManager::Instance()->CurrentThread();
3. Edit lines 122, 134, 135, 139, 163, 164, 165 and 168 of mediaengine.h such 
that the "= 0" at the end of the line becomes ";"
4. Edit line 137 of linphonemediaengine.h to: virtual bool 
SetRingbackTone(const char* buf, int len) { return true; }
5. Edit lines 240, 244, 247, 251, 517, 519, 528, 540 and 541 of mediachannel.h 
such that the "= 0" at the end of the line becomes ";"

What is the expected output? What do you see instead?
Fully compiled libjingle library and, specifically, a built "call" application.

Instead, I am getting these errors:
________Linking build/dbg/obj/call
build/dbg/obj/examples/call/mediaenginefactory.o: In function `~MediaChannel':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:226: 
undefined reference to `vtable for cricket::MediaChannel'
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:226: 
undefined reference to `vtable for cricket::MediaChannel'
build/dbg/obj/examples/call/mediaenginefactory.o: In function 
`~VoiceMediaChannel':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:503: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:503: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
build/dbg/obj/examples/call/mediaenginefactory.o: In function 
`MediaEngineInterface':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediaengine.h:63: 
undefined reference to `vtable for cricket::MediaEngineInterface'
build/dbg/obj/examples/call/mediaenginefactory.o:(.data.rel.ro._ZTVN7cricket17Vi
deoMediaChannelE[vtable for cricket::VideoMediaChannel]+0x50): undefined 
reference to `cricket::MediaChannel::AddSendStream(cricket::StreamParams 
const&)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.data.rel.ro._ZTVN7cricket17Vi
deoMediaChannelE[vtable for cricket::VideoMediaChannel]+0x58): undefined 
reference to `cricket::MediaChannel::RemoveSendStream(unsigned int)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.data.rel.ro._ZTVN7cricket17Vi
deoMediaChannelE[vtable for cricket::VideoMediaChannel]+0x60): undefined 
reference to `cricket::MediaChannel::AddRecvStream(cricket::StreamParams 
const&)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.data.rel.ro._ZTVN7cricket17Vi
deoMediaChannelE[vtable for cricket::VideoMediaChannel]+0x68): undefined 
reference to `cricket::MediaChannel::RemoveRecvStream(unsigned int)'
build/dbg/lib/libvideorenderer.a(gtkvideorenderer.o): In function 
`GtkVideoRenderer':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/gtkvideorenderer.cc:53
: undefined reference to `g_thread_init'
build/dbg/lib/libjingle.a(dataengine.o): In function `MediaChannel':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:225: 
undefined reference to `vtable for cricket::MediaChannel'
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:225: 
undefined reference to `vtable for cricket::MediaChannel'
build/dbg/lib/libjingle.a(filemediaengine.o): In function `VoiceMediaChannel':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:502: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediachannel.h:502: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
build/dbg/lib/libjingle.a(filemediaengine.o): In function 
`~MediaEngineInterface':
/home/forgefour/Desktop/LibjingleTrunk/talk/session/phone/mediaengine.h:94: 
undefined reference to `vtable for cricket::MediaEngineInterface'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x50): undefined 
reference to `cricket::MediaChannel::AddSendStream(cricket::StreamParams 
const&)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x58): undefined 
reference to `cricket::MediaChannel::RemoveSendStream(unsigned int)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x60): undefined 
reference to `cricket::MediaChannel::AddRecvStream(cricket::StreamParams 
const&)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x68): undefined 
reference to `cricket::MediaChannel::RemoveRecvStream(unsigned int)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0xc0): undefined 
reference to `cricket::VoiceMediaChannel::GetTimeSinceLastTyping()'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0xc8): undefined 
reference to `cricket::VoiceMediaChannel::SetTypingDetectionParameters(int, 
int, int, int)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0xe8): undefined 
reference to `cricket::VoiceMediaChannel::PlayRingbackTone(unsigned int, bool, 
bool)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x108): undefined 
reference to `cricket::VoiceMediaChannel::SetOptions(cricket::AudioOptions 
const&)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket20Li
nphoneVoiceChannelE[vtable for cricket::LinphoneVoiceChannel]+0x110): undefined 
reference to `cricket::VoiceMediaChannel::GetOptions(cricket::AudioOptions*) 
const'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0x60): undefined 
reference to `cricket::MediaEngineInterface::SetAudioDelayOffset(int)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0x78): undefined 
reference to 
`cricket::MediaEngineInterface::SetVideoCapturer(cricket::VideoCapturer*)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0x80): undefined 
reference to `cricket::MediaEngineInterface::GetVideoCapturer() const'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0x88): undefined 
reference to `cricket::MediaEngineInterface::GetOutputVolume(int*)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0xd8): undefined 
reference to 
`cricket::MediaEngineInterface::RegisterVideoProcessor(cricket::VideoProcessor*)
'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0xe0): undefined 
reference to 
`cricket::MediaEngineInterface::UnregisterVideoProcessor(cricket::VideoProcessor
*)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0xe8): undefined 
reference to `cricket::MediaEngineInterface::RegisterVoiceProcessor(unsigned 
int, cricket::VoiceProcessor*, cricket::MediaProcessorDirection)'
build/dbg/lib/libjingle.a(linphonemediaengine.o):(.data.rel.ro._ZTVN7cricket19Li
nphoneMediaEngineE[vtable for cricket::LinphoneMediaEngine]+0xf0): undefined 
reference to `cricket::MediaEngineInterface::UnregisterVoiceProcessor(unsigned 
int, cricket::VoiceProcessor*, cricket::MediaProcessorDirection)'
collect2: ld returned 1 exit status
scons: *** [build/dbg/obj/call] Error 1

What version of the product are you using? On what operating system?
These errors are present on both 0.6.14 and 0.6.19 versions. Ubuntu 12.04

Please provide any additional information below.
I have successfully installed linphone/mediastreamer and all libjingle and 
linphone/mediastreamer dependencies, and all dependencies are at or above the 
minimum version requirements.

I thought that these errors might be due to functions not being 
defined/implemented, but they clearly are. So, I have been trying to implement 
them again within the new linphone media engine file/environment, however that 
results in many other errors, usually dealing with variables/constants not 
already being defined in the scope used.

Original issue reported on code.google.com by Cummings.Kyle.M on 20 Jul 2012 at 6:29

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
I have the exact same problem, but I have less errors than you I think. I'm 
trying to build directly from the svn repo, as of today, August 2. I'm on 
Ubuntu 10.04. Is linphone video even fully implemented in libjingle or are we 
just wasting our time with these compiler errors? Let me know if you need more 
info.

________Linking build/dbg/obj/call
build/dbg/obj/examples/call/mediaenginefactory.o: In function `~MediaChannel':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:226: 
undefined reference to `vtable for cricket::MediaChannel'
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:226: 
undefined reference to `vtable for cricket::MediaChannel'
build/dbg/obj/examples/call/mediaenginefactory.o: In function 
`~VoiceMediaChannel':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:503: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:503: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
build/dbg/obj/examples/call/mediaenginefactory.o: In function 
`MediaEngineInterface':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediaengine.h:63: 
undefined reference to `vtable for cricket::MediaEngineInterface'
build/dbg/obj/examples/call/mediaenginefactory.o:(.rodata._ZTVN7cricket17VideoMe
diaChannelE[vtable for cricket::VideoMediaChannel]+0x28): undefined reference 
to `cricket::MediaChannel::AddSendStream(cricket::StreamParams const&)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.rodata._ZTVN7cricket17VideoMe
diaChannelE[vtable for cricket::VideoMediaChannel]+0x2c): undefined reference 
to `cricket::MediaChannel::RemoveSendStream(unsigned int)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.rodata._ZTVN7cricket17VideoMe
diaChannelE[vtable for cricket::VideoMediaChannel]+0x30): undefined reference 
to `cricket::MediaChannel::AddRecvStream(cricket::StreamParams const&)'
build/dbg/obj/examples/call/mediaenginefactory.o:(.rodata._ZTVN7cricket17VideoMe
diaChannelE[vtable for cricket::VideoMediaChannel]+0x34): undefined reference 
to `cricket::MediaChannel::RemoveRecvStream(unsigned int)'
build/dbg/lib/libjingle.a(dataengine.o): In function `MediaChannel':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:225: 
undefined reference to `vtable for cricket::MediaChannel'
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:225: 
undefined reference to `vtable for cricket::MediaChannel'
build/dbg/lib/libjingle.a(filemediaengine.o): In function `VoiceMediaChannel':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:502: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
/home/kevin/sources/libjingle-read-only/talk/media/base/mediachannel.h:502: 
undefined reference to `vtable for cricket::VoiceMediaChannel'
build/dbg/lib/libjingle.a(filemediaengine.o): In function 
`~MediaEngineInterface':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediaengine.h:94: 
undefined reference to `vtable for cricket::MediaEngineInterface'
build/dbg/lib/libjingle.a(mediaengine.o): In function 
`cricket::MediaEngineFactory::Create()':
/home/kevin/sources/libjingle-read-only/talk/media/base/mediaengine.cc:61: 
undefined reference to 
`cricket::LinphoneMediaEngine::LinphoneMediaEngine(std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&)'
collect2: ld returned 1 exit status
scons: *** [build/dbg/obj/call] Error 1
scons: building terminated because of errors.

Original comment by kevindco...@gmail.com on 2 Aug 2012 at 4:32

GoogleCodeExporter commented 9 years ago
Sorry, I have since abandoned trying to get linphone media engine incorporated 
into the call example. Luckily, since my project has taken a slight turn in 
where it is going, I am now able to follow the code developed over at: 
https://github.com/lukeweber/webrtc-jingle where they have reportedly been able 
to get voice calling working.

Original comment by Cummings.Kyle.M on 2 Aug 2012 at 4:59

GoogleCodeExporter commented 9 years ago
Oh nice, glad you found an alternative. My project requires the client be in 
Linux, so I'm thinking of just following the Google Talk Call Signaling 
document (https://developers.google.com/talk/call_signaling) and rolling my own 
jingle support with a Python client using xmpppy or twisted.words.jabber. 
Particularly I need video chat working, with audio as a don't-care.

Original comment by kevindco...@gmail.com on 2 Aug 2012 at 5:08

GoogleCodeExporter commented 9 years ago
LinphoneMediaEngine is no longer officially supported.

Original comment by juberti@google.com on 31 May 2013 at 4:11