RRtpSendSource Class Reference

class RRtpSendSource

A handle to a send stream.

Use this class to manage the creation and sending of packets. A session can have only one send stream.

Only one packet can be sent at any one time. Once a packet has been sent, the packet cannot be closed and no further packets can be sent until an event signalling the completion of the send operation has occurred. This will be one of the events defined by the enum values: ERtpSendSucceeded and ERtpSendFail.

A client must monitor these events so that it can schedule the sending of subsequent packets. It does this by implementing and registering callback functions that handle these events.

TRtpEventType

Public Member Functions
RRtpSendSource ()
IMPORT_C TInt Alignment ()
IMPORT_C void ByeL ( TDesC8 &)
IMPORT_C void Cancel ()
IMPORT_C void Close ()
IMPORT_C TUint32 GetLocalSSRC ()
TBool IsOpen ()
IMPORT_C TBool IsSending ()
IMPORT_C RRtpSendPacket NewSendPacketL ( TInt , TInt )
IMPORT_C RRtpSendPacket NewSendPacketLC ( TInt , TInt )
IMPORT_C void PrivRegisterEventCallbackL ( TUint , TRtpCallbackFunction , TAny *, TInt )
IMPORT_C void PrivRegisterEventCallbackL ( TUint , TRtpCallbackFunction , TAny *)
void RegisterEventCallbackL ( TRtpEventType , void(*)(T *, const TRtpEvent &), T *, TRtpOneShotness , TInt )
void RegisterEventCallbackL ( TRtpEventType , void(*)(T *, const TRtpEvent &), T *, TRtpOneShotness )
IMPORT_C void SetAlignment ( TInt )
IMPORT_C void SetDefaultPayloadSize ( TInt )
IMPORT_C void SetPayloadType ( TUint )
TBool operator!= ( RRtpSendSource )
TBool operator== ( RRtpSendSource )
Private Attributes
CRtpSendSource * iPtr

Constructor & Destructor Documentation

RRtpSendSource()

RRtpSendSource ( ) [inline]

Default constructor

Member Functions Documentation

Alignment()

IMPORT_C TInt Alignment ( ) const

Gets the alignment value.

RRtpSendSource::SetAlignment()

ByeL(TDesC8 &)

IMPORT_C void ByeL ( TDesC8 & aReason )

Sends a Bye RTCP packet.

Parameters

TDesC8 & aReason The reason for sending the Bye RTCP packet.

Cancel()

IMPORT_C void Cancel ( )

Cancels the outstanding send on the send Stream

The send object must be cancelled if a send request is outstanding

Close()

IMPORT_C void Close ( )

Closes the send stream.

The send stream object cannot be closed if an event is currently being handled, i.e. a call back into client code is currently in progress.

GetLocalSSRC()

IMPORT_C TUint32 GetLocalSSRC ( )

IsOpen()

TBool IsOpen ( ) const [inline]

Tests whether the send stream represented by this handle is open.

IsSending()

IMPORT_C TBool IsSending ( )

Tests whether the send stream is currently sending an RTP packet.

NewSendPacketL(TInt, TInt)

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

Creates a new RTP send packet, and returns the RTP send packet handle.

On return from this call, the packet is open but uninitialised, except for the payload type which is set to the default value set by a previous call to SetPayloadType()

The returned packet is owned by the caller of this function; it is not owned by the send stream. It must be explicitly closed by a call to RRtpSendPacket::Close()

RRtpSendPacket::SetPayloadType() RRtpSendPacket::SetDefaultPayloadSize() RRtpSendPacket::Close() KRtpNoExtension

Parameters

TInt aPayloadSize = 0 The size of the payload. If not explicitly specified, i.e. the default value of 0 is passed to the function, then the size actually used is the value set by a previous call to SetDefaultPayloadSize().
TInt aHeaderExtensionSize =  KRtpNoExtension The size of the extension specified as the number of 4-byte words. This value must exclude the length of the extension header. Zero is a permissible value. If unspecified, i.e. the default value of KRtpNoExtension is passed to the function, then the packet will have no extension.

NewSendPacketLC(TInt, TInt)

IMPORT_C RRtpSendPacket NewSendPacketLC ( TInt aPayloadSize = 0,
TInt aHeaderExtensionSize =  KRtpNoExtension
)

Creates a new RTP send packet, puts a pointer to the RTP send packet object onto the cleanup stack, and returns the RTP send packet handle.

On return from this call, the packet is open but uninitialised, except for the payload type which is set to the default value set by a previous call to SetPayloadType()

The returned packet is owned by the caller of this function; it is not owned by the send stream. It must be explicitly closed by a call to RRtpSendPacket::Close() .

Note that the function does not put a pointer to the RRtpSendPacket object onto the cleanup stack as you might normally expect, but puts a pointer to the RTP send packet object for which the returned RRtpSendPacket is the handle.

RRtpSendPacket::SetPayloadType() RRtpSendPacket::SetDefaultPayloadSize() RRtpSendPacket::Close() KRtpNoExtension

