How to send a RTCP SR packet first?

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

How to send a RTCP SR packet first?

by Martin Runge-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi .*,

I am evaluating ccrtp for an audio streaming solution (muroa.berlios.de). So
far, I found all the features I need in ccrtp (1.5.1), but there is one thing
left:

How can I make the sender send a RTCP SR right at the start? I need it, to
have the RTP-NTP timestamp correlation to start playback on the client
synchronously to other clients.

Background: What I want do do is start a new session with a burst, so the
client can start playback immediately with the first data packet and gets its
receive buffer filled anyway. I managed to tell ccrtp to perform a burst in
starting the RTP timestamp at negative numbers, so all data packets with RTP
timestamp < 0 will be sent immediately. All packets with RTP ts > 0 will be
correctly scheduled.

With that burst, the client can start playback immediately after receiving the
first packet. The problem is, that I need the first SR early. I have seen in
the source, the first RTCP packet will be a RR, because no data packets have
been sent yet. The second RTCP packet is a SR (data has been sent in the
meanwhile), but it arrives after ~20 RTP data packets (5% bandwidth for
control).

Any ideas, how to get a SR packet out of an unmodified ccrtp stack at before
or directly after the first data packet?

By the way: where to specify the NTP timestamp in the API?

I would be thankful for any tips or ideas regarding this topic.

Thanks in advance,
Regards,

Martin


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

Re: How to send a RTCP SR packet first?

by Federico Montesino Pouzols :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Hi,

On Mon, October 1, 2007 10:04 am, Martin Runge wrote:
> Any ideas, how to get a SR packet out of an unmodified ccrtp stack at
> before
> or directly after the first data packet?
>

A simple way would be redefining the run() virtual method of the RTPSession
object. The default run() executes controlTransmissionService() and
controlReceptionService() before dispatchDataPacket() and
takeInDataPacket(), so the first RTCP compound is always an RR. If you
switch this order and run the data methods before the control methods,
then the first RTCP compound should be an SR (provided dispatchDataPacket()
has sent something)

> By the way: where to specify the NTP timestamp in the API?
>

There is no way. Both RTP and NTP timestamps are generated internally (in
controlTransmissionService()). Why do you need to specify the timestamp?




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

Re: How to send a RTCP SR packet first?

by Martin Runge-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

Thank you, i tried it out and guess.... it works :-) Now I get SR packets from the beginning.

Regarding the topic with the NTP timestamp:
I think, I don't need to set it, the automatically generated on is fine.
At the client side, I can use a fixed offset to the received NTP timestamp to know when to start playback. As long as all clients share the same NTP supplied system time and use the same offset, they will be in sync.

regards,
Martin


> -----Ursprüngliche Nachricht-----
> Von: "Federico Montesino Pouzols" <fedemp@...>
> Gesendet: 11.10.07 17:58:00
> An: "Martin Runge" <mrulists@...>
> CC: ccrtp-devel@...
> Betreff: Re: [Ccrtp-devel] How to send a RTCP SR packet first?


>
>
> Hi,
>
> On Mon, October 1, 2007 10:04 am, Martin Runge wrote:
> > Any ideas, how to get a SR packet out of an unmodified ccrtp stack at
> > before
> > or directly after the first data packet?
> >
>
> A simple way would be redefining the run() virtual method of the RTPSession
> object. The default run() executes controlTransmissionService() and
> controlReceptionService() before dispatchDataPacket() and
> takeInDataPacket(), so the first RTCP compound is always an RR. If you
> switch this order and run the data methods before the control methods,
> then the first RTCP compound should be an SR (provided dispatchDataPacket()
> has sent something)
>
> > By the way: where to specify the NTP timestamp in the API?
> >
>
> There is no way. Both RTP and NTP timestamps are generated internally (in
> controlTransmissionService()). Why do you need to specify the timestamp?
>
>
>


_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066



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

Re: How to send a RTCP SR packet first?

by saurabh99 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

HI

I want to know How can I make RTCP packet and send it to participents?

Thanks
Saurabh

Martin Runge-2 wrote:
Hi .*,

I am evaluating ccrtp for an audio streaming solution (muroa.berlios.de). So
far, I found all the features I need in ccrtp (1.5.1), but there is one thing
left:

How can I make the sender send a RTCP SR right at the start? I need it, to
have the RTP-NTP timestamp correlation to start playback on the client
synchronously to other clients.

Background: What I want do do is start a new session with a burst, so the
client can start playback immediately with the first data packet and gets its
receive buffer filled anyway. I managed to tell ccrtp to perform a burst in
starting the RTP timestamp at negative numbers, so all data packets with RTP
timestamp < 0 will be sent immediately. All packets with RTP ts > 0 will be
correctly scheduled.

With that burst, the client can start playback immediately after receiving the
first packet. The problem is, that I need the first SR early. I have seen in
the source, the first RTCP packet will be a RR, because no data packets have
been sent yet. The second RTCP packet is a SR (data has been sent in the
meanwhile), but it arrives after ~20 RTP data packets (5% bandwidth for
control).

Any ideas, how to get a SR packet out of an unmodified ccrtp stack at before
or directly after the first data packet?

By the way: where to specify the NTP timestamp in the API?

I would be thankful for any tips or ideas regarding this topic.

Thanks in advance,
Regards,

Martin


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