sipXtapi home page


Private Member Functions | Private Attributes | List of all members
SdpCodecList Class Reference

List of codecs, used for storing supported codecs and for codec negotiation. More...

#include <SdpCodecList.h>

Public Member Functions

Creators
 SdpCodecList (int numCodecs=0, SdpCodec *codecArray[]=NULL)
 Constructor. More...
 
 SdpCodecList (const SdpCodecList &rSdpCodecFactory)
 Copy constructor. More...
 
SdpCodecListoperator= (const SdpCodecList &rhs)
 Assignment operator. More...
 
virtual ~SdpCodecList ()
 Destructor. More...
 
Manipulators
void addCodec (const SdpCodec &newCodec)
 Add a new codec type to the list of known codecs. More...
 
void addCodecs (int numCodecs, SdpCodec *newCodecs[])
 Add copies of the array of codecs. More...
 
int addCodecs (const UtlString &codecList)
 Add specified codecs to the list. More...
 
int addCodecs (UtlSList &codecNameList)
 Add specified codecs to the list. More...
 
int addCodecs (int numTokens, const char *codecTokens[], int payloadIds[])
 Add codecs specified by array of codec token names and assign given payload ID. More...
 
int addCodecs (int codecCount, SdpCodec::SdpCodecTypes codecTypes[])
 Add specified codecs to the list. More...
 
void bindPayloadTypes ()
 Assign any unset payload type ids. More...
 
int unbindPayloadType (int payloadId)
 unbind any codec with the given dynamic payload type More...
 
void copyPayloadType (const SdpCodec &codec)
 If there is a matching codec in this factory, set its payload type to that of the given codec. More...
 
void copyPayloadTypes (int numCodecs, const SdpCodec *codecArray[])
 For all matching codecs, copy the payload type from the codecArray to the matching codec in this factory. More...
 
void copyPayloadTypes (const SdpCodecList &codecList)
 For all matching codecs, copy the payload type from the given codecList to the matching codec in this factory. More...
 
void limitCodecs (const SdpCodecList &includeOnlyCodecList)
 Remove any codecs in this list that are not equivalent to those in the given list. More...
 
void clearCodecs (void)
 Clear the list. More...
 
void setCodecCPULimit (int iLimit)
 Limits the advertised codec by CPU limit level. More...
 
Inquiry
UtlBoolean containsCodec (const SdpCodec &codec, UtlBoolean exeact=FALSE) const
 Query if equivalent codec is in the list. More...
 

Private Member Functions

void addCodecNoLock (const SdpCodec &newCodec)
 Add a new codec type to the list of known codecs (without locking). More...
 

Private Attributes

UtlDList mCodecs
 
OsRWMutex mReadWriteMutex
 
int mCodecCPULimit
 

Accessors

const SdpCodecgetCodec (SdpCodec::SdpCodecTypes internalCodecId) const
 Get a codec given an internal codec id. More...
 
const SdpCodecgetCodecByType (int payloadTypeId, UtlBoolean shouldLock=TRUE) const
 Get a codec given the payload type id. More...
 
const SdpCodecgetCodec (const char *MIMEType, const char *MIMESubType, int sampleRate, int numChannels, const UtlString &fmtp) const
 Get a codec given the MIME type, subtype and other parameters. More...
 
int getCodecCount () const
 Get the number of codecs. More...
 
int getCodecCount (const char *MIMEType) const
 Get the number of codecs by MIME type. More...
 
void getCodecs (int &numCodecs, SdpCodec **&codecArray) const
 Get codecs from this list, taking into account maximum CPU cost. More...
 
void getCodecs (int &numCodecs, SdpCodec **&codecArray, const char *MIMEType) const
 Get codecs from this list, taking into account maximum CPU cost and given MIME type. More...
 
void getCodecs (int &numCodecs, SdpCodec **&codecArray, const char *MIMEType, const char *subMimeType) const
 Returns a copy of all the codecs. More...
 
void toString (UtlString &serializedFactory) const
 String representation of factory and codecs. More...
 
int getCodecCPULimit () const
 Gets the codec CPU limit level. More...
 
static void freeArray (int arraySize, SdpCodec **&codecArray)
 Frees up codecs and codec pointer array. More...
 

Detailed Description

List of codecs, used for storing supported codecs and for codec negotiation.