Parameters

TInt aPayloadSize = 0 The size of the payload. If unspecified, i.e. the default value of 0 is passed to the function, then the size actually used is the value set by a previous call to SetDefaultPayloadSize().
TInt aHeaderExtensionSize =  KRtpNoExtension The size of the extension specified as the number of 4-byte words. This value must exclude the length of the extension header. Zero is a permissible value. If unspecified, i.e. the default value of KRtpNoExtension is passed to the function, then the packet will have no extension.

PrivRegisterEventCallbackL(TUint, TRtpCallbackFunction, TAny *, TInt)

IMPORT_C void PrivRegisterEventCallbackL ( TUint aType,
TRtpCallbackFunction aCallback,
TAny * aPtr,
TInt aParameter
)

The event manager contains a number of callback registrations, each of which binds a function and pointer (normally an object) to a particular kind of event. Registrations can be bound to all events on a stream.

If a function is registered for a particular event, it will be called when that event occurs. One callback function can be associated with more than 1 callback registration. Callback functions take a pointer argument which was supplied as part of the registration

Parameters

TUint aType Event type
TRtpCallbackFunction aCallback Callback object
TAny * aPtr Pointer to data that needs to be passed to the callback function
TInt aParameter Parameter to be passed to internal callback subsystem

PrivRegisterEventCallbackL(TUint, TRtpCallbackFunction, TAny *)

IMPORT_C void PrivRegisterEventCallbackL ( TUint aType,
TRtpCallbackFunction aCallback,
TAny * aPtr
)

The event manager contains a number of callback registrations, each of which binds a function and pointer (normally an object) to a particular kind of event. Registrations can be bound to all events on a stream.

If a function is registered for a particular event, it will be called when that event occurs. One callback function can be associated with more than 1 callback registration. Callback functions take a pointer argument which was supplied as part of the registration

Parameters

TUint aType Event type
TRtpCallbackFunction aCallback Callback object
TAny * aPtr Pointer to data that needs to be passed to the callback function

RegisterEventCallbackL(TRtpEventType, void(*)(T *, const TRtpEvent &), T *, TRtpOneShotness, TInt)

void RegisterEventCallbackL ( TRtpEventType aType,
void(*)(T *, const TRtpEvent &) aCallback,
T * aPtr,
TRtpOneShotness aOneShot,
TInt aParameter
) [inline]

Parameters

TRtpEventType aType
void(*)(T *, const TRtpEvent &) aCallback
T * aPtr
TRtpOneShotness aOneShot
TInt aParameter

RegisterEventCallbackL(TRtpEventType, void(*)(T *, const TRtpEvent &), T *, TRtpOneShotness)

void RegisterEventCallbackL ( TRtpEventType aType,
void(*)(T *, const TRtpEvent &) aCallback,
T * aPtr,
TRtpOneShotness aOneShot = ERtpNotOneShot
) [inline]

Parameters

TRtpEventType aType
void(*)(T *, const TRtpEvent &) aCallback
T * aPtr
TRtpOneShotness aOneShot = ERtpNotOneShot

SetAlignment(TInt)

IMPORT_C void SetAlignment ( TInt aAlignment )

Sets the alignment required for padding.

After padding, all blocks will be a multiple of this length.

RRtpSendSource::Alignment()

Parameters

TInt aAlignment The padding value. This must be in the range: 1-255. A value of 1 means don't pad and is the default value.

SetDefaultPayloadSize(TInt)

IMPORT_C void SetDefaultPayloadSize ( TInt aPayloadSize )

Sets the default payload size for packets that are to be sent.

This is the default payload size used when a new RTP send packet is created in calls to: RRtpSendSource::NewSendPacketL() and RRtpSendSource::NewSendPacketLC() .

RRtpSendSource::NewSendPacketLC() RRtpSendSource::NewSendPacketL()

Parameters

TInt aPayloadSize The payload size.

SetPayloadType(TUint)

IMPORT_C void SetPayloadType ( TUint aPayloadType )

Sets the default payload type for packets that are to be sent.

This is the payload type used when a new RTP send packet is created in calls to: RRtpSendSource::NewSendPacketL() and RRtpSendSource::NewSendPacketLC() .

RRtpSendSource::NewSendPacketLC() RRtpSendSource::NewSendPacketL()

Parameters

TUint aPayloadType The payload type.

operator!=(RRtpSendSource)

TBool operator!= ( RRtpSendSource aThat ) const [inline]

Tests whether this send stream handle represents a different send stream to the one represented by the specified handle.

Parameters

RRtpSendSource aThat The handle of the send stream to be compared.

operator==(RRtpSendSource)

TBool operator== ( RRtpSendSource aThat ) const [inline]

Tests whether this send stream handle represents the same send stream as the one represented by the specified handle.

Parameters

RRtpSendSource aThat The handle of the send stream to be compared.

Member Data Documentation

CRtpSendSource * iPtr

CRtpSendSource * iPtr [private]