#include <h323caps.h>
Inheritance diagram for H323Capability:
Identification functions | |
enum | MainTypes { e_Audio, e_Video, e_Data, e_UserInput, e_NumMainTypes } |
virtual MainTypes | GetMainType () const =0 |
virtual unsigned | GetSubType () const =0 |
virtual PString | GetFormatName () const =0 |
Member variable access | |
enum | CapabilityDirection { e_Unknown, e_Receive, e_Transmit, e_ReceiveAndTransmit, e_NoDirection, NumCapabilityDirections } |
CapabilityDirection | GetCapabilityDirection () const |
void | SetCapabilityDirection (CapabilityDirection dir) |
unsigned | GetCapabilityNumber () const |
Get unique capability number. | |
void | SetCapabilityNumber (unsigned num) |
Set unique capability number. | |
RTP_DataFrame::PayloadTypes | GetPayloadType () const |
Get the payload type for the capaibility. | |
virtual void | AttachQoS (RTP_QOS *) |
Attach a QoS specification to this channel. | |
Operations | |
virtual unsigned | GetDefaultSessionID () const |
virtual void | SetTxFramesInPacket (unsigned frames) |
virtual unsigned | GetTxFramesInPacket () const |
virtual unsigned | GetRxFramesInPacket () const |
virtual H323Channel * | CreateChannel (H323Connection &connection, H323Channel::Directions dir, unsigned sessionID, const H245_H2250LogicalChannelParameters *param) const =0 |
virtual H323Codec * | CreateCodec (H323Codec::Direction direction) const =0 |
static H323Capability * | Create (const PString &name) |
static H323Capability * | Create (H323EndPoint &, const PString &name) |
Public Member Functions | |
Construction | |
H323Capability () | |
Overrides from class PObject | |
Comparison | Compare (const PObject &obj) const |
void | PrintOn (ostream &strm) const |
Protocol manipulation | |
virtual BOOL | OnSendingPDU (H245_Capability &pdu) const =0 |
virtual BOOL | OnSendingPDU (H245_DataType &pdu) const =0 |
virtual BOOL | OnSendingPDU (H245_ModeElement &pdu) const =0 |
virtual BOOL | OnReceivedPDU (const H245_Capability &pdu) |
virtual BOOL | OnReceivedPDU (const H245_DataType &pdu, BOOL receiver)=0 |
virtual BOOL | IsNonStandardMatch (const H245_NonStandardParameter ¶m) const |
virtual BOOL | IsUsable (const H323Connection &connection) const |
Protected Attributes | |
unsigned | assignedCapabilityNumber |
CapabilityDirection | capabilityDirection |
Unique ID assigned to capability. | |
RTP_DataFrame::PayloadTypes | rtpPayloadType |
Note that this is not an instance of the codec itself. Merely the description of that codec. There is typically only one instance of this class contained in the capability tables of the endpoint. There may be several instances of the actualy codec managing the conversion of an individual stream of data.
An application may create a descendent off this class and override functions as required for describing a codec that it implements.
|
|
|
|
|
Create a new capability specification. |
|
Attach a QoS specification to this channel.
Reimplemented in H323RealTimeCapability. |
|
Compare two capability instances. This compares the main and sub-types of the capability. Reimplemented in H323_H261Capability, H323NonStandardAudioCapability, H323NonStandardVideoCapability, H323NonStandardDataCapability, H323_T38Capability, and H323_LIDCapability. |
|
provided for backwards compatibility
|
|
Create an H323Capability descendant given a string name. This uses the registration system to create the capability.
|
|
Create the channel instance, allocating resources as required. This creates a logical channel object appropriate for the parameters provided. Not if param is NULL, sessionID must be provided, otherwise this is taken from the fields in param.
Implemented in H323RealTimeCapability, H323_UserInputCapability, H323_T120Capability, H323_T38Capability, and H323_T38NonStandardCapability. |
|
Create the codec instance, allocating resources as required.
Implemented in H323_Cu30Capability, OpalDynaCodecNonStandardAudioCapability, OpalDynaCodecStandardAudioCapability, OpalDynaCodecStandardVideoCapability, H323_H261Capability, H323DataCapability, H323_G711Capability, H323_UserInputCapability, H323_LIDCapability, H323_CiscoG7231aLIDCapability, and G7231_File_Capability. |
|
Get the direction for this capability. |
|
Get unique capability number.
|
|
Get the default RTP session. This function gets the default RTP session ID for the capability type. For example audio capabilities return the value RTP_Session::DefaultAudioSessionID etc. The default behaviour returns zero, indicating it is not an RTP based capability. Reimplemented in H323AudioCapability, H323VideoCapability, and H323DataCapability. |
|
Get the name of the media data format this class represents. Implemented in H323_Cu30Capability, OpalDynaCodecNonStandardAudioCapability, OpalDynaCodecStandardAudioCapability, OpalDynaCodecStandardVideoCapability, H323_H261Capability, H323_G711Capability, H323_UserInputCapability, H323_T120Capability, H323_T38Capability, H323_T38NonStandardCapability, H323_LIDCapability, H323_CiscoG7231aLIDCapability, and G7231_File_Capability. |
|
Get the main type of the capability. This function is overridden by one of the three main sub-classes off which real capabilities would be descendend. Implemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
Get the payload type for the capaibility.
|
|
Get the maximum size (in frames) of data that can be received in a single PDU. The default behaviour returns the value 1. Reimplemented in H323AudioCapability. |
|
Get the sub-type of the capability. This is a code dependent on the main type of the capability. Implemented in OpalDynaCodecStandardAudioCapability, OpalDynaCodecStandardVideoCapability, H323_H261Capability, H323NonStandardAudioCapability, H323NonStandardVideoCapability, H323NonStandardDataCapability, H323_G711Capability, H323_UserInputCapability, H323_T120Capability, H323_T38Capability, H323_LIDCapability, and G7231_File_Capability. |
|
Get the maximum size (in frames) of data that will be transmitted in a single PDU. The default behaviour returns the value 1. Reimplemented in H323AudioCapability. |
|
Compare the nonStandardData part of the capability, if applicable.
Reimplemented in H323NonStandardAudioCapability, H323NonStandardVideoCapability, and H323NonStandardDataCapability. |
|
Validate that the capability is usable given the connection. This checks agains the negotiated protocol version number and remote application to determine if this capability should be used in TCS or OLC pdus. The default behaviour returns TRUE. Reimplemented in H323_UserInputCapability. |
|
This function is called whenever and incoming OpenLogicalChannel PDU has been used to construct the control channel. It allows the capability to set from the PDU fields, information in members specific to the class. The default behaviour is pure.
Implemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
This function is called whenever and incoming TerminalCapabilitySet PDU is received on the control channel, and a new H323Capability descendent was created. This completes reading fields from the PDU into the classes members. If the function returns FALSE then the received PDU codec description is not supported, so will be ignored. The default behaviour sets the capabilityDirection member variable from the PDU and then returns TRUE. Note that this means it is very important to call the ancestor function when overriding.
Reimplemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
This function is called whenever and outgoing RequestMode PDU is being constructed for the control channel. It allows the capability to set the PDU fields from information in members specific to the class. The default behaviour is pure.
Implemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
This function is called whenever and outgoing OpenLogicalChannel PDU is being constructed for the control channel. It allows the capability to set the PDU fields from information in members specific to the class. The default behaviour is pure.
Implemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
This function is called whenever and outgoing TerminalCapabilitySet PDU is being constructed for the control channel. It allows the capability to set the PDU fields from information in members specific to the class. The default behaviour is pure.
Implemented in H323AudioCapability, H323VideoCapability, H323DataCapability, and H323_UserInputCapability. |
|
Print out the object to the stream, virtual version of << operator. |
|
Set the direction for this capability.
|
|
Set unique capability number.
|
|
Set the maximum size (in frames) of data that will be transmitted in a single PDU. This will also be the desired number that will be sent by most codec implemetations. The default behaviour does nothing.
Reimplemented in H323AudioCapability. |
|
|
|
Unique ID assigned to capability.
|
|
|