Constructor & Destructor Documentation

SdpCodecList ( int  numCodecs = 0,
SdpCodec codecArray[] = NULL 
)

Constructor.

SdpCodecList ( const SdpCodecList rSdpCodecFactory)

Copy constructor.

~SdpCodecList ( )
virtual

Destructor.

Member Function Documentation

void addCodec ( const SdpCodec newCodec)

Add a new codec type to the list of known codecs.

void addCodecNoLock ( const SdpCodec newCodec)
private

Add a new codec type to the list of known codecs (without locking).

void addCodecs ( int  numCodecs,
SdpCodec newCodecs[] 
)

Add copies of the array of codecs.

int addCodecs ( const UtlString &  codecList)

Add specified codecs to the list.

Returns
Number of unknown codecs in the list. Zero for full success.
int addCodecs ( UtlSList &  codecNameList)

Add specified codecs to the list.

Returns
Number of unknown codecs in the list. Zero for full success.
int addCodecs ( int  numTokens,
const char *  codecTokens[],
int  payloadIds[] 
)

Add codecs specified by array of codec token names and assign given payload ID.

int addCodecs ( int  codecCount,
SdpCodec::SdpCodecTypes  codecTypes[] 
)

Add specified codecs to the list.

Returns
Number of unknown codecs in the list. Zero for full success.
void bindPayloadTypes ( )

Assign any unset payload type ids.

void clearCodecs ( void  )

Clear the list.

UtlBoolean containsCodec ( const SdpCodec codec,
UtlBoolean  exeact = FALSE 
) const

Query if equivalent codec is in the list.

void copyPayloadType ( const SdpCodec codec)

If there is a matching codec in this factory, set its payload type to that of the given codec.

void copyPayloadTypes ( int  numCodecs,
const SdpCodec codecArray[] 
)

For all matching codecs, copy the payload type from the codecArray to the matching codec in this factory.

void copyPayloadTypes ( const SdpCodecList codecList)

For all matching codecs, copy the payload type from the given codecList to the matching codec in this factory.

void freeArray ( int  arraySize,
SdpCodec **&  codecArray 
)
static

Frees up codecs and codec pointer array.

const SdpCodec * getCodec ( SdpCodec::SdpCodecTypes  internalCodecId) const

Get a codec given an internal codec id.

const SdpCodec * getCodec ( const char *  MIMEType,
const char *  MIMESubType,
int  sampleRate,
int  numChannels,
const UtlString &  fmtp 
) const

Get a codec given the MIME type, subtype and other parameters.

const SdpCodec * getCodecByType ( int  payloadTypeId,
UtlBoolean  shouldLock = TRUE 
) const

Get a codec given the payload type id.

int getCodecCount ( ) const

Get the number of codecs.

int getCodecCount ( const char *  MIMEType) const

Get the number of codecs by MIME type.

int getCodecCPULimit ( ) const

Gets the codec CPU limit level.

void getCodecs ( int &  numCodecs,
SdpCodec **&  codecArray 
) const

Get codecs from this list, taking into account maximum CPU cost.

void getCodecs ( int &  numCodecs,
SdpCodec **&  codecArray,
const char *  MIMEType 
) const

Get codecs from this list, taking into account maximum CPU cost and given MIME type.

void getCodecs ( int &  numCodecs,
SdpCodec **&  codecArray,
const char *  MIMEType,
const char *  subMimeType 
) const

Returns a copy of all the codecs.

void limitCodecs ( const SdpCodecList includeOnlyCodecList)

Remove any codecs in this list that are not equivalent to those in the given list.

SdpCodecList & operator= ( const SdpCodecList rhs)

Assignment operator.

void setCodecCPULimit ( int  iLimit)

Limits the advertised codec by CPU limit level.

Parameters
[in]iLimit- The limit level for codecs. A value of SDP_CODEC_CPU_LOW indicates only low cpu intensity codecs and a value of SDP_CODEC_CPU_HIGH indicates either low or high cpu intensity.
void toString ( UtlString &  serializedFactory) const

String representation of factory and codecs.

int unbindPayloadType ( int  payloadId)

unbind any codec with the given dynamic payload type

Member Data Documentation

int mCodecCPULimit
private
UtlDList mCodecs
private
OsRWMutex mReadWriteMutex
private