#include <mediafmt.h>
Inheritance diagram for OpalMediaFormat:
Public Types | |
enum | { DefaultAudioSessionID = 1, DefaultVideoSessionID = 2, DefaultDataSessionID = 3 } |
enum | StandardClockRate { AudioClockRate = 8000, VideoClockRate = 90000 } |
Public Member Functions | |
OpalMediaFormat () | |
OpalMediaFormat (const char *fullName, unsigned defaultSessionID, RTP_DataFrame::PayloadTypes rtpPayloadType, const char *encodingName, BOOL needsJitter, unsigned bandwidth, PINDEX frameSize, unsigned frameTime, unsigned clockRate) | |
OpalMediaFormat (RTP_DataFrame::PayloadTypes rtpPayloadType, unsigned clockRate, const char *rtpEncodingName=NULL) | |
OpalMediaFormat (const char *wildcard) | |
OpalMediaFormat (const PString &wildcard) | |
OpalMediaFormat & | operator= (RTP_DataFrame::PayloadTypes rtpPayloadType) |
OpalMediaFormat & | operator= (const char *wildcard) |
OpalMediaFormat & | operator= (const PString &wildcard) |
virtual bool | Merge (const OpalMediaFormat &mediaFormat) |
RTP_DataFrame::PayloadTypes | GetPayloadType () const |
const char * | GetEncodingName () const |
unsigned | GetDefaultSessionID () const |
bool | NeedsJitterBuffer () const |
unsigned | GetBandwidth () const |
PINDEX | GetFrameSize () const |
unsigned | GetFrameTime () const |
unsigned | GetTimeUnits () const |
unsigned | GetClockRate () const |
PINDEX | GetOptionCount () const |
const OpalMediaOption & | GetOption (PINDEX index) |
bool | GetOptionValue (const PString &name, PString &value) const |
bool | SetOptionValue (const PString &name, const PString &value) |
bool | GetOptionBoolean (const PString &name, bool dflt=FALSE) const |
bool | SetOptionBoolean (const PString &name, bool value) |
int | GetOptionInteger (const PString &name, int dflt=0) const |
bool | SetOptionInteger (const PString &name, int value) |
double | GetOptionReal (const PString &name, double dflt=0) const |
bool | SetOptionReal (const PString &name, double value) |
PINDEX | GetOptionEnum (const PString &name, PINDEX dflt=0) const |
bool | SetOptionEnum (const PString &name, PINDEX value) |
PString | GetOptionString (const PString &name, const PString &dflt=PString::Empty()) const |
bool | SetOptionString (const PString &name, const PString &value) |
Static Public Member Functions | |
static OpalMediaFormatList | GetAllRegisteredMediaFormats () |
static void | GetAllRegisteredMediaFormats (OpalMediaFormatList ©) |
static bool | SetRegisteredMediaFormat (const OpalMediaFormat &mediaFormat) |
Static Public Attributes | |
static const char *const | NeedsJitterOption |
static const char *const | MaxBitRateOption |
static const char *const | MaxFrameSizeOption |
static const char *const | FrameTimeOption |
static const char *const | ClockRateOption |
Protected Member Functions | |
bool | AddOption (OpalMediaOption *option) |
OpalMediaOption * | FindOption (const PString &name) const |
Protected Attributes | |
RTP_DataFrame::PayloadTypes | rtpPayloadType |
const char * | rtpEncodingName |
unsigned | defaultSessionID |
PSortedList< OpalMediaOption > | options |
Friends | |
class | OpalMediaFormatList |
There
|
|
|
|
|
Default constructor creates a PCM-16 media format. |
|
This form of the constructor will register the full details of the media format into an internal database. This would typically be used as a static global. In fact it would be very dangerous for an instance to use this constructor in any other way, especially local variables. If the rtpPayloadType is RTP_DataFrame::DynamicBase, then the RTP payload type is actually set to teh first unused dynamic RTP payload type that is in the registers set of media formats. The frameSize parameter indicates that the media format has a maximum size for each data frame, eg G.723.1 frames are no more than 24 bytes long. If zero then there is no intrinsic maximum, eg G.711.
|
|
Construct a media format, searching database for information. This constructor will search through the RegisteredMediaFormats list for the match of the payload type, if found the other information fields are set from the database. If not found then the ancestor string is set to the empty string. Note it is impossible to determine the order of registration so this should not be relied on.
|
|
Construct a media format, searching database for information. This constructor will search through the RegisteredMediaFormats list for the wildcard match of the parameter string, if found the other information fields are set from the database. If not found then the ancestor string is set to the empty string. The wildcard string is a simple substring match using the '*' character. For example: "G.711*" would match the first of "G.711-uLaw-64k" and "G.711-ALaw-64k" to have been registered. Note it is impossible to determine the order of registration so this should not be relied on.
|
|
Construct a media format, searching database for information. This constructor will search through the RegisteredMediaFormats list for the wildcard match of the parameter string, if found the other information fields are set from the database. If not found then the ancestor string is set to the empty string. The wildcard string is a simple substring match using the '*' character. For example: "G.711*" would match the first of "G.711-uLaw-64k" and "G.711-ALaw-64k" to have been registered. Note it is impossible to determine the order of registration so this should not be relied on.
|
|
|
|
|
|
|
|
Get a copy of the list of media formats that have been registered. |
|
Get the average bandwidth used in bits/second. |
|
Get the clock rate in Hz for this format. |
|
Get the default session ID for media format. |
|
Get the RTP encoding name that is to be used for this media format. |
|
Get the maximum frame size in bytes. If this returns zero then the media format has no intrinsic maximum frame size, eg G.711 would return zero but G.723.1 whoud return 24. |
|
Get the frame time in RTP timestamp units. If this returns zero then the media format is not real time and has no intrinsic timing eg T.120 |
|
Get the option instance at the specified index. This contains the description and value for the option.
|
|
Get the option value of the specified name as a boolean. The default value is returned if the option is not present.
|
|
Get the number of options this media format has. |
|
Get the option value of the specified name as an index into an enumeration list. The default value is returned if the option is not present.
|
|
Get the option value of the specified name as an integer. The default value is returned if the option is not present.
|
|
Get the option value of the specified name as a real. The default value is returned if the option is not present.
|
|
Get the option value of the specified name as a string. The default value is returned if the option is not present.
|
|
Get the option value of the specified name as a string. Returns false of the option is not present.
|
|
Get the RTP payload type that is to be used for this media format. This will either be an intrinsic one for the media format eg GSM or it will be automatically calculated as a dynamic media format that will be uniqueue amongst the registered media formats. |
|
Get the number of RTP timestamp units per millisecond. |
|
Merge with another media format. This will alter and validate the options for this media format according to the merge rule for each option. The parameter is typically a "capability" while the current object isthe proposed channel format. This if the current object has a tx number of frames of 3, but the parameter has a value of 1, then the current object will be set to 1. Returns FALSE if the media formats are incompatible and cannot be merged. Reimplemented in OpalVideoFormat. |
|
Determine if the media format requires a jitter buffer. As a rule an audio codec needs a jitter buffer and all others do not. |
|
Search for the specified format name. This is equivalent to going fmt = OpalMediaFormat(search);
|
|
Search for the specified format name. This is equivalent to going fmt = OpalMediaFormat(search);
|
|
Search for the specified format type. This is equivalent to going fmt = OpalMediaFormat(rtpPayloadType);
|
|
Set the option value of the specified name as a boolean. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present or is not of the same type.
|
|
Set the option value of the specified name as an index into an enumeration. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present or is not of the same type.
|
|
Set the option value of the specified name as an integer. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present, not of the same type or is putside the allowable range.
|
|
Set the option value of the specified name as a real. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present or is not of the same type.
|
|
Set the option value of the specified name as a string. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present or is not of the same type.
|
|
Set the option value of the specified name as a string. Note the option will not be added if it does not exist, the option must be explicitly added using AddOption(). Returns false of the option is not present.
|
|
Set the options on the master format list entry. The media format must already be registered. Returns false if not.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|