34 #ifndef OPAL_H323_H323CAPS_H
35 #define OPAL_H323_H323CAPS_H
55 class H245_Capability;
57 class H245_ModeElement;
58 class H245_AudioCapability;
60 class H245_VideoCapability;
62 class H245_DataApplicationCapability;
64 class H245_DataProtocolCapability;
65 class H245_H2250LogicalChannelParameters;
66 class H245_TerminalCapabilitySet;
67 class H245_NonStandardParameter;
70 class H245_CapabilityIdentifier;
71 class H245_GenericCapability;
72 class H245_GenericParameter;
106 Comparison
Compare(
const PObject & obj)
const;
110 void PrintOn(ostream & strm)
const;
206 const H245_H2250LogicalChannelParameters * param
227 H245_Capability & pdu
249 H245_ModeElement & pdu
265 const H245_Capability & pdu
276 const H245_DataType & pdu,
283 const PASN_Choice & subTypePDU,
284 const PString & mediaPacketization
359 P_REMOVE_VIRTUAL(PBoolean,
IsMatch(
const PASN_Choice &)
const,
false);
383 const BYTE * dataBlock,
390 const BYTE * dataBlock,
400 const BYTE * dataBlock,
412 const BYTE * dataBlock,
435 const PBYTEArray &
data
438 PBoolean
IsMatch(
const H245_NonStandardParameter & param)
const;
441 const H245_NonStandardParameter & param
447 unsigned nonStandardTag
450 const PASN_Choice & pdu,
451 unsigned nonStandardTag
458 const PBYTEArray &
data
492 H245_GenericCapability & pdu,
498 const H245_GenericCapability & pdu,
503 const H245_GenericCapability & param
533 const H245_H2250LogicalChannelParameters * param
624 H245_Capability & pdu
648 H245_ModeElement & pdu
660 H245_AudioCapability & pdu,
664 H245_AudioCapability & pdu,
693 const H245_Capability & pdu
706 const H245_DataType & pdu,
719 const H245_AudioCapability & pdu,
720 unsigned & packetSize
723 const H245_AudioCapability & pdu,
724 unsigned & packetSize,
748 const BYTE * dataBlock,
754 const BYTE * dataBlock = NULL,
764 const BYTE * dataBlock = NULL,
776 const BYTE * dataBlock = NULL,
788 Comparison
Compare(
const PObject & obj)
const;
812 H245_AudioCapability & pdu,
837 const H245_AudioCapability & pdu,
838 unsigned & packetSize
844 const PASN_Choice & subTypePDU,
845 const PString & mediaPacketization
868 const PString & capabilityId,
878 Comparison
Compare(
const PObject & obj)
const;
902 H245_AudioCapability & pdu,
928 const H245_AudioCapability & pdu,
929 unsigned & packetSize,
936 const PASN_Choice & subTypePDU,
937 const PString & mediaPacketization
988 H245_Capability & pdu
1012 H245_ModeElement & pdu
1023 H245_VideoCapability & pdu
1026 H245_VideoCapability & pdu,
1039 H245_VideoMode & pdu
1052 const H245_Capability & pdu
1063 const H245_DataType & pdu,
1075 const H245_VideoCapability & pdu
1078 const H245_VideoCapability & pdu,
1102 const BYTE * dataBlock,
1108 const BYTE * dataBlock = NULL,
1109 PINDEX dataSize = 0,
1117 const PString &
oid,
1118 const BYTE * dataBlock = NULL,
1119 PINDEX dataSize = 0,
1130 const BYTE * dataBlock = NULL,
1131 PINDEX dataSize = 0,
1142 Comparison
Compare(
const PObject & obj)
const;
1167 H245_VideoCapability & pdu
1179 H245_VideoMode & pdu
1191 const H245_VideoCapability & pdu
1197 const PASN_Choice & subTypePDU,
1198 const PString & mediaPacketization
1221 const PString & capabilityId,
1231 Comparison
Compare(
const PObject & obj)
const;
1255 H245_VideoCapability & pdu,
1268 H245_VideoMode & pdu
1280 const H245_VideoCapability & pdu,
1287 const PASN_Choice & subTypePDU,
1288 const PString & mediaPacketization
1308 const PString & identifier
1333 H245_VideoCapability & pdu,
1346 H245_VideoMode & pdu
1358 const H245_VideoCapability & pdu,
1365 const PASN_Choice & subTypePDU,
1366 const PString & mediaPacketization
1390 const PString & identifier
1420 H245_Capability & pdu
1431 H245_ModeElement & pdu
1444 const H245_Capability & pdu
1450 const PASN_Choice & subTypePDU,
1451 const PString & mediaPacketization
1466 const H245_H2250LogicalChannelParameters * param
1494 Comparison
Compare(
const PObject & obj)
const;
1498 virtual PObject *
Clone()
const;
1502 void PrintOn(ostream & strm)
const;
1523 H245_VideoCapability & pdu,
1536 const H245_VideoCapability & pdu,
1561 virtual PObject *
Clone()
const;
1575 #endif // OPAL_VIDEO
1629 H245_Capability & pdu
1653 H245_ModeElement & pdu
1664 H245_DataApplicationCapability & pdu
1667 H245_DataApplicationCapability & pdu,
1693 const H245_Capability & pdu
1704 const H245_DataType & pdu,
1716 const H245_DataApplicationCapability & pdu
1719 const H245_DataApplicationCapability & pdu,
1748 const BYTE * dataBlock = NULL,
1749 PINDEX dataSize = 0,
1757 unsigned maxBitRate,
1758 const PString &
oid,
1759 const BYTE * dataBlock = NULL,
1760 PINDEX dataSize = 0,
1768 unsigned maxBitRate,
1772 const BYTE * dataBlock = NULL,
1773 PINDEX dataSize = 0,
1784 Comparison
Compare(
const PObject & obj)
const;
1809 H245_DataApplicationCapability & pdu
1833 const H245_DataApplicationCapability & pdu
1839 const PASN_Choice & subTypePDU,
1840 const PString & mediaPacketization
1885 virtual PObject *
Clone()
const;
1944 virtual PObject *
Clone()
const;
1977 const H245_H2250LogicalChannelParameters * param
1992 H245_Capability & pdu
2015 H245_ModeElement & pdu
2028 const H245_Capability & pdu
2039 const H245_DataType & pdu,
2058 PINDEX descriptorNum,
2059 PINDEX simultaneous,
2060 bool includeRFC2833 =
true
2073 PARRAY(H323CapabilitiesListArray, H323CapabilitiesList);
2079 PBoolean
SetSize(PINDEX newSize);
2091 PBoolean
SetSize(PINDEX newSize);
2111 const H245_TerminalCapabilitySet & pdu
2171 PINDEX descriptorNum,
2172 PINDEX simultaneous,
2179 PINDEX descriptorNum,
2180 PINDEX simultaneous,
2189 PINDEX descriptorNum,
2190 PINDEX simultaneous,
2191 const PString & name,
2192 PBoolean exact =
false
2198 PINDEX descriptorNum,
2199 PINDEX simultaneous,
2200 const PString & name,
2201 PBoolean exact =
false
2240 const PString & formatName
2247 const PStringArray & formatNames
2262 unsigned capabilityNumber
2281 const PString & formatName,
2284 PBoolean exact =
false
2313 const H245_Capability & cap
2322 const H245_DataType & dataType,
2323 const PString & mediaPacketization = PString::Empty()
2332 const H245_ModeElement & modeElement,
2333 const PString & mediaPacketization = PString::Empty()
2343 unsigned subType = UINT_MAX
2350 H245_TerminalCapabilitySet & pdu
2366 const PStringArray & preferenceOrder
2378 unsigned capabilityNumber
2391 unsigned capabilityNumber1,
2392 unsigned capabilityNumber2
2415 #define H323_REGISTER_CAPABILITY(cls, capName) static H323CapabilityFactory::Worker<cls> cls##Factory(capName, true); \
2420 #endif // OPAL_H323_H323CAPS_H
H323NonStandardAudioCapability(H323NonStandardCapabilityInfo::CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
CommandType
Definition: h323caps.h:213
Definition: h323caps.h:159
CapabilityDirection
Definition: h323caps.h:301
Definition: h323caps.h:374
PObject::Comparison CompareInfo(const H323NonStandardCapabilityInfo &obj) const
Definition: h323caps.h:520
virtual void SetTxFramesInPacket(unsigned frames)
PString m_identifier
Definition: h323caps.h:510
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
Mode
Specific G.711 encoding algorithm.
Definition: h323caps.h:1857
void Remove(H323Capability *capability)
virtual PBoolean OnSendingPDU(PBYTEArray &data) const
void PrintOn(ostream &strm) const
Definition: h323caps.h:302
BYTE t35Extension
Definition: h323caps.h:463
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
unsigned maxBitRate
Definition: h323caps.h:511
H323H239VideoCapability(const OpalMediaFormat &videoFormat)
Definition: h323caps.h:216
PObject::Comparison(* CompareFuncType)(struct PluginCodec_H323NonStandardCodecData *)
Definition: h323caps.h:377
H323ExtendedVideoCapability(const PString &identifier)
Comparison Compare(const PObject &obj) const
void SetPayloadType(RTP_DataFrame::PayloadTypes pt)
Set the payload type for the capaibility.
Definition: h323caps.h:340
virtual PString GetFormatName() const
Definition: h323caps.h:480
H323Capability & operator[](PINDEX i) const
Definition: h323caps.h:2148
virtual unsigned GetSubType() const
PStringSet m_mediaPacketizations
Definition: h323caps.h:2405
virtual ~H323GenericCapabilityInfo()
Definition: h323caps.h:488
Speed speed
Definition: h323caps.h:1905
Definition: h323caps.h:89
H323NonStandardDataCapability(unsigned maxBitRate, const BYTE *dataBlock=NULL, PINDEX dataSize=0, PINDEX comparisonOffset=0, PINDEX comparisonLength=P_MAX_INDEX)
Directions
Definition: channels.h:129
PINDEX comparisonOffset
Definition: h323caps.h:466
Definition: h323caps.h:158
PObject::Comparison CompareData(const PBYTEArray &data) const
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
Definition: h323caps.h:306
virtual unsigned GetSubType() const
BYTE t35CountryCode
Definition: h323caps.h:462
CapabilityDirection GetCapabilityDirection() const
Definition: h323caps.h:312
User Input capability.
Definition: h323caps.h:123
Definition: h323caps.h:1475
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
virtual void SetTxFramesInPacket(unsigned frames)
Comparison Compare(const PObject &obj) const
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
Count of main types.
Definition: h323caps.h:127
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
virtual PString GetFormatName() const
Definition: h323caps.h:214
Comparison Compare(const PObject &obj) const
Definition: h323caps.h:2086
virtual unsigned GetDefaultSessionID() const
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const
virtual MainTypes GetMainType() const
H323GenericCapabilityInfo(const PString &id, unsigned maxBitRate=0)
European standard.
Definition: h323caps.h:1859
virtual PString GetFormatName() const =0
virtual unsigned GetSubType() const
European standard.
Definition: h323caps.h:1866
H323H239ControlCapability()
virtual PBoolean OnReceivedPDU(const H245_DataApplicationCapability &pdu)
PayloadTypes
Definition: rtp.h:86
virtual PObject * Clone() const
virtual unsigned GetDefaultSessionID() const
Definition: h323caps.h:1851
PFactory< H323Capability, std::string > H323CapabilityFactory
Definition: h323caps.h:2413
American standard.
Definition: h323caps.h:1868
WORD manufacturerCode
Definition: h323caps.h:464
Generic Control.
Definition: h323caps.h:125
PINDEX AddMediaFormat(PINDEX descriptorNum, PINDEX simultaneous, const OpalMediaFormat &mediaFormat)
PString oid
Definition: h323caps.h:461
Definition: channels.h:99
PObject::Comparison CompareInfo(const H323GenericCapabilityInfo &obj) const
Speed
Specific G.711 encoding bit rates.
Definition: h323caps.h:1864
PObject::Comparison CompareParam(const H245_NonStandardParameter ¶m) const
static H323Capability * Create(const PString &name)
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
virtual unsigned GetSubType() const
OpalMediaFormat GetMediaFormat() const
Definition: h323caps.h:1092
H323GenericVideoCapability(const PString &capabilityId, PINDEX maxBitRate=0)
H323Capability * Copy(const H323Capability &capability)
virtual unsigned GetRxFramesInPacket() const
PBoolean SetSize(PINDEX newSize)
Set the new size of the table, internal use only.
virtual PBoolean OnSendingPDU(H245_DataApplicationCapability &pdu) const
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
CapabilityDirection capabilityDirection
Unique ID assigned to capability.
Definition: h323caps.h:355
Audio codec capability.
Definition: h323caps.h:117
virtual MainTypes GetMainType() const
H323CapabilitiesList table
Definition: h323caps.h:2403
const PStringSet & GetMediaPacketizations() const
Definition: h323caps.h:2399
H323Capability * FindCapability(unsigned capabilityNumber) const
H323Capabilities & operator=(const H323Capabilities &original)
Definition: h323caps.h:307
unsigned assignedCapabilityNumber
Definition: h323caps.h:354
PINDEX comparisonLength
Definition: h323caps.h:467
unsigned GetCapabilityNumber() const
Get unique capability number.
Definition: h323caps.h:321
void Reorder(const PStringArray &preferenceOrder)
PBoolean SetSize(PINDEX newSize)
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu) const
Arbitrary data capability.
Definition: h323caps.h:121
virtual unsigned GetRxFramesInPacket() const
unsigned maxBitRate
Definition: h323caps.h:1725
virtual PBoolean OnReceivedPDU(const H245_AudioCapability &pdu, unsigned &packetSize, CommandType type)
Definition: h323caps.h:160
H323NonStandardVideoCapability(H323NonStandardCapabilityInfo::CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
virtual PBoolean OnSendingPDU(H245_AudioCapability &pdu, unsigned packetSize, CommandType type) const
PBoolean Merge(const H323Capabilities &newCaps)
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu)
PINDEX SetCapability(PINDEX descriptorNum, PINDEX simultaneous, H323Capability *cap)
Definition: h323caps.h:303
void SetCapabilityNumber(unsigned num)
Set unique capability number.
Definition: h323caps.h:324
virtual PBoolean OnReceivedPDU(const PBYTEArray &data)
const unsigned char * data
Definition: opalplugin.h:642
virtual H323Channel * CreateChannel(H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const =0
virtual unsigned GetSubType() const
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
Definition: h323caps.h:1584
Definition: h323con.h:130
virtual unsigned GetSubType() const =0
H323GenericControlCapability(const PString &identifier)
Definition: h323caps.h:157
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
PBYTEArray nonStandardData
Definition: h323caps.h:465
PBoolean OnSendingNonStandardPDU(PASN_Choice &pdu, unsigned nonStandardTag) const
Definition: h323caps.h:1545
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const
virtual ~H323NonStandardCapabilityInfo()
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
virtual MainTypes GetMainType() const
American standard.
Definition: h323caps.h:1861
Definition: h323caps.h:2097
PINDEX AddAllCapabilities(const H323EndPoint &, PINDEX descriptorNum, PINDEX simultaneous, const PString &name, PBoolean exact=false)
Definition: h323caps.h:2196
Comparison Compare(const PObject &obj) const
CompareFuncType compareFunc
Definition: h323caps.h:468
virtual ~H323RealTimeCapability()
virtual PBoolean IsUsable(const H323Connection &connection) const
void AttachQoS(RTP_QOS *_rtpqos)
Attach a QoS specification to this channel.
Definition: h323caps.h:951
Definition: opalplugin.h:637
PARRAY(H323CapabilitiesList, H323Capability)
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
virtual PBoolean OnReceivedPDU(const H245_AudioCapability &pdu, unsigned &packetSize)
Definition: h323caps.h:1736
virtual PBoolean OnReceivedPDU(const H245_VideoCapability &pdu, CommandType type)
Comparison Compare(const PObject &obj) const
void PrintOn(ostream &strm) const
virtual PBoolean OnSendingGenericPDU(H245_GenericCapability &pdu, const OpalMediaFormat &mediaFormat, H323Capability::CommandType type) const
virtual PBoolean OnSendingPDU(H245_VideoCapability &pdu, CommandType type) const
OpalMediaFormatList m_videoFormats
Definition: h323caps.h:1371
virtual PBoolean OnSendingPDU(H245_AudioCapability &pdu, unsigned packetSize) const
void Add(H323Capability *capability)
RTP_DataFrame::PayloadTypes GetPayloadType() const
Get the payload type for the capaibility.
Definition: h323caps.h:337
Definition: h323caps.h:215
Comparison Compare(const PObject &obj) const
Definition: h323caps.h:305
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
bool UpdateMediaFormat(const OpalMediaFormat &format)
virtual unsigned GetDefaultSessionID() const
RTP_QOS * rtpqos
Definition: h323caps.h:543
PBoolean IsAllowed(const H323Capability &capability)
Definition: h323caps.h:2075
Definition: h323caps.h:1298
Comparison Compare(const PObject &obj) const
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
virtual MainTypes GetMainType() const
Definition: h323caps.h:738
virtual unsigned GetSubType() const
void BuildPDU(const H323Connection &connection, H245_TerminalCapabilitySet &pdu) const
virtual void AttachQoS(RTP_QOS *)
Attach a QoS specification to this channel.
Definition: h323caps.h:343
Definition: h323caps.h:1379
virtual MainTypes GetMainType() const =0
PINDEX AddAllCapabilities(PINDEX descriptorNum, PINDEX simultaneous, const PString &name, PBoolean exact=false)
H323CapabilitiesSet set
Definition: h323caps.h:2404
Video codec capability.
Definition: h323caps.h:119
OpalMediaFormatList GetMediaFormats() const
Definition: h323caps.h:1210
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
virtual unsigned GetSubType() const
PBoolean IsMatch(const H245_NonStandardParameter ¶m) const
virtual unsigned GetTxFramesInPacket() const
void PrintOn(ostream &strm) const
virtual PObject * Clone() const
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
virtual PBoolean OnReceivedGenericPDU(OpalMediaFormat &mediaFormat, const H245_GenericCapability &pdu, H323Capability::CommandType type)
virtual unsigned GetSubType() const
PBoolean OnReceivedNonStandardPDU(const PASN_Choice &pdu, unsigned nonStandardTag)
void SetCapabilityDirection(CapabilityDirection dir)
Definition: h323caps.h:316
virtual unsigned GetDefaultSessionID() const
Definition: h323caps.h:554
virtual PObject * Clone() const
Mode mode
Definition: h323caps.h:1904
MainTypes
Definition: h323caps.h:115
virtual unsigned GetTxFramesInPacket() const
H323DataCapability(unsigned maxBitRate=0)
H323GenericAudioCapability(const PString &capabilityId, PINDEX maxBitRate=0)
PBoolean IsMatch(const H245_GenericCapability ¶m) const
virtual PString GetFormatName() const
Definition: h323caps.h:857
H323_G711Capability(Mode mode=muLaw, Speed speed=At64k)
OpalMediaFormat & GetWritableMediaFormat() const
virtual PBoolean OnSendingPDU(H245_Capability &pdu) const =0
H323NonStandardCapabilityInfo(CompareFuncType compareFunc, const BYTE *dataBlock, PINDEX dataSize)
virtual PBoolean OnReceivedPDU(const H245_Capability &pdu)
virtual PBoolean IsMatch(const PASN_Choice &subTypePDU, const PString &mediaPacketization) const
PINDEX GetSize() const
Definition: h323caps.h:2144
Definition: h323caps.h:304