1/2 of packets are droped

View: New views
3 Messages — Rating Filter:   Alert me  

1/2 of packets are droped

by Eren AYKOC :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi,

 

I’m trying to build an application using ccRTP (1.6.2) and I’m having some problems. My application is a SIP IVR application and right now I’m using PCMU payload.

 

In my -Thread and TimerPort derived- thread class’s run() method, my application is sending -30ms long (240 bytes)- audio packets to destination and nearly for the half of the packets, my -SingleThreadRTPSession derived- socket class’s onExpireSend method is triggered. When I sniff the network with Wireshark for UDP packets I don’t see the dropped ones and the sound is distorted on the destination side.

 

My code is nearly the same as the demo application audiotx.cpp except the audio source mechanism.

 

In the mailing list archives I’ve found a similar problem (http://lists.gnu.org/archive/html/ccrtp-devel/2003-03/msg00000.html) but the patch for this bug is already in my copy of ccRTP library.

 

I’m using MS Visual Studio 6.0 (sp6) on a Windows XP Prof (sp3) machine.

 

I’d be glad if you may help me.

 

Sincerely,

 

Eren AYKOC


_______________________________________________
Ccrtp-devel mailing list
Ccrtp-devel@...
http://lists.gnu.org/mailman/listinfo/ccrtp-devel

RE: 1/2 of packets are droped - Solved

by Eren AYKOC :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi,

 

I’ve managed to solve the problem.

 

One cycle in the while loop of SingleThreadRTPSession::run() was taking nearly 60 milliseconds and therefore every 1 of 2  packets become expired. I saw that setCancel method (which calls Thread::sleep(1)) made the thread sleep much more than 1 millisecond. When I changed Thread::yield() method to sleep(0) in  commoncpp\src\thread.cpp (line 1198) my problem was solved.

 

Sincerely,

 

Eren

 

From: ccrtp-devel-bounces+eren.aykoc=fgs.com.tr@... [mailto:ccrtp-devel-bounces+eren.aykoc=fgs.com.tr@...] On Behalf Of Eren AYKOC
Sent: Wednesday, November 12, 2008 6:56 PM
To: ccrtp-devel@...
Subject: [Ccrtp-devel] 1/2 of packets are droped

 

Hi,

 

I’m trying to build an application using ccRTP (1.6.2) and I’m having some problems. My application is a SIP IVR application and right now I’m using PCMU payload.

 

In my -Thread and TimerPort derived- thread class’s run() method, my application is sending -30ms long (240 bytes)- audio packets to destination and nearly for the half of the packets, my -SingleThreadRTPSession derived- socket class’s onExpireSend method is triggered. When I sniff the network with Wireshark for UDP packets I don’t see the dropped ones and the sound is distorted on the destination side.

 

My code is nearly the same as the demo application audiotx.cpp except the audio source mechanism.

 

In the mailing list archives I’ve found a similar problem (http://lists.gnu.org/archive/html/ccrtp-devel/2003-03/msg00000.html) but the patch for this bug is already in my copy of ccRTP library.

 

I’m using MS Visual Studio 6.0 (sp6) on a Windows XP Prof (sp3) machine.

 

I’d be glad if you may help me.

 

Sincerely,

 

Eren AYKOC


_______________________________________________
Ccrtp-devel mailing list
Ccrtp-devel@...
http://lists.gnu.org/mailman/listinfo/ccrtp-devel

Invalid Address specified to RtlValidateHeap( 02F90000, 05E63668 )

by Eren AYKOC :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi,

 

When I try to use more than one SingleThreadRTPSession in my application, execution stops with an error. Below, you may find the call stack during error.

 

NTDLL! 7c90120e()

NTDLL! 7c96c63e()

NTDLL! 7c9603b0()

KERNEL32! 7c85f8d7()

_CrtIsValidHeapPointer(const void * 0x05e63688) line 1697

_free_dbg_lk(void * 0x05e63688, int 1) line 1044 + 9 bytes

_free_dbg(void * 0x05e63688, int 1) line 1001 + 13 bytes

free(void * 0x05e63688) line 956 + 11 bytes

operator delete(void * 0x05e63688) line 7 + 10 bytes

std::allocator<char>::deallocate(void * 0x05e63688, unsigned int 33) line 64 + 16 bytes

std::basic_string<char,std::char_traits<char>,std::allocator<char> >::_Tidy(unsigned char 1) line 592

std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}, unsigned int 0, unsigned int 4294967295) line 124

std::basic_string<char,std::char_traits<char>,std::allocator<char> >::assign(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}) line 111 + 23 bytes

std::basic_string<char,std::char_traits<char>,std::allocator<char> >::operator=(const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}) line 65 + 19 bytes

ost::SDESItemsHolder::setItem(ost::SDESItemType SDESItemTypeCNAME, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}) line 111 + 25 bytes

ost::Participant::setSDESItem(ost::SDESItemType SDESItemTypeCNAME, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}) line 174 + 45 bytes

ost::ParticipantHandler::setSDESItem(ost::Participant * 0x05e62ba0, ost::SDESItemType SDESItemTypeCNAME, const std::basic_string<char,std::char_traits<char>,std::allocator<char> > & {0x05e63c59 "Administrator@fgsdemo6"}) line 188 + 45 bytes

ost::QueueRTCPManager::setSDESItem(ost::Participant * 0x05e62ba0, ost::SDESItemType SDESItemTypeCNAME, const char * const 0x02f987ba, unsigned int 22) line 1083 + 56 bytes

ost::QueueRTCPManager::onGotSDESChunk(ost::SyncSource & {...}, ost::RTCPCompoundHandler::SDESChunk & {...}, unsigned int 36) line 659

ost::QueueRTCPManager::onGotSDES(ost::SyncSource & {...}, ost::RTCPCompoundHandler::RTCPPacket & {...}) line 611 + 25 bytes

ost::QueueRTCPManager::takeInControlPacket() line 412 + 16 bytes

ost::QueueRTCPManager::controlReceptionService() line 252 + 8 bytes

ost::SingleThreadRTPSession<ost::RTPBaseUDPIPv4Socket,ost::RTPBaseUDPIPv4Socket,ost::AVPQueue>::controlReceptionService() line 525 + 43 bytes

ost::SingleThreadRTPSession<ost::RTPBaseUDPIPv4Socket,ost::RTPBaseUDPIPv4Socket,ost::AVPQueue>::run() line 563

ost::Thread::Execute(ost::Thread * 0x02f97c78) line 1438 + 12 bytes

_threadstartex(void * 0x05e623c0) line 227 + 13 bytes

KERNEL32! 7c80b713()

 

Sincerely,

 

Eren AYKOC


_______________________________________________
Ccrtp-devel mailing list
Ccrtp-devel@...
http://lists.gnu.org/mailman/listinfo/ccrtp-devel