[Top][All Lists]

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

Re: [Ccrtp-devel] problem while reducing the seding rate

From: Dinil Divakaran
Subject: Re: [Ccrtp-devel] problem while reducing the seding rate
Date: Thu, 12 May 2005 16:36:04 +0530 (IST)

Thanks for the explanation; I seem to grasp your point.

But, can I not do the same using onExpireSend and putData ?

onExpireSend should be given point to OutgoingRTPPkt as argument; but I don't know how to use it with putData. Can
anyone please help ?

- Dinil

On Wed, 11 May 2005, Michel de Boer wrote:

Hi Dinil,

This sounds like the problem that I had with sending RTP DTMF events.
All RTP packets in this case have the same timestamp and ccRTP
discards packets when the timestamp gets too old.

In your case you increase the PERIOD, but it seems that
you keep the payload size of your packets the same. That means
that the timestamps you provide with putData will not be in
sync with the timestamp clock from ccRTP itself. The timestamp
of your second packet indicates that this packet should come 50ms after
the first packet. But you only deliver it 100ms after the first

I think you have to deliver the data to ccRTP with the correct
rate (depending on the number of samples per second). So if you
want to double the period from 50 to 100 then you should also double
the size of your payload.


Dinil Divakaran wrote:

Hi all,

I was working on an example for transmitting an audio file using ccrtp (
The following lines are from the above example. In this code, packets are
sent and then thread sleeps for a time of 'PERIOD' milliseconds. I changed
the value of PERIOD to 100 (milliseconds) and found that even though the
program says that the packets are sent; the packets weren't actually sent.
'tcpdump' showed that only the first packet was sent; and thereafter only
RTCP packets were sent (with still lesser frequency). When I changed the
value of 'PERIOD' to 50, the packets were sent successfully.

Can anyone please tell me where have I gone wrong ?


        cout << "Transmitting " << PACKET_SIZE
             << " octects long packets "
             << "every " << PERIOD << " milliseconds..." << endl;

        unsigned char buffer[PACKET_SIZE];
        int count=PACKET_SIZE;

        // This will be useful for periodic execution

        // This is the main loop, where packets are transmitted.
        for( int i = 0 ; (!sendingfile || count > 0) ; i++ ){

            count = ::read(audioinput,buffer,PACKET_SIZE);
            if( count > 0 ){
                // send an RTP packet, providing timestamp,
                // payload type and payload.
                socket->putData(PACKET_SIZE * i, buffer, PACKET_SIZE);
            cout << "." << flush;

            // Let's wait for the next cycle
        cout << endl << "I have got no more data to send. " <<endl;


- Dinil

Ccrtp-devel mailing list

reply via email to

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