OPAL  Version 3.10.10
OpalMediaFormatList Class Reference

#include <mediafmt.h>

Inheritance diagram for OpalMediaFormatList:

Public Member Functions

Construction
 OpalMediaFormatList ()
 
 OpalMediaFormatList (const OpalMediaFormat &format)
 
 OpalMediaFormatList (const OpalMediaFormatList &l)
 
Operations
OpalMediaFormatListoperator+= (const char *wildcard)
 
OpalMediaFormatListoperator+= (const PString &wildcard)
 
OpalMediaFormatListoperator+= (const OpalMediaFormat &format)
 
OpalMediaFormatListoperator+= (const OpalMediaFormatList &formats)
 
OpalMediaFormatListoperator-= (const OpalMediaFormat &format)
 
OpalMediaFormatListoperator-= (const OpalMediaFormatList &formats)
 
const_iterator FindFormat (RTP_DataFrame::PayloadTypes rtpPayloadType, const unsigned clockRate, const char *rtpEncodingName=NULL, const char *protocol=NULL, const_iterator start=const_iterator()) const
 
const_iterator FindFormat (const PString &wildcard, const_iterator start=const_iterator()) const
 
PBoolean HasFormat (RTP_DataFrame::PayloadTypes rtpPayloadType) const
 
PBoolean HasFormat (const PString &wildcard) const
 
void Remove (const PStringArray &mask)
 
void Reorder (const PStringArray &order)
 
bool HasType (const OpalMediaType &type, bool mustBeTransportable=true) const
 

Detailed Description

This class contains a list of media formats.

Constructor & Destructor Documentation

◆ OpalMediaFormatList() [1/3]

OpalMediaFormatList::OpalMediaFormatList ( )

Create an empty media format list.

◆ OpalMediaFormatList() [2/3]

OpalMediaFormatList::OpalMediaFormatList ( const OpalMediaFormat format)

Create a media format list with one media format in it.

Parameters
formatFormat to add

◆ OpalMediaFormatList() [3/3]

OpalMediaFormatList::OpalMediaFormatList ( const OpalMediaFormatList l)
inline

Create a copy of a media format list.

Member Function Documentation

◆ FindFormat() [1/2]

const_iterator OpalMediaFormatList::FindFormat ( RTP_DataFrame::PayloadTypes  rtpPayloadType,
const unsigned  clockRate,
const char *  rtpEncodingName = NULL,
const char *  protocol = NULL,
const_iterator  start = const_iterator() 
) const

Get a format iterator in the list matching the payload type.

Returns end() if not in list.

Parameters
rtpPayloadTypeRTP payload type code
clockRateclock rate
rtpEncodingNameRTP payload type name
protocolprotocol to be valid for (if NULL, then all)
startlocation to start search

Referenced by HasFormat(), and operator+=().

◆ FindFormat() [2/2]

const_iterator OpalMediaFormatList::FindFormat ( const PString &  wildcard,
const_iterator  start = const_iterator() 
) const

Get a position in the list of the first entry matching the wildcard. The wildcard string is a string match using several special characters.

The '*' character indicates substrings, for example: "G.711*" would match "G.711-uLaw-64k" and "G.711-ALaw-64k".

The '@' character indicates a type of media format, so say "\@video" would find the first video codec.

The '!' character indicates a negative test. That is the first entry that does NOT match the string is returned. The string after the '!' may contain '*' and '@' characters.

Returns P_MAX_INDEX if not in list.

Parameters
wildcardWildcard string name.
startStarting position iterator for search

◆ HasFormat() [1/2]

PBoolean OpalMediaFormatList::HasFormat ( RTP_DataFrame::PayloadTypes  rtpPayloadType) const
inline

Determine if a format matching the payload type is in the list.

Parameters
rtpPayloadTypeRTP payload type code

References FindFormat().

◆ HasFormat() [2/2]

PBoolean OpalMediaFormatList::HasFormat ( const PString &  wildcard) const
inline

Determine if a format matching the wildcard is in the list. The wildcard string is a simple substring match using the '*' character. For example: "G.711*" would match "G.711-uLaw-64k" and "G.711-ALaw-64k".

Parameters
wildcardWildcard string name.

References FindFormat(), HasType(), Remove(), and Reorder().

◆ HasType()

bool OpalMediaFormatList::HasType ( const OpalMediaType type,
bool  mustBeTransportable = true 
) const

Determine if a list contains a specific media type

Referenced by HasFormat().

◆ operator+=() [1/4]

OpalMediaFormatList& OpalMediaFormatList::operator+= ( const char *  wildcard)
inline

Add a format(s) to the list. If any format is invalid or already in the list then it is not added.

Parameters
wildcardWildcard for formats to add

References FindFormat(), and operator-=().

◆ operator+=() [2/4]

OpalMediaFormatList& OpalMediaFormatList::operator+= ( const PString &  wildcard)

Add a format(s) to the list. If any format is invalid or already in the list then it is not added.

Parameters
wildcardWildcard for formats to add

◆ operator+=() [3/4]

OpalMediaFormatList& OpalMediaFormatList::operator+= ( const OpalMediaFormat format)

Add a format to the list. If the format is invalid or already in the list then it is not added.

Parameters
formatFormat to add

◆ operator+=() [4/4]

OpalMediaFormatList& OpalMediaFormatList::operator+= ( const OpalMediaFormatList formats)

Add a format to the list. If the format is invalid or already in the list then it is not added.

Parameters
formatsFormats to add

◆ operator-=() [1/2]

OpalMediaFormatList& OpalMediaFormatList::operator-= ( const OpalMediaFormat format)

Remove a format to the list. If the format is invalid or not in the list then this does nothing.

Parameters
formatFormat to remove

Referenced by operator+=().

◆ operator-=() [2/2]

OpalMediaFormatList& OpalMediaFormatList::operator-= ( const OpalMediaFormatList formats)

Remove a format to the list. If the format is invalid or not in the list then this does nothing.

Parameters
formatsFormats to remove

◆ Remove()

void OpalMediaFormatList::Remove ( const PStringArray &  mask)

Remove all the formats specified. Each string in the array is checked using the wildcard matching algorithm in FindFormat().

The '*' character indicates substrings, for example: "G.711*" would remove "G.711-uLaw-64k" and "G.711-ALaw-64k".

The '@' character indicates a type of media format, so say "\@video" would remove all video codecs.

The '!' character indicates a negative test. That is the entres that do NOT match the string are removed. The string after the '!' may contain '*' and '@' characters.

I should be noted that when the ! operator is used, they are combined differently to the usual application of each entry in turn. Thus, the array {"!A","!B"} will result in keeping both A and B formats.

Referenced by HasFormat().

◆ Reorder()

void OpalMediaFormatList::Reorder ( const PStringArray &  order)

Reorder the formats in the list. The order variable is an array of names and the list is reordered according to the order in that array.

Each string in the array is checked using the wildcard matching algorithm similar to FindFormat().

The '*' character indicates substrings, for example: "G.711*" would match "G.711-uLaw-64k" and "G.711-ALaw-64k".

The '@' character indicates a type of media format, so say "\@video" would sort by video codec.

The '!' character is not supported.

Referenced by HasFormat().


The documentation for this class was generated from the following file: