mediafmt.h
Go to the documentation of this file.
/*
* mediafmt.h
*
* Media Format descriptions
*
* Open Phone Abstraction Library (OPAL)
* Formally known as the Open H323 project.
*
* Copyright (c) 2001 Equivalence Pty. Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific language governing rights and limitations
* under the License.
*
* The Original Code is Open H323 Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Contributor(s): ______________________________________.
*
* $Revision: 27856 $
* $Author: rjongbloed $
* $Date: 2012-06-18 21:51:57 -0500 (Mon, 18 Jun 2012) $
*/
#ifndef OPAL_OPAL_MEDIAFMT_H
#define OPAL_OPAL_MEDIAFMT_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#ifdef _MSC_VER
#if _MSC_VER < 1300
#pragma warning(disable:4663)
#endif
#endif
#include <opal/buildopts.h>
#include <opal/mediatype.h>
#include <rtp/rtp.h>
#if OPAL_VIDEO
#include <ptlib/videoio.h>
#endif
#include <limits>
#ifdef min
#undef min
#endif
#ifdef max
#undef max
#endif
class OpalMediaFormat;
PLIST(OpalMediaFormatBaseList, OpalMediaFormat);
class OpalMediaFormatList : public OpalMediaFormatBaseList
{
PCLASSINFO(OpalMediaFormatList, OpalMediaFormatBaseList);
public:
OpalMediaFormatList();
OpalMediaFormatList(
const OpalMediaFormat & format
);
OpalMediaFormatList(const OpalMediaFormatList & l) : OpalMediaFormatBaseList(l) { }
OpalMediaFormatList & operator+=(
const char * wildcard
) { PConstString s(wildcard); return operator+=(s); }
OpalMediaFormatList & operator+=(
const PString & wildcard
);
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 { return FindFormat(rtpPayloadType) != end(); }
PBoolean HasFormat(
const PString & wildcard
) const { return FindFormat(wildcard) != end(); }
void Remove(
const PStringArray & mask
);
void Reorder(
const PStringArray & order
);
bool HasType(
const OpalMediaType & type,
bool mustBeTransportable = true
) const;
private:
virtual PINDEX Append(PObject *) { return P_MAX_INDEX; }
virtual PINDEX Insert(const PObject &, PObject *) { return P_MAX_INDEX; }
virtual PINDEX InsertAt(PINDEX, PObject *) { return P_MAX_INDEX; }
virtual PBoolean SetAt(PINDEX, PObject *) { return false; }
};
class OpalMediaOption : public PObject
{
PCLASSINFO(OpalMediaOption, PObject);
public:
// Note the below enum must be identical to PluginCodec_OptionMerge in opalplugin.h
enum MergeType {
NoMerge,
MinMerge,
MaxMerge,
EqualMerge,
NotEqualMerge,
AlwaysMerge,
CustomMerge,
IntersectionMerge, // Set intersection, applies to numeric (bit wise AND) or string (common substrings)
// Synonyms
AndMerge = MinMerge, // Applies to Boolean option or Enum with two elements
OrMerge = MaxMerge // Applies to Boolean option or Enum with two elements
};
protected:
OpalMediaOption(
const PString & name
);
OpalMediaOption(
const char * name,
bool readOnly,
MergeType merge
);
public:
virtual Comparison Compare(const PObject & obj) const;
virtual bool Merge(
const OpalMediaOption & option
);
virtual bool ValidateMerge(
const OpalMediaOption & option
) const;
virtual Comparison CompareValue(
const OpalMediaOption & option
) const = 0;
virtual void Assign(
const OpalMediaOption & option
) = 0;
PString AsString() const;
bool FromString(const PString & value);
const PString & GetName() const { return m_name; }
bool IsReadOnly() const { return m_readOnly; }
void SetReadOnly(bool readOnly) { m_readOnly = readOnly; }
MergeType GetMerge() const { return m_merge; }
void SetMerge(MergeType merge) { m_merge = merge; }
#if OPAL_SIP
const PString & GetFMTPName() const { return m_FMTPName; }
void SetFMTPName(const char * name) { m_FMTPName = name; }
const PString & GetFMTPDefault() const { return m_FMTPDefault; }
void SetFMTPDefault(const char * value) { m_FMTPDefault = value; }
#endif // OPAL_SIP
#if OPAL_H323
struct H245GenericInfo {
H245GenericInfo()
: ordinal(0)
, mode(None)
, integerType(UnsignedInt)
, excludeTCS(false)
, excludeOLC(false)
, excludeReqMode(false)
, position(-1)
{ }
unsigned ordinal;
enum Modes {
None,
Collapsing,
NonCollapsing
} mode;
enum IntegerTypes {
UnsignedInt,
Unsigned32,
BooleanArray
} integerType;
bool excludeTCS;
bool excludeOLC;
bool excludeReqMode;
int position; // Position in sequence for parameter
PString defaultValue; // Do not include parameter if this value
};
const H245GenericInfo & GetH245Generic() const { return m_H245Generic; }
void SetH245Generic(const H245GenericInfo & genericInfo) { m_H245Generic = genericInfo; }
#endif // OPAL_H323
protected:
PCaselessString m_name;
bool m_readOnly;
MergeType m_merge;
#if OPAL_SIP
PCaselessString m_FMTPName;
PString m_FMTPDefault;
#endif // OPAL_SIP
#if OPAL_H323
H245GenericInfo m_H245Generic;
#endif // OPAL_H323
};
template <typename T>
class OpalMediaOptionValue : public OpalMediaOption
{
PCLASSINFO(OpalMediaOptionValue, OpalMediaOption);
public:
OpalMediaOptionValue(
const char * name,
bool readOnly,
OpalMediaOption::MergeType merge = OpalMediaOption::MinMerge,
T value = T()
)
: OpalMediaOption(name, readOnly, merge)
, m_value(value)
{
}
virtual PObject * Clone() const
{
return new OpalMediaOptionValue(*this);
}
virtual void PrintOn(ostream & strm) const
{
strm << m_value;
}
virtual void ReadFrom(istream & strm)
{
strm >> m_value;
}
virtual bool Merge(const OpalMediaOption & option)
{
if (m_merge != IntersectionMerge)
return OpalMediaOption::Merge(option);
const OpalMediaOptionValue * otherOption = PDownCast(const OpalMediaOptionValue, &option);
if (otherOption == NULL)
return false;
m_value &= otherOption->m_value;
return true;
}
virtual Comparison CompareValue(const OpalMediaOption & option) const
{
const OpalMediaOptionValue * otherOption = PDownCast(const OpalMediaOptionValue, &option);
if (otherOption == NULL)
return GreaterThan;
if (m_value < otherOption->m_value)
return LessThan;
if (m_value > otherOption->m_value)
return GreaterThan;
return EqualTo;
}
virtual void Assign(const OpalMediaOption & option)
{
const OpalMediaOptionValue * otherOption = PDownCast(const OpalMediaOptionValue, &option);
if (otherOption != NULL)
m_value = otherOption->m_value;
}
T GetValue() const
{
return m_value;
}
void SetValue(T value)
{
m_value = value;
}
protected:
T m_value;
};
template <typename T>
class OpalMediaOptionNumericalValue : public OpalMediaOptionValue<T>
{
typedef OpalMediaOptionValue<T> BaseClass;
PCLASSINFO(OpalMediaOptionNumericalValue, BaseClass);
public:
OpalMediaOptionNumericalValue(
const char * name,
bool readOnly,
OpalMediaOption::MergeType merge = OpalMediaOption::MinMerge,
T value = 0,
T minimum = std::numeric_limits<T>::min(),
T maximum = std::numeric_limits<T>::max()
)
: BaseClass(name, readOnly, merge, value)
, m_minimum(minimum)
, m_maximum(maximum)
{
}
virtual PObject * Clone() const
{
return new OpalMediaOptionNumericalValue(*this);
}
virtual void ReadFrom(istream & strm)
{
T temp = 0;
strm >> temp;
if (strm.fail())
return;
if (temp >= m_minimum && temp <= m_maximum)
this->m_value = temp;
else
strm.setstate(ios::badbit);
}
void SetValue(T value)
{
if (value < m_minimum)
this->m_value = m_minimum;
else if (value > m_maximum)
this->m_value = m_maximum;
else
this->m_value = value;
}
void SetMinimum(T m)
{
this->m_minimum = m;
}
void SetMaximum(T m)
{
this->m_maximum = m;
}
protected:
T m_minimum;
T m_maximum;
};
typedef OpalMediaOptionNumericalValue<bool> OpalMediaOptionBoolean;
typedef OpalMediaOptionNumericalValue<int> OpalMediaOptionInteger;
typedef OpalMediaOptionNumericalValue<unsigned> OpalMediaOptionUnsigned;
// Wrapper class so we can implement intersection (&= operator) for floating point
class OpalMediaOptionRealValue
{
double m_value;
public:
OpalMediaOptionRealValue(double value = 0) : m_value(value) { }
operator double() const { return m_value; }
void operator&=(double other) { if (m_value > other) m_value = other; }
friend ostream & operator<<(ostream & strm, const OpalMediaOptionRealValue & value) { return strm << value.m_value; }
friend istream & operator>>(istream & strm, OpalMediaOptionRealValue & value) { return strm >> value.m_value; }
};
typedef OpalMediaOptionNumericalValue<OpalMediaOptionRealValue> OpalMediaOptionReal;
class OpalMediaOptionEnum : public OpalMediaOption
{
PCLASSINFO(OpalMediaOptionEnum, OpalMediaOption);
public:
OpalMediaOptionEnum(
const char * name,
bool readOnly
);
OpalMediaOptionEnum(
const char * name,
bool readOnly,
const char * const * enumerations,
PINDEX count,
MergeType merge = EqualMerge,
PINDEX value = 0
);
virtual PObject * Clone() const;
virtual void PrintOn(ostream & strm) const;
virtual void ReadFrom(istream & strm);
virtual Comparison CompareValue(const OpalMediaOption & option) const;
virtual void Assign(const OpalMediaOption & option);
PINDEX GetValue() const { return m_value; }
void SetValue(PINDEX value);
const PStringArray & GetEnumerations() const { return m_enumerations; }
void SetEnumerations(const PStringArray & e)
{
m_enumerations = e;
}
protected:
PStringArray m_enumerations;
PINDEX m_value;
};
class OpalMediaOptionString : public OpalMediaOption
{
PCLASSINFO(OpalMediaOptionString, OpalMediaOption);
public:
OpalMediaOptionString(
const char * name,
bool readOnly
);
OpalMediaOptionString(
const char * name,
bool readOnly,
const PString & value
);
virtual PObject * Clone() const;
virtual void PrintOn(ostream & strm) const;
virtual void ReadFrom(istream & strm);
virtual bool Merge(const OpalMediaOption & option);
virtual Comparison CompareValue(const OpalMediaOption & option) const;
virtual void Assign(const OpalMediaOption & option);
const PString & GetValue() const { return m_value; }
void SetValue(const PString & value);
protected:
PString m_value;
};
class OpalMediaOptionOctets : public OpalMediaOption
{
PCLASSINFO(OpalMediaOptionOctets, OpalMediaOption);
public:
OpalMediaOptionOctets(
const char * name,
bool readOnly,
bool base64 = false
);
OpalMediaOptionOctets(
const char * name,
bool readOnly,
bool base64,
const PBYTEArray & value
);
OpalMediaOptionOctets(
const char * name,
bool readOnly,
bool base64,
const BYTE * data,
PINDEX length
);
virtual PObject * Clone() const;
virtual void PrintOn(ostream & strm) const;
virtual void ReadFrom(istream & strm);
virtual Comparison CompareValue(const OpalMediaOption & option) const;
virtual void Assign(const OpalMediaOption & option);
const PBYTEArray & GetValue() const { return m_value; }
void SetValue(const PBYTEArray & value);
void SetValue(const BYTE * data, PINDEX length);
void SetBase64(bool b)
{
m_base64 = b;
}
protected:
PBYTEArray m_value;
bool m_base64;
};
class OpalMediaFormatInternal : public PObject
{
PCLASSINFO(OpalMediaFormatInternal, PObject);
public:
OpalMediaFormatInternal(
const char * fullName,
const OpalMediaType & mediaType,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
PBoolean needsJitter,
unsigned bandwidth,
PINDEX frameSize,
unsigned frameTime,
unsigned clockRate,
time_t timeStamp
);
const PCaselessString & GetName() const { return formatName; }
virtual PObject * Clone() const;
virtual void PrintOn(ostream & strm) const;
virtual bool IsValid() const;
virtual bool IsTransportable() const;
virtual PStringToString GetOptions() const;
virtual bool GetOptionValue(const PString & name, PString & value) const;
virtual bool SetOptionValue(const PString & name, const PString & value);
virtual bool GetOptionBoolean(const PString & name, bool dflt) const;
virtual bool SetOptionBoolean(const PString & name, bool value);
virtual int GetOptionInteger(const PString & name, int dflt) const;
virtual bool SetOptionInteger(const PString & name, int value);
virtual double GetOptionReal(const PString & name, double dflt) const;
virtual bool SetOptionReal(const PString & name, double value);
virtual PINDEX GetOptionEnum(const PString & name, PINDEX dflt) const;
virtual bool SetOptionEnum(const PString & name, PINDEX value);
virtual PString GetOptionString(const PString & name, const PString & dflt) const;
virtual bool SetOptionString(const PString & name, const PString & value);
virtual bool GetOptionOctets(const PString & name, PBYTEArray & octets) const;
virtual bool SetOptionOctets(const PString & name, const PBYTEArray & octets);
virtual bool SetOptionOctets(const PString & name, const BYTE * data, PINDEX length);
virtual bool AddOption(OpalMediaOption * option, PBoolean overwrite = false);
virtual OpalMediaOption * FindOption(const PString & name) const;
virtual bool ToNormalisedOptions();
virtual bool ToCustomisedOptions();
virtual bool Merge(const OpalMediaFormatInternal & mediaFormat);
virtual bool ValidateMerge(const OpalMediaFormatInternal & mediaFormat) const;
virtual bool IsValidForProtocol(const PString & protocol) const;
protected:
PCaselessString formatName;
RTP_DataFrame::PayloadTypes rtpPayloadType;
PString rtpEncodingName;
OpalMediaType mediaType;
PMutex media_format_mutex;
PSortedList<OpalMediaOption> options;
time_t codecVersionTime;
bool forceIsTransportable;
int m_channels;
friend bool operator==(const char * other, const OpalMediaFormat & fmt);
friend bool operator!=(const char * other, const OpalMediaFormat & fmt);
friend bool operator==(const PString & other, const OpalMediaFormat & fmt);
friend bool operator!=(const PString & other, const OpalMediaFormat & fmt);
friend class OpalMediaFormat;
friend class OpalMediaFormatList;
friend class OpalAudioFormatInternal;
};
class OpalMediaFormat : public PContainer
{
PCLASSINFO(OpalMediaFormat, PContainer)
public:
OpalMediaFormat(const OpalMediaFormat & c);
virtual ~OpalMediaFormat();
OpalMediaFormat & operator=(const OpalMediaFormat & c) { AssignContents(c); return *this; }
virtual PBoolean MakeUnique();
protected:
virtual void DestroyContents();
virtual void AssignContents(const PContainer & c);
public:
OpalMediaFormat(
OpalMediaFormatInternal * info = NULL
);
OpalMediaFormat(
const char * fullName,
const OpalMediaType & mediaType,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
PBoolean needsJitter,
unsigned bandwidth,
PINDEX frameSize,
unsigned frameTime,
unsigned clockRate,
time_t timeStamp = 0
);
OpalMediaFormat(
RTP_DataFrame::PayloadTypes rtpPayloadType,
unsigned clockRate,
const char * rtpEncodingName = NULL,
const char * protocol = 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 PObject * Clone() const;
virtual Comparison Compare(const PObject & obj) const;
virtual void PrintOn(ostream & strm) const;
virtual void ReadFrom(istream & strm);
bool ToNormalisedOptions();
bool ToCustomisedOptions();
bool Update(
const OpalMediaFormat & mediaFormat
);
bool Merge(
const OpalMediaFormat & mediaFormat
);
bool ValidateMerge(
const OpalMediaFormat & mediaFormat
) const;
PString GetName() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? "" : m_info->formatName; }
PBoolean IsValid() const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->IsValid(); }
PBoolean IsTransportable() const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->IsTransportable(); }
RTP_DataFrame::PayloadTypes GetPayloadType() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? RTP_DataFrame::IllegalPayloadType : m_info->rtpPayloadType; }
void SetPayloadType(RTP_DataFrame::PayloadTypes type) { PWaitAndSignal m(m_mutex); MakeUnique(); if (m_info != NULL) m_info->rtpPayloadType = type; }
const char * GetEncodingName() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? "" : m_info->rtpEncodingName.GetPointer(); }
OpalMediaType GetMediaType() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? OpalMediaType() : m_info->mediaType; }
bool NeedsJitterBuffer() const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->GetOptionBoolean(NeedsJitterOption(), false); }
static const PString & NeedsJitterOption();
unsigned GetBandwidth() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->GetOptionInteger(MaxBitRateOption(), 0); }
static const PString & MaxBitRateOption();
static const PString & TargetBitRateOption();
PINDEX GetFrameSize() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->GetOptionInteger(MaxFrameSizeOption(), 0); }
static const PString & MaxFrameSizeOption();
unsigned GetFrameTime() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->GetOptionInteger(FrameTimeOption(), 0); }
static const PString & FrameTimeOption();
unsigned GetTimeUnits() const { return GetClockRate()/1000; }
enum StandardClockRate {
AudioClockRate = 8000,
VideoClockRate = 90000
};
unsigned GetClockRate() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->GetOptionInteger(ClockRateOption(), 1000); }
static const PString & ClockRateOption();
static const PString & ProtocolOption();
static const PString & MaxTxPacketSizeOption();
PStringToString GetOptions() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? PStringToString() : m_info->GetOptions(); }
PINDEX GetOptionCount() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->options.GetSize(); }
const OpalMediaOption & GetOption(
PINDEX index
) const { PWaitAndSignal m(m_mutex); return m_info->options[index]; }
bool GetOptionValue(
const PString & name,
PString & value
) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->GetOptionValue(name, value); }
bool SetOptionValue(
const PString & name,
const PString & value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionValue(name, value); }
bool GetOptionBoolean(
const PString & name,
bool dflt = false
) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->GetOptionBoolean(name, dflt); }
bool SetOptionBoolean(
const PString & name,
bool value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionBoolean(name, value); }
int GetOptionInteger(
const PString & name,
int dflt = 0
) const { PWaitAndSignal m(m_mutex); return m_info == NULL ? dflt : m_info->GetOptionInteger(name, dflt); }
bool SetOptionInteger(
const PString & name,
int value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionInteger(name, value); }
double GetOptionReal(
const PString & name,
double dflt = 0
) const { PWaitAndSignal m(m_mutex); return m_info == NULL ? dflt : m_info->GetOptionReal(name, dflt); }
bool SetOptionReal(
const PString & name,
double value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionReal(name, value); }
PINDEX GetOptionEnum(
const PString & name,
PINDEX dflt = 0
) const { PWaitAndSignal m(m_mutex); return m_info == NULL ? dflt : m_info->GetOptionEnum(name, dflt); }
bool SetOptionEnum(
const PString & name,
PINDEX value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionEnum(name, value); }
PString GetOptionString(
const PString & name,
const PString & dflt = PString::Empty()
) const { PWaitAndSignal m(m_mutex); return m_info == NULL ? dflt : m_info->GetOptionString(name, dflt); }
bool SetOptionString(
const PString & name,
const PString & value
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionString(name, value); }
bool GetOptionOctets(
const PString & name,
PBYTEArray & octets
) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->GetOptionOctets(name, octets); }
bool SetOptionOctets(
const PString & name,
const PBYTEArray & octets
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionOctets(name, octets); }
bool SetOptionOctets(
const PString & name,
const BYTE * data,
PINDEX length
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->SetOptionOctets(name, data, length); }
static OpalMediaFormatList GetAllRegisteredMediaFormats();
static void GetAllRegisteredMediaFormats(
OpalMediaFormatList & copy
);
static bool SetRegisteredMediaFormat(
const OpalMediaFormat & mediaFormat
);
static bool RemoveRegisteredMediaFormat(
const OpalMediaFormat & mediaFormat
);
bool AddOption(
OpalMediaOption * option,
PBoolean overwrite = false
) { PWaitAndSignal m(m_mutex); MakeUnique(); return m_info != NULL && m_info->AddOption(option, overwrite); }
bool HasOption(const PString & name) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->FindOption(name) != NULL; }
OpalMediaOption * FindOption(
const PString & name
) const { PWaitAndSignal m(m_mutex); return m_info == NULL ? NULL : m_info->FindOption(name); }
template <class T> T * FindOptionAs(
const PString & name
) const { return dynamic_cast<T *>(FindOption(name)); }
bool IsValidForProtocol(const PString & protocol) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->IsValidForProtocol(protocol); }
time_t GetCodecVersionTime() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? 0 : m_info->codecVersionTime; }
ostream & PrintOptions(ostream & strm) const
{
PWaitAndSignal m(m_mutex);
if (m_info != NULL)
strm << setw(-1) << *m_info;
return strm;
}
#if OPAL_VIDEO
void AdjustVideoArgs(
PVideoDevice::OpenArgs & args
) const;
#endif
// Backward compatibility
virtual PBoolean IsEmpty() const { PWaitAndSignal m(m_mutex); return m_info == NULL || !m_info->IsValid(); }
operator PString() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? "" : m_info->formatName; }
operator const char *() const { PWaitAndSignal m(m_mutex); return m_info == NULL ? "" : m_info->formatName; }
bool operator==(const char * other) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->formatName == other; }
bool operator!=(const char * other) const { PWaitAndSignal m(m_mutex); return m_info == NULL || m_info->formatName != other; }
bool operator==(const PString & other) const { PWaitAndSignal m(m_mutex); return m_info != NULL && m_info->formatName == other; }
bool operator!=(const PString & other) const { PWaitAndSignal m(m_mutex); return m_info == NULL || m_info->formatName != other; }
bool operator==(const OpalMediaFormat & other) const { PWaitAndSignal m(m_mutex); return Compare(other) == EqualTo; }
bool operator!=(const OpalMediaFormat & other) const { PWaitAndSignal m(m_mutex); return Compare(other) != EqualTo; }
friend bool operator==(const char * other, const OpalMediaFormat & fmt) { return fmt.m_info != NULL && fmt.m_info->formatName == other; }
friend bool operator!=(const char * other, const OpalMediaFormat & fmt) { return fmt.m_info == NULL || fmt.m_info->formatName != other; }
friend bool operator==(const PString & other, const OpalMediaFormat & fmt) { return fmt.m_info != NULL && fmt.m_info->formatName == other; }
friend bool operator!=(const PString & other, const OpalMediaFormat & fmt) { return fmt.m_info == NULL || fmt.m_info->formatName != other; }
#if OPAL_H323
static const PString & MediaPacketizationOption();
static const PString & MediaPacketizationsOption();
PStringSet GetMediaPacketizations() const;
void SetMediaPacketizations(const PStringSet & packetizations);
#endif
private:
PBoolean SetSize(PINDEX) { return true; }
protected:
void Construct(OpalMediaFormatInternal * info);
OpalMediaFormatInternal * m_info;
PMutex m_mutex;
friend class OpalMediaFormatInternal;
friend class OpalMediaFormatList;
};
class OpalAudioFormatInternal : public OpalMediaFormatInternal
{
public:
OpalAudioFormatInternal(
const char * fullName,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
PINDEX frameSize,
unsigned frameTime,
unsigned rxFrames,
unsigned txFrames,
unsigned maxFrames,
unsigned clockRate,
time_t timeStamp
);
virtual PObject * Clone() const;
virtual bool Merge(const OpalMediaFormatInternal & mediaFormat);
};
class OpalAudioFormat : public OpalMediaFormat
{
PCLASSINFO(OpalAudioFormat, OpalMediaFormat);
public:
OpalAudioFormat(
OpalMediaFormatInternal * info = NULL
) : OpalMediaFormat(info) { }
OpalAudioFormat(
const char * fullName,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
PINDEX frameSize,
unsigned frameTime,
unsigned rxFrames,
unsigned txFrames,
unsigned maxFrames = 256,
unsigned clockRate = 8000,
time_t timeStamp = 0
);
static const PString & RxFramesPerPacketOption();
static const PString & TxFramesPerPacketOption();
static const PString & MaxFramesPerPacketOption();
static const PString & ChannelsOption();
};
#if OPAL_VIDEO
class OpalVideoFormatInternal : public OpalMediaFormatInternal
{
public:
OpalVideoFormatInternal(
const char * fullName,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
unsigned maxFrameWidth,
unsigned maxFrameHeight,
unsigned maxFrameRate,
unsigned maxBitRate,
time_t timeStamp
);
virtual PObject * Clone() const;
virtual bool Merge(const OpalMediaFormatInternal & mediaFormat);
};
class OpalVideoFormat : public OpalMediaFormat
{
PCLASSINFO(OpalVideoFormat, OpalMediaFormat);
public:
OpalVideoFormat(
OpalMediaFormatInternal * info = NULL
) : OpalMediaFormat(info) { }
OpalVideoFormat(
const char * fullName,
RTP_DataFrame::PayloadTypes rtpPayloadType,
const char * encodingName,
unsigned maxFrameWidth,
unsigned maxFrameHeight,
unsigned maxFrameRate,
unsigned maxBitRate,
time_t timeStamp = 0
);
static const PString & FrameWidthOption();
static const PString & FrameHeightOption();
static const PString & MinRxFrameWidthOption();
static const PString & MinRxFrameHeightOption();
static const PString & MaxRxFrameWidthOption();
static const PString & MaxRxFrameHeightOption();
static const PString & TemporalSpatialTradeOffOption();
static const PString & TxKeyFramePeriodOption();
static const PString & RateControlPeriodOption(); // Period over which the rate controller maintains the target bit rate.
static const PString & RateControllerOption(); // String for controller algorithm. Empty is none.
enum ContentRole {
eNoRole,
ePresentation,
eMainRole,
eSpeaker,
eSignLanguage,
eNumRoles
};
enum { ContentRoleMask = 15 };
__inline static unsigned ContentRoleBit(ContentRole contentRole) { return contentRole != eNoRole ? (1<<(contentRole-1)) : 0; }
static const PString & ContentRoleOption();
static const PString & ContentRoleMaskOption();
};
#endif
// List of known media formats
#define OPAL_PCM16 "PCM-16"
#define OPAL_PCM16S "PCM-16S"
#define OPAL_PCM16_16KHZ "PCM-16-16kHz"
#define OPAL_PCM16S_16KHZ "PCM-16S-16kHz"
#define OPAL_PCM16_32KHZ "PCM-16-32kHz"
#define OPAL_PCM16S_32KHZ "PCM-16S-32kHz"
#define OPAL_PCM16_48KHZ "PCM-16-48kHz"
#define OPAL_PCM16S_48KHZ "PCM-16S-48kHz"
#define OPAL_L16_MONO_8KHZ "Linear-16-Mono-8kHz"
#define OPAL_L16_STEREO_8KHZ "Linear-16-Stereo-8kHz"
#define OPAL_L16_MONO_16KHZ "Linear-16-Mono-16kHz"
#define OPAL_L16_STEREO_16KHZ "Linear-16-Stereo-16kHz"
#define OPAL_L16_MONO_32KHZ "Linear-16-Mono-32kHz"
#define OPAL_L16_STEREO_32KHZ "Linear-16-Stereo-32kHz"
#define OPAL_L16_MONO_48KHZ "Linear-16-Mono-48kHz"
#define OPAL_L16_STEREO_48KHZ "Linear-16-Stereo-48kHz"
#define OPAL_G711_ULAW_64K "G.711-uLaw-64k"
#define OPAL_G711_ALAW_64K "G.711-ALaw-64k"
#define OPAL_G722 "G.722"
#define OPAL_G7221 "G.722.1"
#define OPAL_G7222 "G.722.2"
#define OPAL_G726_40K "G.726-40K"
#define OPAL_G726_32K "G.726-32K"
#define OPAL_G726_24K "G.726-24K"
#define OPAL_G726_16K "G.726-16K"
#define OPAL_G728 "G.728"
#define OPAL_G729 "G.729"
#define OPAL_G729A "G.729A"
#define OPAL_G729B "G.729B"
#define OPAL_G729AB "G.729A/B"
#define OPAL_G7231 "G.723.1"
#define OPAL_G7231_6k3 OPAL_G7231
#define OPAL_G7231_5k3 "G.723.1(5.3k)"
#define OPAL_G7231A_6k3 "G.723.1A(6.3k)"
#define OPAL_G7231A_5k3 "G.723.1A(5.3k)"
#define OPAL_GSM0610 "GSM-06.10"
#define OPAL_GSMAMR "GSM-AMR"
#define OPAL_iLBC "iLBC"
#define OPAL_H261 "H.261"
#define OPAL_H263 "H.263"
#define OPAL_H264 "H.264"
#define OPAL_H264_MODE0 "H.264-0"
#define OPAL_H264_MODE1 "H.264-1"
#define OPAL_MPEG4 "MPEG4"
#define OPAL_RFC2833 "UserInput/RFC2833"
#define OPAL_CISCONSE "NamedSignalEvent"
#define OPAL_T38 "T.38"
extern const OpalAudioFormat & GetOpalPCM16();
extern const OpalAudioFormat & GetOpalPCM16S();
extern const OpalAudioFormat & GetOpalPCM16_16KHZ();
extern const OpalAudioFormat & GetOpalPCM16S_16KHZ();
extern const OpalAudioFormat & GetOpalPCM16_32KHZ();
extern const OpalAudioFormat & GetOpalPCM16S_32KHZ();
extern const OpalAudioFormat & GetOpalPCM16_48KHZ();
extern const OpalAudioFormat & GetOpalPCM16S_48KHZ();
extern const OpalAudioFormat & GetOpalL16_MONO_8KHZ();
extern const OpalAudioFormat & GetOpalL16_STEREO_8KHZ();
extern const OpalAudioFormat & GetOpalL16_MONO_16KHZ();
extern const OpalAudioFormat & GetOpalL16_STEREO_16KHZ();
extern const OpalAudioFormat & GetOpalL16_MONO_32KHZ();
extern const OpalAudioFormat & GetOpalL16_STEREO_32KHZ();
extern const OpalAudioFormat & GetOpalL16_MONO_48KHZ();
extern const OpalAudioFormat & GetOpalL16_STEREO_48KHZ();
extern const OpalAudioFormat & GetOpalG711_ULAW_64K();
extern const OpalAudioFormat & GetOpalG711_ALAW_64K();
extern const OpalAudioFormat & GetOpalG722();
extern const OpalAudioFormat & GetOpalG7221();
extern const OpalAudioFormat & GetOpalG7222();
extern const OpalAudioFormat & GetOpalG726_40K();
extern const OpalAudioFormat & GetOpalG726_32K();
extern const OpalAudioFormat & GetOpalG726_24K();
extern const OpalAudioFormat & GetOpalG726_16K();
extern const OpalAudioFormat & GetOpalG728();
extern const OpalAudioFormat & GetOpalG729();
extern const OpalAudioFormat & GetOpalG729A();
extern const OpalAudioFormat & GetOpalG729B();
extern const OpalAudioFormat & GetOpalG729AB();
extern const OpalAudioFormat & GetOpalG7231_6k3();
extern const OpalAudioFormat & GetOpalG7231_5k3();
extern const OpalAudioFormat & GetOpalG7231A_6k3();
extern const OpalAudioFormat & GetOpalG7231A_5k3();
extern const OpalAudioFormat & GetOpalGSM0610();
extern const OpalAudioFormat & GetOpalGSMAMR();
extern const OpalAudioFormat & GetOpaliLBC();
extern const OpalMediaFormat & GetOpalRFC2833();
#if OPAL_T38_CAPABILITY
extern const OpalMediaFormat & GetOpalCiscoNSE();
extern const OpalMediaFormat & GetOpalT38();
#endif
#define OpalPCM16 GetOpalPCM16()
#define OpalPCM16S GetOpalPCM16S()
#define OpalPCM16_16KHZ GetOpalPCM16_16KHZ()
#define OpalPCM16S_16KHZ GetOpalPCM16S_16KHZ()
#define OpalPCM16_32KHZ GetOpalPCM16_32KHZ()
#define OpalPCM16S_32KHZ GetOpalPCM16S_32KHZ()
#define OpalPCM16_48KHZ GetOpalPCM16_48KHZ()
#define OpalPCM16S_48KHZ GetOpalPCM16S_48KHZ()
#define OpalL16_MONO_8KHZ GetOpalL16_MONO_8KHZ()
#define OpalL16_STEREO_8KHZ GetOpalL16_STEREO_8KHZ()
#define OpalL16_MONO_16KHZ GetOpalL16_MONO_16KHZ()
#define OpalL16_STEREO_16KHZ GetOpalL16_STEREO_16KHZ()
#define OpalL16_MONO_32KHZ GetOpalL16_MONO_32KHZ()
#define OpalL16_STEREO_32KHZ GetOpalL16_STEREO_32KHZ()
#define OpalL16_MONO_48KHZ GetOpalL16_MONO_48KHZ()
#define OpalL16_STEREO_48KHZ GetOpalL16_STEREO_48KHZ()
#define OpalG711_ULAW_64K GetOpalG711_ULAW_64K()
#define OpalG711_ALAW_64K GetOpalG711_ALAW_64K()
#define OpalG722 GetOpalG722()
#define OpalG7221 GetOpalG7221()
#define OpalG7222 GetOpalG7222()
#define OpalG726_40K GetOpalG726_40K()
#define OpalG726_32K GetOpalG726_32K()
#define OpalG726_24K GetOpalG726_24K()
#define OpalG726_16K GetOpalG726_16K()
#define OpalG728 GetOpalG728()
#define OpalG729 GetOpalG729()
#define OpalG729A GetOpalG729A()
#define OpalG729B GetOpalG729B()
#define OpalG729AB GetOpalG729AB()
#define OpalG7231_6k3 GetOpalG7231_6k3()
#define OpalG7231_5k3 GetOpalG7231_5k3()
#define OpalG7231A_6k3 GetOpalG7231A_6k3()
#define OpalG7231A_5k3 GetOpalG7231A_5k3()
#define OpalGSM0610 GetOpalGSM0610()
#define OpalGSMAMR GetOpalGSMAMR()
#define OpaliLBC GetOpaliLBC()
#define OpalRFC2833 GetOpalRFC2833()
#define OpalCiscoNSE GetOpalCiscoNSE()
#define OpalT38 GetOpalT38()
#define OpalL16Mono8kHz OpalL16_MONO_8KHZ
#define OpalL16Mono16kHz OpalL16_MONO_16KHZ
#define OpalG711uLaw OpalG711_ULAW_64K
#define OpalG711ALaw OpalG711_ALAW_64K
#define OPAL_T140 "T.140"
#define OpalT140 GetOpalT140()
extern const OpalMediaFormat & GetOpalT140();
#if OPAL_HAS_MSRP
#define OPAL_MSRP "MSRP"
#define OpalMSRP GetOpalMSRP()
extern const OpalMediaFormat & GetOpalMSRP();
#endif
#if OPAL_HAS_SIPIM
#define OPAL_SIPIM "SIP-IM"
#define OpalSIPIM GetOpalSIPIM()
extern const OpalMediaFormat & GetOpalSIPIM();
#endif
#ifdef _MSC_VER
#if _MSC_VER < 1300
#pragma warning(default:4663)
#endif
#endif
#endif // OPAL_OPAL_MEDIAFMT_H
// End of File ///////////////////////////////////////////////////////////////
OpalMediaOptionEnum::Clone
virtual PObject * Clone() const
OpalMediaFormat::GetMediaPacketizations
PStringSet GetMediaPacketizations() const
GetOpalG729AB
const OpalAudioFormat & GetOpalG729AB()
OpalMediaFormat::DestroyContents
virtual void DestroyContents()
OpalMediaFormatInternal::ToNormalisedOptions
virtual bool ToNormalisedOptions()
OpalMediaFormatInternal::operator!=
friend bool operator!=(const char *other, const OpalMediaFormat &fmt)
OpalMediaFormatInternal::SetOptionBoolean
virtual bool SetOptionBoolean(const PString &name, bool value)
OpalMediaFormat::ToCustomisedOptions
bool ToCustomisedOptions()
OpalMediaOption::GetMerge
MergeType GetMerge() const
Definition: mediafmt.h:303
OpalMediaFormat::operator==
friend bool operator==(const char *other, const OpalMediaFormat &fmt)
Definition: mediafmt.h:1216
OpalMediaOptionString::m_value
PString m_value
Definition: mediafmt.h:592
OpalMediaFormatInternal::GetOptionString
virtual PString GetOptionString(const PString &name, const PString &dflt) const
OpalMediaOptionValue::GetValue
T GetValue() const
Definition: mediafmt.h:430
GetOpalG711_ALAW_64K
const OpalAudioFormat & GetOpalG711_ALAW_64K()
OpalVideoFormat::ContentRoleOption
static const PString & ContentRoleOption()
RTP_DataFrame::IllegalPayloadType
Definition: rtp.h:122
OpalMediaFormat::FrameTimeOption
static const PString & FrameTimeOption()
OpalMediaFormatInternal::IsValidForProtocol
virtual bool IsValidForProtocol(const PString &protocol) const
GetOpalG722
const OpalAudioFormat & GetOpalG722()
OpalMediaFormatList::HasType
bool HasType(const OpalMediaType &type, bool mustBeTransportable=true) const
OpalMediaOption::m_readOnly
bool m_readOnly
Definition: mediafmt.h:353
OpalMediaFormatInternal::ValidateMerge
virtual bool ValidateMerge(const OpalMediaFormatInternal &mediaFormat) const
GetOpalL16_MONO_8KHZ
const OpalAudioFormat & GetOpalL16_MONO_8KHZ()
OpalMediaOption::GetFMTPName
const PString & GetFMTPName() const
Definition: mediafmt.h:307
OpalMediaFormat::NeedsJitterOption
static const PString & NeedsJitterOption()
OpalMediaOptionNumericalValue::SetMinimum
void SetMinimum(T m)
Definition: mediafmt.h:492
OpalMediaOption::IsReadOnly
bool IsReadOnly() const
Definition: mediafmt.h:300
OpalMediaFormat::ValidateMerge
bool ValidateMerge(const OpalMediaFormat &mediaFormat) const
OpalVideoFormat::FrameHeightOption
static const PString & FrameHeightOption()
OpalAudioFormatInternal
Definition: mediafmt.h:1242
OpalMediaFormatInternal::GetOptionBoolean
virtual bool GetOptionBoolean(const PString &name, bool dflt) const
OpalVideoFormat::TemporalSpatialTradeOffOption
static const PString & TemporalSpatialTradeOffOption()
OpalVideoFormatInternal::OpalVideoFormatInternal
OpalVideoFormatInternal(const char *fullName, RTP_DataFrame::PayloadTypes rtpPayloadType, const char *encodingName, unsigned maxFrameWidth, unsigned maxFrameHeight, unsigned maxFrameRate, unsigned maxBitRate, time_t timeStamp)
OpalMediaFormat::GetOptionCount
PINDEX GetOptionCount() const
Definition: mediafmt.h:983
OpalMediaOptionOctets::SetValue
void SetValue(const PBYTEArray &value)
OpalMediaOption::H245GenericInfo::defaultValue
PString defaultValue
Definition: mediafmt.h:344
OpalMediaOption::H245GenericInfo::mode
enum OpalMediaOption::H245GenericInfo::Modes mode
OpalMediaFormat::SetRegisteredMediaFormat
static bool SetRegisteredMediaFormat(const OpalMediaFormat &mediaFormat)
GetOpalG7221
const OpalAudioFormat & GetOpalG7221()
OpalMediaFormatInternal::GetOptions
virtual PStringToString GetOptions() const
OpalMediaOption::H245GenericInfo::UnsignedInt
Definition: mediafmt.h:335
GetOpalG7231A_6k3
const OpalAudioFormat & GetOpalG7231A_6k3()
OpalMediaOption::MinMerge
Definition: mediafmt.h:254
OpalMediaOption::AlwaysMerge
Definition: mediafmt.h:258
OpalMediaFormat::SetMediaPacketizations
void SetMediaPacketizations(const PStringSet &packetizations)
OpalMediaOptionOctets::SetBase64
void SetBase64(bool b)
Definition: mediafmt.h:630
GetOpalG7231A_5k3
const OpalAudioFormat & GetOpalG7231A_5k3()
OpalMediaFormatInternal::GetOptionOctets
virtual bool GetOptionOctets(const PString &name, PBYTEArray &octets) const
OpalMediaOption
Definition: mediafmt.h:247
OpalMediaOptionOctets::OpalMediaOptionOctets
OpalMediaOptionOctets(const char *name, bool readOnly, bool base64=false)
OpalMediaFormatInternal::SetOptionInteger
virtual bool SetOptionInteger(const PString &name, int value)
OpalMediaOptionOctets
Definition: mediafmt.h:596
OpalMediaOptionString::Assign
virtual void Assign(const OpalMediaOption &option)
buildopts.h
OpalMediaFormatInternal::forceIsTransportable
bool forceIsTransportable
Definition: mediafmt.h:703
OpalMediaOptionReal
OpalMediaOptionNumericalValue< OpalMediaOptionRealValue > OpalMediaOptionReal
Definition: mediafmt.h:524
OpalVideoFormat::MinRxFrameHeightOption
static const PString & MinRxFrameHeightOption()
OpalMediaOptionOctets::m_value
PBYTEArray m_value
Definition: mediafmt.h:636
OpalMediaOptionEnum::Assign
virtual void Assign(const OpalMediaOption &option)
OpalMediaOptionValue
Definition: mediafmt.h:368
OpalMediaFormatInternal::options
PSortedList< OpalMediaOption > options
Definition: mediafmt.h:701
OpalMediaFormat::GetClockRate
unsigned GetClockRate() const
Definition: mediafmt.h:961
OpalMediaOption::m_FMTPName
PCaselessString m_FMTPName
Definition: mediafmt.h:357
OpalMediaOption::SetReadOnly
void SetReadOnly(bool readOnly)
Definition: mediafmt.h:301
OpalMediaFormat::AdjustVideoArgs
void AdjustVideoArgs(PVideoDevice::OpenArgs &args) const
OpalMediaOption::CompareValue
virtual Comparison CompareValue(const OpalMediaOption &option) const =0
GetOpalGSM0610
const OpalAudioFormat & GetOpalGSM0610()
OpalMediaOptionRealValue::OpalMediaOptionRealValue
OpalMediaOptionRealValue(double value=0)
Definition: mediafmt.h:517
OpalMediaOptionOctets::ReadFrom
virtual void ReadFrom(istream &strm)
OpalMediaOptionRealValue::operator>>
friend istream & operator>>(istream &strm, OpalMediaOptionRealValue &value)
Definition: mediafmt.h:521
OpalMediaFormat::GetPayloadType
RTP_DataFrame::PayloadTypes GetPayloadType() const
Definition: mediafmt.h:914
OpalMediaOption::SetFMTPDefault
void SetFMTPDefault(const char *value)
Definition: mediafmt.h:311
OpalVideoFormat::ePresentation
Definition: mediafmt.h:1347
OpalMediaFormatInternal::operator==
friend bool operator==(const char *other, const OpalMediaFormat &fmt)
OpalMediaFormat::PrintOptions
ostream & PrintOptions(ostream &strm) const
Definition: mediafmt.h:1190
OpalMediaFormat::Merge
bool Merge(const OpalMediaFormat &mediaFormat)
GetOpalG726_24K
const OpalAudioFormat & GetOpalG726_24K()
OpalMediaOptionInteger
OpalMediaOptionNumericalValue< int > OpalMediaOptionInteger
Definition: mediafmt.h:509
OpalMediaFormat::operator==
bool operator==(const OpalMediaFormat &other) const
Definition: mediafmt.h:1214
OpalMediaFormat::AssignContents
virtual void AssignContents(const PContainer &c)
OpalMediaFormat::Construct
void Construct(OpalMediaFormatInternal *info)
OpalMediaFormat::OpalMediaFormat
OpalMediaFormat(const OpalMediaFormat &c)
OpalVideoFormat::eSpeaker
Definition: mediafmt.h:1349
OpalMediaOptionValue::CompareValue
virtual Comparison CompareValue(const OpalMediaOption &option) const
Definition: mediafmt.h:411
OpalVideoFormat::ContentRoleMaskOption
static const PString & ContentRoleMaskOption()
OpalMediaFormatInternal
Definition: mediafmt.h:643
OpalMediaFormat::GetOption
const OpalMediaOption & GetOption(PINDEX index) const
Definition: mediafmt.h:988
GetOpalPCM16_16KHZ
const OpalAudioFormat & GetOpalPCM16_16KHZ()
OpalMediaType
Definition: mediatype.h:57
OpalMediaOption::Assign
virtual void Assign(const OpalMediaOption &option)=0
OpalMediaFormat::ToNormalisedOptions
bool ToNormalisedOptions()
OpalMediaOptionOctets::PrintOn
virtual void PrintOn(ostream &strm) const
OpalMediaOptionEnum::m_enumerations
PStringArray m_enumerations
Definition: mediafmt.h:561
OpalMediaFormatInternal::GetOptionValue
virtual bool GetOptionValue(const PString &name, PString &value) const
GetOpalG7222
const OpalAudioFormat & GetOpalG7222()
OpalMediaOption::Compare
virtual Comparison Compare(const PObject &obj) const
OpalMediaFormat::VideoClockRate
90kHz sample rate
Definition: mediafmt.h:956
OpalMediaOptionValue::m_value
T m_value
Definition: mediafmt.h:441
GetOpalL16_STEREO_48KHZ
const OpalAudioFormat & GetOpalL16_STEREO_48KHZ()
OpalVideoFormat::ContentRoleBit
static __inline unsigned ContentRoleBit(ContentRole contentRole)
Definition: mediafmt.h:1354
OpalMediaOptionEnum::GetValue
PINDEX GetValue() const
Definition: mediafmt.h:551
OpalMediaOption::ValidateMerge
virtual bool ValidateMerge(const OpalMediaOption &option) const
OpalMediaOption::SetMerge
void SetMerge(MergeType merge)
Definition: mediafmt.h:304
OpalVideoFormat::ContentRole
ContentRole
Definition: mediafmt.h:1345
OpalMediaFormat::Update
bool Update(const OpalMediaFormat &mediaFormat)
OpalMediaOptionOctets::Assign
virtual void Assign(const OpalMediaOption &option)
OpalMediaOptionRealValue::operator<<
friend ostream & operator<<(ostream &strm, const OpalMediaOptionRealValue &value)
Definition: mediafmt.h:520
OpalMediaOptionOctets::CompareValue
virtual Comparison CompareValue(const OpalMediaOption &option) const
OpalMediaOptionRealValue::operator&=
void operator&=(double other)
Definition: mediafmt.h:519
OpalVideoFormat::eNoRole
Definition: mediafmt.h:1346
OpalMediaFormatInternal::SetOptionValue
virtual bool SetOptionValue(const PString &name, const PString &value)
OpalVideoFormat::eNumRoles
Definition: mediafmt.h:1351
OpalMediaOption::NotEqualMerge
Definition: mediafmt.h:257
OpalMediaOptionNumericalValue::ReadFrom
virtual void ReadFrom(istream &strm)
Definition: mediafmt.h:470
GetOpalGSMAMR
const OpalAudioFormat & GetOpalGSMAMR()
OpalVideoFormat::MaxRxFrameWidthOption
static const PString & MaxRxFrameWidthOption()
OpalMediaOption::H245GenericInfo::BooleanArray
Definition: mediafmt.h:337
OpalVideoFormat::OpalVideoFormat
OpalVideoFormat(OpalMediaFormatInternal *info=NULL)
Definition: mediafmt.h:1310
OpalMediaFormat::RemoveRegisteredMediaFormat
static bool RemoveRegisteredMediaFormat(const OpalMediaFormat &mediaFormat)
OpalMediaFormat::GetTimeUnits
unsigned GetTimeUnits() const
Definition: mediafmt.h:952
OpalMediaOption::H245GenericInfo::integerType
enum OpalMediaOption::H245GenericInfo::IntegerTypes integerType
OpalVideoFormat::ContentRoleMask
Definition: mediafmt.h:1353
GetOpalPCM16S
const OpalAudioFormat & GetOpalPCM16S()
OpalMediaOptionEnum::GetEnumerations
const PStringArray & GetEnumerations() const
Definition: mediafmt.h:554
OpalMediaFormat::SetOptionOctets
bool SetOptionOctets(const PString &name, const PBYTEArray &octets)
Definition: mediafmt.h:1123
OpalMediaFormat::GetOptionBoolean
bool GetOptionBoolean(const PString &name, bool dflt=false) const
Definition: mediafmt.h:1015
RTP_DataFrame::PayloadTypes
PayloadTypes
Definition: rtp.h:86
OpalMediaFormat::GetCodecVersionTime
time_t GetCodecVersionTime() const
Definition: mediafmt.h:1188
OpalMediaOption::H245GenericInfo::ordinal
unsigned ordinal
Definition: mediafmt.h:326
OpalMediaFormat::GetFrameSize
PINDEX GetFrameSize() const
Definition: mediafmt.h:941
GetOpalG729B
const OpalAudioFormat & GetOpalG729B()
GetOpaliLBC
const OpalAudioFormat & GetOpaliLBC()
OpalMediaFormat::SetOptionOctets
bool SetOptionOctets(const PString &name, const BYTE *data, PINDEX length)
Definition: mediafmt.h:1127
OpalMediaFormatInternal::PrintOn
virtual void PrintOn(ostream &strm) const
OpalMediaOption::SetH245Generic
void SetH245Generic(const H245GenericInfo &genericInfo)
Definition: mediafmt.h:348
OpalAudioFormat::RxFramesPerPacketOption
static const PString & RxFramesPerPacketOption()
OpalMediaFormat::operator=
OpalMediaFormat & operator=(const OpalMediaFormat &c)
Definition: mediafmt.h:730
OpalMediaOption::NoMerge
Definition: mediafmt.h:253
OpalMediaFormatList
Definition: mediafmt.h:72
OpalMediaFormat::GetOptionReal
double GetOptionReal(const PString &name, double dflt=0) const
Definition: mediafmt.h:1054
OpalVideoFormatInternal::Clone
virtual PObject * Clone() const
GetOpalPCM16S_32KHZ
const OpalAudioFormat & GetOpalPCM16S_32KHZ()
OpalMediaOptionRealValue
Definition: mediafmt.h:513
OpalMediaFormat::GetOptionString
PString GetOptionString(const PString &name, const PString &dflt=PString::Empty()) const
Definition: mediafmt.h:1093
OpalMediaFormatList::Reorder
void Reorder(const PStringArray &order)
OpalMediaFormat::NeedsJitterBuffer
bool NeedsJitterBuffer() const
Definition: mediafmt.h:928
OpalMediaFormatList::operator+=
OpalMediaFormatList & operator+=(const char *wildcard)
Definition: mediafmt.h:98
OpalMediaOptionBoolean
OpalMediaOptionNumericalValue< bool > OpalMediaOptionBoolean
Definition: mediafmt.h:508
OpalMediaFormat::PrintOn
virtual void PrintOn(ostream &strm) const
OpalMediaFormat::operator==
bool operator==(const PString &other) const
Definition: mediafmt.h:1212
OpalMediaOption::EqualMerge
Definition: mediafmt.h:256
OpalMediaFormat::operator!=
friend bool operator!=(const PString &other, const OpalMediaFormat &fmt)
Definition: mediafmt.h:1219
OpalMediaFormatInternal::SetOptionEnum
virtual bool SetOptionEnum(const PString &name, PINDEX value)
OpalMediaFormat::MaxTxPacketSizeOption
static const PString & MaxTxPacketSizeOption()
GetOpalL16_STEREO_8KHZ
const OpalAudioFormat & GetOpalL16_STEREO_8KHZ()
OpalMediaFormat::SetOptionReal
bool SetOptionReal(const PString &name, double value)
Definition: mediafmt.h:1065
OpalMediaOptionEnum::ReadFrom
virtual void ReadFrom(istream &strm)
OpalAudioFormat
Definition: mediafmt.h:1261
OpalMediaOptionString
Definition: mediafmt.h:566
OpalMediaOption::H245GenericInfo::excludeOLC
bool excludeOLC
Definition: mediafmt.h:341
OpalMediaOption::FromString
bool FromString(const PString &value)
OpalMediaFormat::TargetBitRateOption
static const PString & TargetBitRateOption()
OpalAudioFormat::ChannelsOption
static const PString & ChannelsOption()
OpalMediaOptionNumericalValue::OpalMediaOptionNumericalValue
OpalMediaOptionNumericalValue(const char *name, bool readOnly, OpalMediaOption::MergeType merge=OpalMediaOption::MinMerge, T value=0, T minimum=std::numeric_limits< T >::min(), T maximum=std::numeric_limits< T >::max())
Definition: mediafmt.h:451
OpalMediaFormat::GetEncodingName
const char * GetEncodingName() const
Definition: mediafmt.h:919
GetOpalRFC2833
const OpalMediaFormat & GetOpalRFC2833()
OpalAudioFormatInternal::Clone
virtual PObject * Clone() const
OpalMediaFormat::GetOptionInteger
int GetOptionInteger(const PString &name, int dflt=0) const
Definition: mediafmt.h:1034
OpalMediaOption::m_H245Generic
H245GenericInfo m_H245Generic
Definition: mediafmt.h:362
GetOpalG726_40K
const OpalAudioFormat & GetOpalG726_40K()
OpalMediaOptionUnsigned
OpalMediaOptionNumericalValue< unsigned > OpalMediaOptionUnsigned
Definition: mediafmt.h:510
OpalMediaFormat
Definition: mediafmt.h:724
OpalMediaFormat::operator!=
bool operator!=(const OpalMediaFormat &other) const
Definition: mediafmt.h:1215
OpalMediaOption::H245GenericInfo::Collapsing
Definition: mediafmt.h:330
OpalMediaOptionValue::PrintOn
virtual void PrintOn(ostream &strm) const
Definition: mediafmt.h:388
OpalAudioFormatInternal::OpalAudioFormatInternal
OpalAudioFormatInternal(const char *fullName, RTP_DataFrame::PayloadTypes rtpPayloadType, const char *encodingName, PINDEX frameSize, unsigned frameTime, unsigned rxFrames, unsigned txFrames, unsigned maxFrames, unsigned clockRate, time_t timeStamp)
OpalVideoFormat::RateControllerOption
static const PString & RateControllerOption()
OpalMediaOption::OrMerge
Definition: mediafmt.h:264
mediatype.h
OpalMediaFormat::m_mutex
PMutex m_mutex
Definition: mediafmt.h:1235
OpalMediaOption::CustomMerge
Definition: mediafmt.h:259
OpalMediaFormatInternal::codecVersionTime
time_t codecVersionTime
Definition: mediafmt.h:702
GetOpalG711_ULAW_64K
const OpalAudioFormat & GetOpalG711_ULAW_64K()
OpalMediaFormat::GetOptionOctets
bool GetOptionOctets(const PString &name, PBYTEArray &octets) const
Definition: mediafmt.h:1112
OpalMediaOptionString::Clone
virtual PObject * Clone() const
OpalMediaFormat::SetOptionEnum
bool SetOptionEnum(const PString &name, PINDEX value)
Definition: mediafmt.h:1085
GetOpalPCM16_48KHZ
const OpalAudioFormat & GetOpalPCM16_48KHZ()
OpalMediaOptionNumericalValue::SetMaximum
void SetMaximum(T m)
Definition: mediafmt.h:497
OpalMediaOptionNumericalValue::m_maximum
T m_maximum
Definition: mediafmt.h:504
OpalMediaFormatInternal::m_channels
int m_channels
Definition: mediafmt.h:704
OpalMediaFormat::SetOptionValue
bool SetOptionValue(const PString &name, const PString &value)
Definition: mediafmt.h:1007
GetOpalG726_16K
const OpalAudioFormat & GetOpalG726_16K()
GetOpalL16_MONO_32KHZ
const OpalAudioFormat & GetOpalL16_MONO_32KHZ()
OpalMediaOption::IntersectionMerge
Definition: mediafmt.h:260
OpalMediaFormat::GetOptions
PStringToString GetOptions() const
Definition: mediafmt.h:979
GetOpalG726_32K
const OpalAudioFormat & GetOpalG726_32K()
GetOpalPCM16
const OpalAudioFormat & GetOpalPCM16()
OpalMediaFormatList::OpalMediaFormatList
OpalMediaFormatList(const OpalMediaFormatList &l)
Definition: mediafmt.h:90
OpalMediaFormatList::HasFormat
PBoolean HasFormat(RTP_DataFrame::PayloadTypes rtpPayloadType) const
Definition: mediafmt.h:173
OpalVideoFormat::MinRxFrameWidthOption
static const PString & MinRxFrameWidthOption()
OpalMediaFormat::MaxBitRateOption
static const PString & MaxBitRateOption()
OpalAudioFormat::OpalAudioFormat
OpalAudioFormat(OpalMediaFormatInternal *info=NULL)
Definition: mediafmt.h:1265
OpalAudioFormat::TxFramesPerPacketOption
static const PString & TxFramesPerPacketOption()
GetOpalPCM16_32KHZ
const OpalAudioFormat & GetOpalPCM16_32KHZ()
OpalVideoFormat::TxKeyFramePeriodOption
static const PString & TxKeyFramePeriodOption()
OpalMediaFormatInternal::GetOptionInteger
virtual int GetOptionInteger(const PString &name, int dflt) const
OpalMediaFormatInternal::media_format_mutex
PMutex media_format_mutex
Definition: mediafmt.h:700
GetOpalT140
const OpalMediaFormat & GetOpalT140()
OpalMediaOption::H245GenericInfo::Unsigned32
Definition: mediafmt.h:336
OpalMediaFormat::IsValid
PBoolean IsValid() const
Definition: mediafmt.h:902
OpalMediaOptionString::PrintOn
virtual void PrintOn(ostream &strm) const
OpalMediaOption::AndMerge
Definition: mediafmt.h:263
GetOpalG7231_6k3
const OpalAudioFormat & GetOpalG7231_6k3()
OpalMediaFormat::GetName
PString GetName() const
Definition: mediafmt.h:896
OpalMediaFormat::IsEmpty
virtual PBoolean IsEmpty() const
Definition: mediafmt.h:1207
OpalVideoFormat::RateControlPeriodOption
static const PString & RateControlPeriodOption()
OpalMediaFormat::operator!=
friend bool operator!=(const char *other, const OpalMediaFormat &fmt)
Definition: mediafmt.h:1217
OpalMediaFormat::SetOptionBoolean
bool SetOptionBoolean(const PString &name, bool value)
Definition: mediafmt.h:1026
OpalVideoFormat::FrameWidthOption
static const PString & FrameWidthOption()
OpalMediaFormat::FindOption
OpalMediaOption * FindOption(const PString &name) const
Definition: mediafmt.h:1170
OpalVideoFormat::eMainRole
Definition: mediafmt.h:1348
OpalMediaFormat::GetMediaType
OpalMediaType GetMediaType() const
Definition: mediafmt.h:923
OpalMediaOption::GetName
const PString & GetName() const
Definition: mediafmt.h:298
GetOpalL16_STEREO_32KHZ
const OpalAudioFormat & GetOpalL16_STEREO_32KHZ()
OpalMediaFormat::operator!=
bool operator!=(const PString &other) const
Definition: mediafmt.h:1213
OpalMediaOptionOctets::m_base64
bool m_base64
Definition: mediafmt.h:637
OpalMediaFormat::m_info
OpalMediaFormatInternal * m_info
Definition: mediafmt.h:1234
OpalMediaOption::AsString
PString AsString() const
GetOpalG729
const OpalAudioFormat & GetOpalG729()
OpalMediaOption::H245GenericInfo::position
int position
Definition: mediafmt.h:343
OpalMediaOptionNumericalValue::m_minimum
T m_minimum
Definition: mediafmt.h:503
OpalMediaOptionString::CompareValue
virtual Comparison CompareValue(const OpalMediaOption &option) const
OpalMediaOptionEnum::SetValue
void SetValue(PINDEX value)
GetOpalSIPIM
const OpalMediaFormat & GetOpalSIPIM()
OpalMediaOption::Merge
virtual bool Merge(const OpalMediaOption &option)
OpalMediaOption::GetH245Generic
const H245GenericInfo & GetH245Generic() const
Definition: mediafmt.h:347
OpalMediaOptionValue::ReadFrom
virtual void ReadFrom(istream &strm)
Definition: mediafmt.h:393
OpalMediaFormat::GetOptionValue
bool GetOptionValue(const PString &name, PString &value) const
Definition: mediafmt.h:996
OpalMediaOption::MaxMerge
Definition: mediafmt.h:255
OpalMediaFormatInternal::SetOptionOctets
virtual bool SetOptionOctets(const PString &name, const PBYTEArray &octets)
OpalMediaFormatList::FindFormat
const_iterator FindFormat(RTP_DataFrame::PayloadTypes rtpPayloadType, const unsigned clockRate, const char *rtpEncodingName=NULL, const char *protocol=NULL, const_iterator start=const_iterator()) const
OpalMediaFormatList::operator-=
OpalMediaFormatList & operator-=(const OpalMediaFormat &format)
OpalMediaFormat::SetPayloadType
void SetPayloadType(RTP_DataFrame::PayloadTypes type)
Definition: mediafmt.h:915
OpalMediaOptionString::GetValue
const PString & GetValue() const
Definition: mediafmt.h:588
OpalVideoFormat::MaxRxFrameHeightOption
static const PString & MaxRxFrameHeightOption()
OpalMediaOption::H245GenericInfo::IntegerTypes
IntegerTypes
Definition: mediafmt.h:334
OpalMediaOption::H245GenericInfo::excludeReqMode
bool excludeReqMode
Definition: mediafmt.h:342
OpalMediaFormat::SetOptionInteger
bool SetOptionInteger(const PString &name, int value)
Definition: mediafmt.h:1046
OpalMediaFormat::operator==
friend bool operator==(const PString &other, const OpalMediaFormat &fmt)
Definition: mediafmt.h:1218
OpalMediaFormat::operator==
bool operator==(const char *other) const
Definition: mediafmt.h:1210
OpalMediaFormat::HasOption
bool HasOption(const PString &name) const
Definition: mediafmt.h:1165
OpalMediaOption::H245GenericInfo
Definition: mediafmt.h:315
OpalMediaOption::H245GenericInfo::H245GenericInfo
H245GenericInfo()
Definition: mediafmt.h:316
OpalMediaOptionEnum::m_value
PINDEX m_value
Definition: mediafmt.h:562
OpalMediaOptionValue::Clone
virtual PObject * Clone() const
Definition: mediafmt.h:383
OpalMediaOptionString::ReadFrom
virtual void ReadFrom(istream &strm)
GetOpalPCM16S_16KHZ
const OpalAudioFormat & GetOpalPCM16S_16KHZ()
OpalMediaOptionValue::OpalMediaOptionValue
OpalMediaOptionValue(const char *name, bool readOnly, OpalMediaOption::MergeType merge=OpalMediaOption::MinMerge, T value=T())
Definition: mediafmt.h:372
GetOpalG728
const OpalAudioFormat & GetOpalG728()
OpalMediaOption::m_FMTPDefault
PString m_FMTPDefault
Definition: mediafmt.h:358
OpalMediaOptionOctets::Clone
virtual PObject * Clone() const
OpalMediaFormatInternal::FindOption
virtual OpalMediaOption * FindOption(const PString &name) const
OpalMediaFormatInternal::GetOptionEnum
virtual PINDEX GetOptionEnum(const PString &name, PINDEX dflt) const
OpalAudioFormatInternal::Merge
virtual bool Merge(const OpalMediaFormatInternal &mediaFormat)
OpalMediaFormat::AudioClockRate
8kHz sample rate
Definition: mediafmt.h:955
OpalMediaFormat::Clone
virtual PObject * Clone() const
OpalMediaFormat::GetFrameTime
unsigned GetFrameTime() const
Definition: mediafmt.h:947
OpalMediaOptionEnum
Definition: mediafmt.h:527
OpalMediaOptionString::OpalMediaOptionString
OpalMediaOptionString(const char *name, bool readOnly)
GetOpalPCM16S_48KHZ
const OpalAudioFormat & GetOpalPCM16S_48KHZ()
OpalAudioFormat::MaxFramesPerPacketOption
static const PString & MaxFramesPerPacketOption()
GetOpalG7231_5k3
const OpalAudioFormat & GetOpalG7231_5k3()
OpalVideoFormat::eSignLanguage
Definition: mediafmt.h:1350
OpalMediaFormatList::HasFormat
PBoolean HasFormat(const PString &wildcard) const
Definition: mediafmt.h:182
OpalMediaFormat::GetBandwidth
unsigned GetBandwidth() const
Definition: mediafmt.h:933
OpalMediaFormat::GetAllRegisteredMediaFormats
static OpalMediaFormatList GetAllRegisteredMediaFormats()
OpalMediaFormat::ClockRateOption
static const PString & ClockRateOption()
OpalMediaOption::GetFMTPDefault
const PString & GetFMTPDefault() const
Definition: mediafmt.h:310
OpalMediaFormatInternal::OpalMediaFormatInternal
OpalMediaFormatInternal(const char *fullName, const OpalMediaType &mediaType, RTP_DataFrame::PayloadTypes rtpPayloadType, const char *encodingName, PBoolean needsJitter, unsigned bandwidth, PINDEX frameSize, unsigned frameTime, unsigned clockRate, time_t timeStamp)
OpalMediaOptionValue::SetValue
void SetValue(T value)
Definition: mediafmt.h:435
OpalMediaFormatList::Remove
void Remove(const PStringArray &mask)
OpalMediaFormat::ReadFrom
virtual void ReadFrom(istream &strm)
PLIST
PLIST(OpalMediaFormatBaseList, OpalMediaFormat)
GetOpalL16_STEREO_16KHZ
const OpalAudioFormat & GetOpalL16_STEREO_16KHZ()
OpalMediaOptionString::Merge
virtual bool Merge(const OpalMediaOption &option)
GetOpalL16_MONO_48KHZ
const OpalAudioFormat & GetOpalL16_MONO_48KHZ()
OpalVideoFormatInternal
Definition: mediafmt.h:1288
OpalMediaOption::m_name
PCaselessString m_name
Definition: mediafmt.h:352
OpalMediaOptionEnum::SetEnumerations
void SetEnumerations(const PStringArray &e)
Definition: mediafmt.h:555
OpalMediaOptionNumericalValue::SetValue
void SetValue(T value)
Definition: mediafmt.h:482
OpalMediaOptionEnum::OpalMediaOptionEnum
OpalMediaOptionEnum(const char *name, bool readOnly)
OpalMediaOptionEnum::CompareValue
virtual Comparison CompareValue(const OpalMediaOption &option) const
OpalMediaFormatInternal::SetOptionString
virtual bool SetOptionString(const PString &name, const PString &value)
OpalMediaOption::MergeType
MergeType
Definition: mediafmt.h:252
OpalMediaFormat::MediaPacketizationOption
static const PString & MediaPacketizationOption()
GetOpalG729A
const OpalAudioFormat & GetOpalG729A()
rtp.h
OpalMediaFormatInternal::GetName
const PCaselessString & GetName() const
Definition: mediafmt.h:660
OpalMediaOptionValue::Assign
virtual void Assign(const OpalMediaOption &option)
Definition: mediafmt.h:423
OpalMediaOptionEnum::PrintOn
virtual void PrintOn(ostream &strm) const
OpalMediaOption::m_merge
MergeType m_merge
Definition: mediafmt.h:354
OpalMediaFormat::~OpalMediaFormat
virtual ~OpalMediaFormat()
OpalVideoFormat
Definition: mediafmt.h:1306
OpalMediaFormatInternal::Merge
virtual bool Merge(const OpalMediaFormatInternal &mediaFormat)
OpalMediaOptionOctets::GetValue
const PBYTEArray & GetValue() const
Definition: mediafmt.h:626
OpalMediaFormatInternal::IsValid
virtual bool IsValid() const
GetOpalL16_MONO_16KHZ
const OpalAudioFormat & GetOpalL16_MONO_16KHZ()
OpalMediaFormatList::OpalMediaFormatList
OpalMediaFormatList()
OpalMediaFormatInternal::GetOptionReal
virtual double GetOptionReal(const PString &name, double dflt) const
OpalMediaFormatInternal::IsTransportable
virtual bool IsTransportable() const
OpalMediaOption::SetFMTPName
void SetFMTPName(const char *name)
Definition: mediafmt.h:308
OpalMediaFormat::IsTransportable
PBoolean IsTransportable() const
Definition: mediafmt.h:907
OpalMediaFormat::ProtocolOption
static const PString & ProtocolOption()
OpalMediaFormat::MediaPacketizationsOption
static const PString & MediaPacketizationsOption()
OpalMediaFormat::SetOptionString
bool SetOptionString(const PString &name, const PString &value)
Definition: mediafmt.h:1104
OpalVideoFormatInternal::Merge
virtual bool Merge(const OpalMediaFormatInternal &mediaFormat)
OpalMediaFormatInternal::mediaType
OpalMediaType mediaType
Definition: mediafmt.h:699
OpalMediaFormat::StandardClockRate
StandardClockRate
Definition: mediafmt.h:954
OpalMediaFormatInternal::formatName
PCaselessString formatName
Definition: mediafmt.h:696
GetOpalMSRP
const OpalMediaFormat & GetOpalMSRP()
OpalMediaOptionNumericalValue
Definition: mediafmt.h:446
OpalMediaOptionValue::Merge
virtual bool Merge(const OpalMediaOption &option)
Definition: mediafmt.h:398
OpalMediaOption::H245GenericInfo::NonCollapsing
Definition: mediafmt.h:331
OpalMediaFormat::MaxFrameSizeOption
static const PString & MaxFrameSizeOption()
OpalMediaFormatInternal::rtpEncodingName
PString rtpEncodingName
Definition: mediafmt.h:698
OpalMediaFormat::Compare
virtual Comparison Compare(const PObject &obj) const
OpalMediaOption::H245GenericInfo::None
Definition: mediafmt.h:329
OpalMediaFormat::FindOptionAs
T * FindOptionAs(const PString &name) const
Definition: mediafmt.h:1177
OpalMediaFormat::MakeUnique
virtual PBoolean MakeUnique()
OpalMediaFormatInternal::AddOption
virtual bool AddOption(OpalMediaOption *option, PBoolean overwrite=false)
OpalMediaFormatInternal::rtpPayloadType
RTP_DataFrame::PayloadTypes rtpPayloadType
Definition: mediafmt.h:697
OpalMediaFormatInternal::SetOptionReal
virtual bool SetOptionReal(const PString &name, double value)
OpalMediaFormat::IsValidForProtocol
bool IsValidForProtocol(const PString &protocol) const
Definition: mediafmt.h:1186
OpalMediaFormat::GetOptionEnum
PINDEX GetOptionEnum(const PString &name, PINDEX dflt=0) const
Definition: mediafmt.h:1074
OpalMediaOption::OpalMediaOption
OpalMediaOption(const PString &name)
OpalMediaOption::H245GenericInfo::Modes
Modes
Definition: mediafmt.h:328
OpalMediaFormatInternal::ToCustomisedOptions
virtual bool ToCustomisedOptions()
OpalMediaOption::H245GenericInfo::excludeTCS
bool excludeTCS
Definition: mediafmt.h:340
OpalMediaFormat::operator!=
bool operator!=(const char *other) const
Definition: mediafmt.h:1211
OpalMediaFormat::AddOption
bool AddOption(OpalMediaOption *option, PBoolean overwrite=false)
Definition: mediafmt.h:1157
OpalMediaOptionNumericalValue::Clone
virtual PObject * Clone() const
Definition: mediafmt.h:465
OpalMediaOptionString::SetValue
void SetValue(const PString &value)
OpalMediaFormatInternal::Clone
virtual PObject * Clone() const