|
libtins
4.6
|
Represents a RTP PDU. More...
#include <rtp.h>
Public Types | |
| typedef std::vector< uint32_t > | csrc_ids_type |
| typedef std::vector< uint32_t > | extension_header_data_type |
Public Types inherited from Tins::PDU | |
| enum | endian_type { BE , LE } |
| enum | PDUType { RAW , ETHERNET_II , IEEE802_3 , DOT3 = IEEE802_3 , RADIOTAP , DOT11 , DOT11_ACK , DOT11_ASSOC_REQ , DOT11_ASSOC_RESP , DOT11_AUTH , DOT11_BEACON , DOT11_BLOCK_ACK , DOT11_BLOCK_ACK_REQ , DOT11_CF_END , DOT11_DATA , DOT11_CONTROL , DOT11_DEAUTH , DOT11_DIASSOC , DOT11_END_CF_ACK , DOT11_MANAGEMENT , DOT11_PROBE_REQ , DOT11_PROBE_RESP , DOT11_PS_POLL , DOT11_REASSOC_REQ , DOT11_REASSOC_RESP , DOT11_RTS , DOT11_QOS_DATA , LLC , SNAP , IP , ARP , TCP , UDP , ICMP , BOOTP , DHCP , EAPOL , RC4EAPOL , RSNEAPOL , DNS , LOOPBACK , IPv6 , ICMPv6 , SLL , DHCPv6 , DOT1AD , DOT1Q , PPPOE , STP , PPI , IPSEC_AH , IPSEC_ESP , PKTAP , MPLS , DOT11_CONTROL_TA , VXLAN , RTP , UNKNOWN = 999 , USER_DEFINED_PDU = 1000 } |
| Enum which identifies each type of PDU. More... | |
| typedef byte_array | serialization_type |
Public Member Functions | |
| RTP () | |
| RTP (const uint8_t *data, uint32_t size) | |
| Constructs a RTP object from a buffer. More... | |
| small_uint< 2 > | version () const |
| Getter for the version. | |
| small_uint< 1 > | padding_bit () const |
| Getter for the padding bit. | |
| small_uint< 1 > | extension_bit () const |
| Getter for the extension bit. | |
| small_uint< 4 > | csrc_count () const |
| Getter for the CSRC count. | |
| small_uint< 1 > | marker_bit () const |
| Getter for the marker bit. | |
| small_uint< 7 > | payload_type () const |
| Getter for the payload type. | |
| uint16_t | sequence_number () const |
| Getter for the sequence number. | |
| uint32_t | timestamp () const |
| Getter for the timestamp. | |
| uint32_t | ssrc_id () const |
| Getter for the SSRC identifier. | |
| const csrc_ids_type & | csrc_ids () const |
| Getter for the CSRC identifiers. | |
| uint8_t | padding_size () const |
| Getter for the padding size. | |
| uint16_t | extension_profile () const |
| Getter for the extension header profile. | |
| uint16_t | extension_length () const |
| Getter for the extension header length. | |
| const extension_header_data_type & | extension_data () const |
| Getter for the extension header data. | |
| void | version (small_uint< 2 > version) |
| Setter for the version. More... | |
| void | extension_bit (small_uint< 1 > extension) |
| Setter for the extension bit. More... | |
| void | marker_bit (small_uint< 1 > marker) |
| Setter for the marker bit. More... | |
| void | payload_type (small_uint< 7 > payload_type) |
| Setter for the payload type. More... | |
| void | sequence_number (uint16_t seq_num) |
| Setter for the sequence number. More... | |
| void | timestamp (uint32_t timestamp) |
| Setter for the timestamp. More... | |
| void | ssrc_id (uint32_t ssrc_id) |
| Setter for the SSRC identifier. More... | |
| void | padding_size (uint8_t size) |
| Setter for the padding size. More... | |
| void | extension_profile (uint16_t profile) |
| Setter for the extension header profile. More... | |
| void | add_extension_data (const uint32_t value) |
| Adds a word of extension header data. More... | |
| bool | remove_extension_data (const uint32_t value) |
| Removes a word of extension header data. More... | |
| bool | search_extension_data (const uint32_t value) |
| Searches for extension header data that matches the given value. More... | |
| void | add_csrc_id (const uint32_t csrc_id) |
| Adds a CSRC identifier. More... | |
| bool | remove_csrc_id (const uint32_t value) |
| Removes a CSRC identifier. More... | |
| bool | search_csrc_id (const uint32_t value) |
| Searches for a CSRC identifier that matches the given value. More... | |
| uint32_t | header_size () const |
| Returns the RTP packet's header length. More... | |
| uint32_t | trailer_size () const |
| Returns the RTP packet's trailer length. More... | |
| PDUType | pdu_type () const |
| Getter for the PDU's type. More... | |
| RTP * | clone () const |
Public Member Functions inherited from Tins::PDU | |
| PDU () | |
| Default constructor. | |
| PDU (PDU &&rhs) TINS_NOEXCEPT | |
| Move constructor. More... | |
| PDU & | operator= (PDU &&rhs) TINS_NOEXCEPT |
| Move assignment operator. More... | |
| virtual | ~PDU () |
| PDU destructor. More... | |
| uint32_t | size () const |
| The whole chain of PDU's size, including this one. More... | |
| virtual uint32_t | advertised_size () const |
| The whole chain of PDU's advertised size, including this one. More... | |
| PDU * | inner_pdu () const |
| Getter for the inner PDU. More... | |
| PDU * | parent_pdu () const |
| PDU * | release_inner_pdu () |
| Releases the inner PDU. More... | |
| void | inner_pdu (PDU *next_pdu) |
| Sets the child PDU. More... | |
| void | inner_pdu (const PDU &next_pdu) |
| Sets the child PDU. More... | |
| serialization_type | serialize () |
| Serializes the whole chain of PDU's, including this one. More... | |
| template<typename T > | |
| T * | find_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| const T * | find_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| T & | rfind_pdu (PDUType type=T::pdu_flag) |
| Finds and returns the first PDU that matches the given flag. More... | |
| template<typename T > | |
| const T & | rfind_pdu (PDUType type=T::pdu_flag) const |
| Finds and returns the first PDU that matches the given flag. More... | |
| virtual void | send (PacketSender &sender, const NetworkInterface &iface) |
| Send the stack of PDUs through a PacketSender. More... | |
| virtual PDU * | recv_response (PacketSender &sender, const NetworkInterface &iface) |
| Receives a matching response for this packet. More... | |
| virtual bool | matches_response (const uint8_t *ptr, uint32_t total_sz) const |
| Check whether ptr points to a valid response for this PDU. More... | |
| virtual bool | matches_flag (PDUType flag) const |
| Check whether this PDU matches the specified flag. More... | |
Static Public Attributes | |
| static const PDU::PDUType | pdu_flag = PDU::RTP |
| This PDU's flag. | |
Static Public Attributes inherited from Tins::PDU | |
| static const endian_type | endianness = BE |
Additional Inherited Members | |
Protected Member Functions inherited from Tins::PDU | |
| PDU (const PDU &other) | |
| Copy constructor. | |
| PDU & | operator= (const PDU &other) |
| Copy assignment operator. | |
| void | copy_inner_pdu (const PDU &pdu) |
| Copy other PDU's inner PDU(if any). More... | |
| virtual void | prepare_for_serialize () |
| Prepares this PDU for serialization. More... | |
| void | serialize (uint8_t *buffer, uint32_t total_sz) |
| Serializes this PDU and propagates this action to child PDUs. More... | |
| typedef std::vector<uint32_t> Tins::RTP::csrc_ids_type |
The type used to store CSRC identifiers.
| typedef std::vector<uint32_t> Tins::RTP::extension_header_data_type |
The type used to store extension header data.
| Tins::RTP::RTP | ( | ) |
Default constructor.
| Tins::RTP::RTP | ( | const uint8_t * | data, |
| uint32_t | size | ||
| ) |
| void Tins::RTP::add_csrc_id | ( | const uint32_t | csrc_id | ) |
Adds a CSRC identifier.
The CSRC identifier is added after the last CSRC identifier in the extension header.
| csrc_id | The CSRC identifier to be added |
| void Tins::RTP::add_extension_data | ( | const uint32_t | value | ) |
Adds a word of extension header data.
The word is added after the last word of extension header data.
| value | The value of the extension header data to be added. |
|
inlinevirtual |
Implements Tins::PDU.
|
inline |
Setter for the extension bit.
| extension | The new extension bit. |
|
inline |
Setter for the extension header profile.
| profile | The new extension header profile. |
|
virtual |
Returns the RTP packet's header length.
This method overrides PDU::header_size.
Implements Tins::PDU.
|
inline |
Setter for the marker bit.
| marker | The new marker bit. |
|
inline |
Setter for the padding size.
| size | The new padding size. |
|
inline |
Setter for the payload type.
| payload_type | The new payload type. |
|
inlinevirtual |
| bool Tins::RTP::remove_csrc_id | ( | const uint32_t | value | ) |
Removes a CSRC identifier.
If there are multiple CSRC identifiers of the given value, only the first one will be removed.
| value | The value of the CSRC identifier to be removed. |
| bool Tins::RTP::remove_extension_data | ( | const uint32_t | value | ) |
Removes a word of extension header data.
If there are multiple words of extension header data of the given value, only the first one will be removed.
| value | The value of the extension header data to be removed. |
| bool Tins::RTP::search_csrc_id | ( | const uint32_t | value | ) |
Searches for a CSRC identifier that matches the given value.
| value | The CSRC identifier to be searched. |
| bool Tins::RTP::search_extension_data | ( | const uint32_t | value | ) |
Searches for extension header data that matches the given value.
| value | The extension header data to be searched. |
|
inline |
Setter for the sequence number.
| seq_num | The new sequence number. |
|
inline |
Setter for the SSRC identifier.
| ssrc_id | The new SSRC identifier. |
|
inline |
Setter for the timestamp.
| timestamp | The new timestamp. |
|
inlinevirtual |
Returns the RTP packet's trailer length.
This method overrides PDU::trailer_size.
Reimplemented from Tins::PDU.
|
inline |
Setter for the version.
| version | The new version. |