#include <mediafmt.h>
Public Member Functions | |
Construction | |
OpalMediaFormatList () | |
OpalMediaFormatList (const OpalMediaFormat &format) | |
OpalMediaFormatList (const OpalMediaFormatList &l) | |
Operations | |
OpalMediaFormatList & | operator+= (const OpalMediaFormat &format) |
OpalMediaFormatList & | operator+= (const OpalMediaFormatList &formats) |
OpalMediaFormatList & | operator-= (const OpalMediaFormat &format) |
OpalMediaFormatList & | operator-= (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 |
OpalMediaFormatList::OpalMediaFormatList | ( | ) |
Create an empty media format list.
OpalMediaFormatList::OpalMediaFormatList | ( | const OpalMediaFormat & | format | ) |
Create a media format list with one media format in it.
format | Format to add |
OpalMediaFormatList::OpalMediaFormatList | ( | const OpalMediaFormatList & | l | ) | [inline] |
Create a copy of a media format list.
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 " 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.
wildcard | Wildcard string name. |
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.
rtpPayloadType | RTP payload type code |
clockRate | clock rate |
rtpEncodingName | RTP payload type name |
protocol | protocol to be valid for (if NULL, then all) |
start | location to start search |
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".
wildcard | Wildcard string name. |
PBoolean OpalMediaFormatList::HasFormat | ( | RTP_DataFrame::PayloadTypes | rtpPayloadType | ) | const [inline] |
Determine if a format matching the payload type is in the list.
rtpPayloadType | RTP payload type code |
bool OpalMediaFormatList::HasType | ( | const OpalMediaType & | type, | |
bool | mustBeTransportable = true | |||
) | const |
Determine if a list contains a specific media type
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.
formats | Formats to add |
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.
format | Format to add |
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.
formats | Formats to remove |
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.
format | Format to 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 match "G.711-uLaw-64k" and "G.711-ALaw-64k".
The '@' character indicates a type of media format, so say " 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.
I should be noted that when the ! operator is used, codecs are removed at that time and later ! operators may not have an affect. For example {"!G.729","!G.728"} will NOT give you two codecs but on G.729.
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 " would sort by video codec.
The '!' character is not supported.