linphone-developers
[Top][All Lists]
Advanced

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

[Linphone-developers] Re: Linphone :- MVL/ARM system issues


From: νιкαѕ gαнℓαη
Subject: [Linphone-developers] Re: Linphone :- MVL/ARM system issues
Date: Mon, 8 Feb 2010 10:04:15 +0530

Hello,
 
Can someone sugest any idea to overcome this issue? I have tried by bumping thread priorities and scheduling schemes(RR , FIFO wth root permisions as required).
 
If I run OSS thread as highest real time priority (99) even than this issue comes. I am using 2.6.10 kernal with MVL 4.0.1 toolchain.
 
Below are error logs:-
 
 
address@hidden:/opt# ./AppExec
61 main
linphone_core_init 151
/*---------------------------------------------------------------------*/
Message: GSTATE_POWER_STARTUP
/*---------------------------------------------------------------------*/
filename = ./v2oipConfig.cfg
File:53038
File open
ortp-message-Registering all filters...
No=0    name=MSAlawDec
No=1    name=MSAlawEnc
No=2    name=MSUlawDec
No=3    name=MSUlawEnc
No=4    name=MSFilePlayer
No=5    name=MSRtpSend
No=6    name=MSRtpRecv
No=7    name=MSDtmfGen
No=8    name=MSFileRec
No=9    name=MSSpeexDec
No=10   name=MSSpeexEnc
No=11   name=MSSpeexEC
No=12   name=MSTee
No=13   name=MSVoidSink
No=14   name=MSConf
No=15   name=MSJoin
No=16   name=MSResample
No=17   name=MSVolume
No=18   name=MSIce
No=19   name=MSEqualizer
No=20   name=Dummy Filter
No=21   name=Dummy Cap Filter
No=22   name=Dummy Dis Filter
No=23   name=MSOssWrite
ortp-message-Registering all soundcard handlers
No=0    name=OSS
ortp-message-Card OSS: /dev/dsp added
ortp-message-Card OSS: /dev/dsp1 added
ortp-message-Loading plugins
ortp-message-ms_init() done
rtp_config_read 214driver type = OSS
49 sip_config_read293 linphone_core_set_sip_port
Do you want to use default registrar (y/n)  :y
/*---------------------------------------------------------------------*/
Message: GSTATE_POWER_ON
/*---------------------------------------------------------------------*/
core:v2oip :1
registrar: 107.108.89.203,contact: sip:address@hidden
v2oip :1
DEBUG: [get_output_if] connect: Network is unreachable
DEBUG: [get_output_if] connect: Network is unreachable
DEBUG: [get_output_if] connect: Network is unreachable
Calling main
122 app_main------------------------------------  V2OIP --------------------------------------
1. Call
2. Terminate current call
3. Quit
4. Answer
Enter option : /*---------------------------------------------------------------------*/
Message: REGISTRATION_SUCCESSFUL
/*---------------------------------------------------------------------*/
1
Enter command in following format:
call <sip:address@hidden>
Eg: call <sip:address@hidden>
1000
inside modifying while loop
Inside PrefixToIP
Receive arg:1000
length of strIP:4
strIP: 1000
temp: call <sip:address@hidden>
52951
username :call <sip:address@hidden>
52951
rg after exiting while loop: call <sip:address@hidden>
username: call <sip:address@hidden>
copied to arg
GSTATE_CALL_OUT_INVITE <sip:address@hidden>
DEBUG: [get_output_if] connect: Network is unreachable
DEBUG: [get_output_if] connect: Netw
set zl38004 sampling rate : 8000Hz
ork is unreachable
DEBUG: [get_output_if] connect: Network is unreachable
/*---------------------------------------------------------------------*/
Status: Contacting
/*---------------------------------------------------------------------*/
linphone_core_init_media_streams 729
linphone_core_init_media_streams 732 Session=598a0
------------------------------------  V2OIP --------------------------------------
1. Call
2. Terminate current call
3. Quit
4. Answer
Enter option : /*---------------------------------------------------------------------*/
Message: CALL_PROCEEDING
/*---------------------------------------------------------------------*/
/*---------------------------------------------------------------------*/
Message: CALL_PROCEEDING
/*---------------------------------------------------------------------*/
/*---------------------------------------------------------------------*/
Status: CALL_RINGING
/*---------------------------------------------------------------------*/
ortp-message-Remote ringing...
ortp-message-./3idiots2.wav opened: rate=8000,channel=2
Before CallMethod
Inherit Sched - PTHREAD_INHERIT_SCHED
Inherit Sched - PTHREAD_EXPLICIT_SCHED
ortp-message-ms_filter_link: MSFilePlayer:0x5cbc0,0-->MSOssWrite:0x5f2e0,0
OssData = 0x535f0
pcmdev = /dev/dsp       mixdev=/dev/mixer       rate=8000       thread =0
Inherit Sched - PTHREAD_INHERIT_SCHED
Inherit Sched - PTHREAD_EXPLICIT_SCHED
pcmdev = /dev/dsp       mixdev=/dev/mixer       rate=8000       thread =1111513952
out of ms_ticker_attach
Thread-ID = 41c05b60 policy=0 priority=52 Err=0
Thread-ID = 42405b60 policy=0 priority=60 err=0
ortp-message-/dev/dsp opened: rate=8000,bits=16,stereo=1 blocksize=512.
ortp-warning-oss_open: audio buffer size: 256.
/*---------------------------------------------------------------------*/
Message: CALL_ANSWERED
/*---------------------------------------------------------------------*/
Linphone call accepted
Exevents: linphone_read_audio_answeer
Supported and valid
local port: 5046
paylload: 8
remote port:7058
linphone_core_init_media_streams 729
linphone_core_init_media_streams 732 Session=61a78
GSTATE_CALL_OUT_CONNECTED
/*---------------------------------------------------------------------*/
Status: Connected.
/*---------------------------------------------------------------------*/
ortp-message-ms_filter_unlink: MSFilePlayer:0x5cbc0,0-->MSOssWrite:0x5f2e0,0
ortp-message-Audio (ring) MSTicker thread exiting
linphone_core
set zl38004 sampling rate : 8000Hz
_start_media_streams 791
Starting audio stream.
linphone_core_start_media_streams 824
remoteaddr=107.108.161.206  remoteport=7058 remotertcpport=7059 localport=5046
linphone_core_start_media_streams 830 RTPSession=61a78
Inherit Sched - PTHREAD_INHERIT_SCHED
Inherit Sched - PTHREAD_EXPLICIT_SCHED
ortp-message-Payload's bitrate is 64000
ortp-message-Setting audio encoder network bitrate to 64000
Connecting sending graph
ortp-message-ms_filter_link: MSOssRead:0x62278,0-->MSAlawEnc:0x62308,0
ortp-message-ms_filter_link: MSAlawEnc:0x62308,0-->MSRtpSend:0x5fec8,0
Connecting recieve graph
ortp-message-ms_filter_link: MSRtpRecv:0x621f8,0-->MSAlawDec:0x623a8,0
ortp-message-ms_filter_link: MSAlawDec:0x623a8,0-->MSDtmfGen:0x62238,0
ortp-message-ms_filter_link: MSDtmfGen:0x62238,0-->MSOssWrite:0x622b8,0
Inherit Sched - PTHREAD_INHERIT_SCHED
Inherit Sched - PTHREAD_EXPLICIT_SCHED
Inherit Sched - PTHREAD_INHERIT_SCHED
Inherit Sched - PTHREAD_EXPLICIT_SCHED
OssData = 0x535f0
pcmdev = /dev/dsp       mixdev=/dev/mixer       rate=8000       thread =1119902560
pcmdev = /dev/dsp       mixdev=/dev/mixer       rate=8000       thread =1119902560
DEBUG: [get_output_if] connect: Network is unreachable
Thread-ID = 42405b60 policy=0 priority=52 Err=0
call accepted
Thread-ID = 42c05b60 policy=0 priority=60 err=0
ortp-message-/dev/dsp opened: rate=8000,bits=16,stereo=1 blocksize=512.
ortp-warning-oss_open: audio buffer size: 256.
ortp-message-synchronizing timestamp, diff=240
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
 
