linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Linphone-developers] Loading plugins codecs fails on windows


From: Simon MORLAT
Subject: Re: [Linphone-developers] Loading plugins codecs fails on windows
Date: Fri, 23 Jan 2015 22:54:02 +0100

Hi,

It is a compilation problem.
It is working for me, see log below.
On windows, dll are not allowed to have unresolved symbols.
That means that the libmsbcg729 dll has to explicitely link to libmediastreamer_base-4.dll, because the plugin needs to perform a few calls to functions defined in mediastreamer2.

If for example you have mediastreamer.exe linked to libmediastreamer2_base-4.dll (the most recent), trying to load an old libmsbcg729.dll plugin linked to libmediastreamer2_base-3.dll, it will apparently work but the g729 codec will register itself in the statically defined list of MSFilterDesc (codec descriptors) within libmediastreamer2_base-3.dll, which has no effect because mediastreamer.exe is using the codec list in libmediastreamer2_base-4.dll.

I recommend that you do a good housekeeping of your build environment, installation tree and so on, and rebuild mediastreamer2 and bcg729.

Plugins are quite dependend to the mediastreamer2 version they were built over.
Most issues related to plugins not loading or not working as they should are related to unproper build.

Best regards,

Simon



$ ./bin/mediastream.exe --local 8000 --remote 127.0.0.1:8000 --payload 18
Remote addr: ip=127.0.0.1 port=8000
2015-01-23 22:41:56:733 ortp-message-Mediastreamer2 factory 2.10.0 (git: unknown) initialized.
2015-01-23 22:41:56:733 ortp-message-CPU count set to 4
2015-01-23 22:41:56:733 ortp-message-ms_factory_init() done
2015-01-23 22:41:56:733 ortp-message-srtp init
WARNING: no real random source present!
2015-01-23 22:41:56:749 ortp-message-Registering all soundcard handlers
2015-01-23 22:41:56:764 ortp-message-Card 'WINSND: Microphone (2- P├®riph├®rique Hig' added
2015-01-23 22:41:56:764 ortp-message-Card 'WINSND: Haut-parleurs (2- P├®riph├®rique ' added
2015-01-23 22:41:56:764 ortp-message-Registering all webcam handlers
2015-01-23 22:41:56:780 ortp-error-Fail to create class enumerator.
2015-01-23 22:41:56:780 ortp-message-Webcam StaticImage: Static picture added
2015-01-23 22:41:56:780 ortp-message-ms_factory_init_voip() done
2015-01-23 22:41:56:780 ortp-message-Loading ms plugins from [./lib/mediastreamer/plugins]
2015-01-23 22:41:56:780 ortp-message- libmsbcg729 debug plugin loaded
2015-01-23 22:41:56:780 ortp-message-Plugin loaded (./lib/mediastreamer/plugins\libmsbcg729-0.dll)
2015-01-23 22:41:56:796 ortp-message-Session:
        role=Controlling tie-breaker=197b5fd0f18c2f4d
        local_ufrag=1234 local_pwd=1234567890abcdef123456
        remote_ufrag=1234 remote_pwd=1234567890abcdef123456
2015-01-23 22:41:56:796 ortp-warning-cannot set noise gate mode to [0] because no volume send
2015-01-23 22:41:56:796 ortp-warning-cannot set echo limiter to mode [0] because no volume send
Starting audio stream.
2015-01-23 22:41:56:796 ortp-message-RtpSession [0003F650] sending to rtp [127.0.0.1:8000] rtcp [127.0.0.1:8001]
2015-01-23 22:41:56:796 ortp-error-No such filter with id 117
2015-01-23 22:41:56:796 ortp-message-target bitrate not set for stream [01ECF8E0] using payload's bitrate is 8000
2015-01-23 22:41:56:811 ortp-message-Setting audio encoder network bitrate to [8000] on stream [01ECF8E0]
2015-01-23 22:41:56:811 ortp-message-Equalizer rate: 8000, selecting 128 steps for FFT
2015-01-23 22:41:56:811 ortp-message-Equalizer rate: 8000, selecting 128 steps for FFT
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSWinSndRead:0003E5C0,0-->MSVolume:0003E500,0
2015-01-23 22:41:56:811 ortp-message-win32 timer resolution set to 2 ms
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSVolume:0003E500,0-->MSAudioMixer:0003E700,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSAudioMixer:0003E700,0-->MSBCG729Enc:0003E640,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSBCG729Enc:0003E640,0-->MSRtpSend:0003E4C0,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSRtpRecv:0003E540,0-->MSBCG729Dec:0003E680,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSBCG729Dec:0003E680,0-->MSDtmfGen:0003E580,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSDtmfGen:0003E580,0-->MSVolume:0003E6C0,0
2015-01-23 22:41:56:811 ortp-message-ms_filter_link: MSVolume:0003E6C0,0-->MSTee:0003E7C0,0
2015-01-23 22:41:56:813 ortp-message-ms_filter_link: MSTee:0003E7C0,0-->MSEqualizer:0003E800,0
2015-01-23 22:41:56:815 ortp-message-ms_filter_link: MSEqualizer:0003E800,0-->MSAudioMixer:0003E840,0
2015-01-23 22:41:56:815 ortp-message-speex_lib_ctl does not support SPEEX_LIB_CPU_FEATURE_NEON
2015-01-23 22:41:56:817 ortp-message-ms_filter_link: MSFilePlayer:0003E880,0-->MSResample:0003E8C0,0
2015-01-23 22:41:56:819 ortp-message-ms_filter_link: MSResample:0003E8C0,0-->MSAudioMixer:0003E840,1
2015-01-23 22:41:56:819 ortp-message-ms_filter_link: MSAudioMixer:0003E840,0-->MSWinSndWrite:0003E600,0
2015-01-23 22:41:56:821 ortp-message-ms_filter_link: MSAudioMixer:0003E700,1-->MSAudioMixer:0003E780,0
2015-01-23 22:41:56:823 ortp-message-ms_filter_link: MSTee:0003E7C0,1-->MSAudioMixer:0003E780,1
2015-01-23 22:41:56:823 ortp-message-ms_filter_link: MSAudioMixer:0003E780,0-->MSFileRec:0003E740,0
2015-01-23 22:41:56:949 ortp-message-ms_ticker_set_time_func: ticker's time method updated.
2015-01-23 22:41:56:961 ortp-message-Initializing speex resampler in mode [voip]

