Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


Sending an RTP packet

This page describes how to prepare, create and send an RTP packet.

[Top]


Preparing the packet

RRtpSendPacket allows you to set the following fields for an RTP packet.

SetMarker(): Sets or unsets the marker bit.

SetPayloadType(): Sets the default payload type this is usually set before creating a new packet.

SetTimeStamp(): Sets the sampling instant of first octet in the RTP data packet (also RTCP packet).

SetFlags(): Sets the first 32 bits of the packet header.

You can retrieve the following from an RTP packet:

WritePayload(): Gets the descriptor to which the data can be written.

[Top]


Creating a send packet

RRtpSendSource allows you to create a new RTP packet. NewSendPacketL and NewSendPacketLC create a new send RTP packet. These functions return a handle to an RRtpSendPacket object.

RRtpSendPacket NewSendPacketL(TInt aPayloadSize=0, TInt aHeaderExtensionSize=KRtpNoExtension);

Set the default payload type and payload size before you create the new send packet using SetPayloadType() and SetDefaultPayloadSize() respectively.

Set the header extension size to multiples of 4-byte words this means the fixed header must be followed by exactly one header extension. The default value is KRtpNoExtension. 0 is an acceptable value.

RRtpSendSource allows you to set any of the following for an RTP packet to be sent:

SetAlignment: Aligns the header data to multiples of the set padding value. The values can range within 1-255. 1 is the default value, which means not padded.

SetPayloadSize: Sets the default payload size for the RTP packet that is to be sent. This is usually set before creating a new packet.

SetPayloadType: Sets the default payload type for the RTP packet that is to be sent. This is usually set before creating a new packet.

Call ByeL to send the BYE packet to indicate that one or more sources are no longer active (e.g. when a participant wishes to leave).

You can stop sending a packet even after making a send request. Call RRtpSendSource::Cancel() to cancel the outstanding send request on the send stream.

[Top]


Sending the packet

Call RRtpSendPacket::Send() to send the RTP packet. The packet is considered to be sent only when an ERtpSendSucceeded event is received from the send stream. If a failure occurs, an ERtpSendFailed event is received.

[Top]


Closing the packet

Once the packet has been sent, call RRtpSendPacket::Close() to close the RTP packet.

[Top]


Closing the send stream

Call RRtpSendSource::Close() to close the send stream. The send stream cannot be closed if an event is currently being handled by a call back function.

[Top]


See also

Creating and Managing an RTP session