rtp-message-synchronizing timestamp, diff=560
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:2048)
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:4096)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:6144)
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:8192)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:10240)
ortp-message-synchronizing timestamp, diff=560
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:12288)
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:14336)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:16384)
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:18432)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:20480)
ortp-message-synchronizing timestamp, diff=560
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:22528)
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:24576)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:26624)
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (16 - discarded:28672)
ortp-message-synchronizing timestamp, diff=560
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-960
 
 
 
 
Regards,
Vikas Gahlan
 


 
2010/2/4 νιкαѕ gαнℓαη <address@hidden>
Hi,

I'm working on an embedded project using montavista Linux 2.6 kernel and we need to manage several different threads via real-time
priorities so we don't get audio skipping etc.
When we set up a thread attributes beforehand to be scheduled explicitly to SCHED_RR using the pthread set_attr_* calls the
resulting thread still thinks it is SCHED_OTHER with priority 0. If we set up the thread attributes inside the thread after it has been
created using pthread_(get/set)schedparam the thread then thinks it is SCHED_RR at the given priority (i.e. get returns what we set it too)
but the thread behavior is completely unchanged.
 
I have run OSS with highest pthread priority - 99 and msticker at 70. Audio skips seems ok but OSS buffer too much data error still comes freeqently.
 
Also during compilation in ortp i have changed clock_gettime call with gettimeofday() as clock_gettime was not avaliable.
 
I would really appreciate if somebody will share their thought  to handle these errors.
 
One more interesting issue is If i run call b/w 2 device running same my code than audio quality seems ok on receiving side while if some other softphone used than on softphone side voice seems very delayed.
 
Below are error prints:-
Once OSS buffer error starts no audio heared at all.
 
While running Linphone with above priority changes I have seen below error quite freequently:-
rtp-message-synchronizing timestamp, diff=-960
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-880
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:2048)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:4096)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:6144)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:8192)
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:10240)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:12288)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:14336)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:16384)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:18432)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:20480)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:22528)
ortp-message-synchronizing timestamp, diff=-960
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:24576)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:26624)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:28672)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:30720)
ortp-message-synchronizing timestamp, diff=-880
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:32768)
ortp-warning-drop fragment when buffer gets too much data (17 - discarded:34816)
ortp-message-synchronizing timestamp, diff=-880


--
Thanks & Regards,
Vikas Gahlan
Cell- +91 9873232008



--
Thanks & Regards,
Vikas Gahlan
Cell- +91 9873232008

reply via email to

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