2015-01-22 15:05 GMT+01:00 Henrik Pauli <address@hidden>:
Well, it's a virtual machine with no sound card where I could try this easily, so things might not work the way they should.  However, the plugin reports that it has loaded:

C:\Linphone\bin>mediastream.exe --local 7000 --remote 127.0.0.1:7002 --payload 18
Remote addr: ip=127.0.0.1 port=7002
ortp-message-Mediastreamer2 2.9.0 (git: ) starting.
ortp-message-ms_base_init() done
ortp-message-Registering all soundcard handlers
ortp-message-ms_voip_init() done
ortp-message-Loading ms plugins from [./lib/mediastreamer/plugins]
ortp-message- libmsbcg729 1.0.0 plugin loaded
ortp-message-Plugin loaded (./lib/mediastreamer/plugins\libmsbcg729-0.dll)
ortp-message-Session:
        role=Controlling tie-breaker=338b00000ec9
        local_ufrag=1234 local_pwd=1234567890abcdef123456
        remote_ufrag=1234 remote_pwd=1234567890abcdef123456
ortp-warning-cannot set noise gate mode to [0] because no volume send
ortp-warning-cannot set echo limiter to mode [0] because no volume send
Starting audio stream.
ortp-message-speex_lib_ctl does not support SPEEX_LIB_CPU_FEATURE_NEON
ortp-error-audio_stream_start_full: No decoder or encoder available for payload G729.

But the last line worries me (after that, only the statistics tables were printed).  Not sure what's wrong there.  Both bcg729 and msbcg729 DLLs are in place.


On 20/01/15 21:05, hassan Firouz wrote:

Hi Henrik,

Thanks for your email. Can you please check with mediastream directly to see if you experience the same?  The plugins issue on windows is kind of showstopper for using it on windows platform.

 

HFB

 

From: address@hidden [mailto:address@hidden] On Behalf Of Henrik Pauli
Sent: January-20-15 1:38 AM
To: address@hidden
Subject: Re: [Linphone-developers] Loading plugins codecs fails on windows

 

I'm not sure if this is related at all, but I have a similar experience with a self-compiled 3.6 -- I'm trying to get the g729 codec to work, and according to ProcMon it seems to find and load the DLLs, but there's absolutely no change in the codec list (regardless of the config file).

It could be a long ongoing issue... I don't know.  I never checked mediastreamer directly, just linphonec/linphonecsh.

On 19/01/15 20:59, hassan Firouz wrote:

Hello

I have downloaded the recent binary version of linphone SDK such as liblinphone-win32-2015-01-13-01-00, liblinphone-win32-2015-01-14-01-00 and liblinphone-win32-2015-01-13-01-00. To ensure there is no missing files I downloaded the latest plugins and out then under Lib/Mediastream/Plugins folder.

 

The problem are:

1)      The “linphone_core_get_audio_codecs” function never returns H264 codec and other plugins

2)      When I try Mediastream command line to load H264 codec for example  Mediastream –local 7000 –remote 127.0.0.1:7002 –payload 102

The following result returns and the application crashes unexpectedly.

 

