ccrtp-devel
[Top][All Lists]
Advanced

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

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


From: David Sugar
Subject: Re: [Ccrtp-devel] problem while reducing the seding rate
Date: Wed, 11 May 2005 15:29:07 -0400
User-agent: Mozilla Thunderbird 1.0.2 (Macintosh/20050317)

Oh, this is about sending 2833 events, not receiving...sorry :). Hmm, let me think about this one further!

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
packet.

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.

Regards,
Michel



Dinil Divakaran wrote:


Hi all,

I was working on an example for transmitting an audio file using ccrtp (http://www.gnu.org/software/ccrtp/doc/refman/html/audiotx_8cpp-example.html)

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
        TimerPort::setTimer(PERIOD);

        setCancel(cancelImmediate);
        // 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
            Thread::sleep(TimerPort::getTimer());
            TimerPort::incTimer(PERIOD);
        }
        cout << endl << "I have got no more data to send. " <<endl;

                              .
                              .
                              .
                              .
--------------------------------------------------------------------------

- Dinil



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




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

Attachment: dyfet.vcf
Description: Vcard


reply via email to

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