2015-01-19 11:44:13:724 ortp-message-Mediastreamer2 factory 2.10.0 (git: 2.10.0-897-g0450c04) initialized.

2015-01-19 11:44:13:725 ortp-message-CPU count set to 2

2015-01-19 11:44:13:725 ortp-message-ms_factory_init() done

2015-01-19 11:44:13:725 ortp-message-srtp init

WARNING: no real random source present!

2015-01-19 11:44:13:728 ortp-message-Registering all soundcard handlers

2015-01-19 11:44:13:747 ortp-message-Card 'WINSND: Internal Microphone (Conexant 2' added

2015-01-19 11:44:13:749 ortp-message-Card 'WINSND: Speakers (Conexant 20561 SmartA' added

2015-01-19 11:44:13:750 ortp-message-Card 'WINSND: SPDIF Interface (Conexant 20561' added

2015-01-19 11:44:13:751 ortp-message-Registering all webcam handlers

2015-01-19 11:44:13:769 ortp-message-Webcam Directshow capture: Integrated Camera prepended

2015-01-19 11:44:13:770 ortp-message-Webcam StaticImage: Static picture added

2015-01-19 11:44:13:770 ortp-message-ms_factory_init_voip() done

2015-01-19 11:44:13:770 ortp-message-Loading ms plugins from [./lib/mediastreamer/plugins]

2015-01-19 11:44:13:771 ortp-warning-Could not locate init routine of plugin ./lib/mediastreamer/plugins\libilbc-0.dll. Should be libilbc_init

2015-01-19 11:44:13:772 ortp-message-Plugin loaded (./lib/mediastreamer/plugins\libmsilbc-0.dll)

2015-01-19 11:44:13:773 ortp-message-Fail to load plugin ./lib/mediastreamer/plugins\libmsilbc.dll with altered search path: error 193

2015-01-19 11:44:13:773 ortp-error-Fail to load plugin ./lib/mediastreamer/plugins\libmsilbc.dll: error 193

2015-01-19 11:44:13:774 ortp-message- libmssilk 1.0.0 plugin loaded

2015-01-19 11:44:13:774 ortp-message-Plugin loaded (./lib/mediastreamer/plugins\libmssilk-0.dll)

2015-01-19 11:44:13:774 ortp-message-Fail to load plugin ./lib/mediastreamer/plugins\libmssilk.dll with altered search path: error 193

2015-01-19 11:44:13:775 ortp-error-Fail to load plugin ./lib/mediastreamer/plugins\libmssilk.dll: error 193

2015-01-19 11:44:13:776 ortp-message-Fail to load plugin ./lib/mediastreamer/plugins\libmsx264-0.dll with altered search path: error 127

2015-01-19 11:44:13:777 ortp-error-Fail to load plugin ./lib/mediastreamer/plugins\libmsx264-0.dll: error 127

2015-01-19 11:44:13:777 ortp-message-Fail to load plugin ./lib/mediastreamer/plugins\libmsx264.dll with altered search path: error 193

2015-01-19 11:44:13:778 ortp-error-Fail to load plugin ./lib/mediastreamer/plugins\libmsx264.dll: error 193

2015-01-19 11:44:13:783 ortp-message-Session:

        role=Controlling tie-breaker=cbe84eef201a25ed

        local_ufrag=1234 local_pwd=1234567890abcdef123456

        remote_ufrag=1234 remote_pwd=1234567890abcdef123456

2015-01-19 11:44:13:784 ortp-message-Starting video stream.

 

2015-01-19 11:44:13:785 ortp-message-Setting video size 352x288 on stream [00683D18]

2015-01-19 11:44:13:785 ortp-message-RtpSession [00682FE8] sending to rtp [127.0.0.1:7002] rtcp [127.0.0.1:7003]

2015-01-19 11:44:13:786 ortp-message-Using permissive algorithm

2015-01-19 11:44:13:786 ortp-error-videostream.c: No encoder available for payload 102:H264.

 

3)      I have also found out that there are sort of inconsistency between these Dlls that are installed with linephone 3.7 for windows and these Dlls. For example the following test cases works fine however the some of the linphone_core mthods crashes such as setting the default proxy config, seting video device and so on.

3-1) using linephone 3.7 dlls when invoking “linphone_core_get_audio_codecs” functions returns all codecs properly.

3-2) calling Mediastream command line for testing h264 codec of Mediastream –local 7000 –remote 127.0.0.1:7002 –payload 102 works and doesn’t crash.

 

Unfortunately I couldn’t compile the source code on my system due to missing links and files!!. So I decided to use the latest binary version.

I appreciate in advance in any of the developer has experienced the same and found the solution the share with me.

 

Thanks,

 

 

 

HFB

 




_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers

 



_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers


_______________________________________________
Linphone-developers mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/linphone-developers



reply via email to

[Prev in Thread] Current Thread [Next in Thread]