Cogs.Core
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Cogs::RTPStream Struct Reference

Classes

struct  Dest
 

Public Member Functions

 RTPStream (Core::Context *context, uint32_t clock_rate=90000, uint16_t client_port=0, Cogs::Network::AddrIn mc_adapter=Cogs::Network::AddrIn(), bool udp=true)
 
 RTPStream (const RTPStream &)=delete
 
RTPStreamoperator= (const RTPStream &)=delete
 
 RTPStream (RTPStream &&)=delete
 
RTPStreamoperator= (RTPStream &&)=delete
 
void setUserData (intptr_t data)
 
void setConnectTimeout (int64_t milliseconds)
 
uint16_t GetRTPPort () const
 
uint16_t GetRTCPPort () const
 
intptr_t getUserData () const
 
void AddDestination (const uint8_t ip[4], uint16_t server_port)
 
void JoinMulticastGroup (const uint8_t ip[4], uint16_t server_port)
 
void SendPacket (const uint8_t *buffer, size_t size)
 
void AddSSRC (uint32_t ssrc, Cogs::Core::Codec codec, ResourceId textureId)
 
void WriteData (Dest &dest)
 
DestGetLatestStream ()
 
void Update ()
 

Public Attributes

Core::Contextcontext = nullptr
 
bool use_pool_thread = false
 
bool useUDP = true
 
uint32_t clock_rate = 0
 
uint16_t client_port = 0
 
uint16_t server_port = 0
 
uint8_t ip [4] = {}
 
uint16_t rtp_port = 0
 
uint16_t rtcp_port = 0
 
jrtplib::RTPSession * session = nullptr
 
Cogs::Core::Codec codec = Cogs::Core::Codec::None
 
bool rtp_one_byte_header_extension = true
 
bool rtp_two_byte_header_extension = false
 
uint16_t rfc6051_ext_id = 1
 
uint32_t stream_number = 0
 
std::mutex dest_mu
 
std::unordered_map< uint32_t, Destdest
 

Private Member Functions

void processH264NALU (Dest &dest, uint32_t rtpType, const void *data, size_t size)
 
void processH265NALU (Dest &dest, uint32_t rtpType, const void *data, size_t size)
 

Private Attributes

Cogs::Network::ConnectionTCP tcpConnection
 
intptr_t userData
 

Detailed Description

Definition at line 20 of file RTP.h.

Constructor & Destructor Documentation

◆ RTPStream()

Cogs::RTPStream::RTPStream ( Core::Context context,
uint32_t  clock_rate = 90000,
uint16_t  client_port = 0,
Cogs::Network::AddrIn  mc_adapter = Cogs::Network::AddrIn(),
bool  udp = true 
)

Definition at line 112 of file RTP.cpp.

◆ ~RTPStream()

Cogs::RTPStream::~RTPStream ( )

Definition at line 170 of file RTP.cpp.

Member Function Documentation

◆ AddDestination()

void Cogs::RTPStream::AddDestination ( const uint8_t  ip[4],
uint16_t  server_port 
)

Definition at line 183 of file RTP.cpp.

◆ AddSSRC()

void Cogs::RTPStream::AddSSRC ( uint32_t  ssrc,
Cogs::Core::Codec  codec,
ResourceId  textureId 
)

Definition at line 240 of file RTP.cpp.

◆ GetLatestStream()

Cogs::RTPStream::Dest * Cogs::RTPStream::GetLatestStream ( )

Definition at line 283 of file RTP.cpp.

◆ GetRTCPPort()

uint16_t Cogs::RTPStream::GetRTCPPort ( ) const
inline

Definition at line 38 of file RTP.h.

◆ GetRTPPort()

uint16_t Cogs::RTPStream::GetRTPPort ( ) const
inline

Definition at line 37 of file RTP.h.

◆ getUserData()

intptr_t Cogs::RTPStream::getUserData ( ) const
inline

Definition at line 39 of file RTP.h.

◆ JoinMulticastGroup()

void Cogs::RTPStream::JoinMulticastGroup ( const uint8_t  ip[4],
uint16_t  server_port 
)

Definition at line 214 of file RTP.cpp.

◆ processH264NALU()

void Cogs::RTPStream::processH264NALU ( Dest dest,
uint32_t  rtpType,
const void *  data,
size_t  size 
)
private

Definition at line 648 of file RTP.cpp.

◆ processH265NALU()

void Cogs::RTPStream::processH265NALU ( Dest dest,
uint32_t  rtpType,
const void *  data,
size_t  size 
)
private

Definition at line 664 of file RTP.cpp.

◆ SendPacket()

void Cogs::RTPStream::SendPacket ( const uint8_t *  buffer,
size_t  size 
)

Definition at line 230 of file RTP.cpp.

◆ setConnectTimeout()

void Cogs::RTPStream::setConnectTimeout ( int64_t  milliseconds)
inline

Definition at line 35 of file RTP.h.

◆ setUserData()

void Cogs::RTPStream::setUserData ( intptr_t  data)
inline

Definition at line 34 of file RTP.h.

◆ Update()

void Cogs::RTPStream::Update ( )

Definition at line 295 of file RTP.cpp.

◆ WriteData()

void Cogs::RTPStream::WriteData ( Dest dest)

Definition at line 259 of file RTP.cpp.

Member Data Documentation

◆ client_port

uint16_t Cogs::RTPStream::client_port = 0

Definition at line 60 of file RTP.h.

◆ clock_rate

uint32_t Cogs::RTPStream::clock_rate = 0

Definition at line 59 of file RTP.h.

◆ codec

Cogs::Core::Codec Cogs::RTPStream::codec = Cogs::Core::Codec::None

Definition at line 68 of file RTP.h.

◆ context

Core::Context* Cogs::RTPStream::context = nullptr

Definition at line 55 of file RTP.h.

◆ dest

std::unordered_map<uint32_t, Dest> Cogs::RTPStream::dest

Definition at line 106 of file RTP.h.

◆ dest_mu

std::mutex Cogs::RTPStream::dest_mu

Definition at line 105 of file RTP.h.

◆ ip

uint8_t Cogs::RTPStream::ip[4] = {}

Definition at line 62 of file RTP.h.

◆ rfc6051_ext_id

uint16_t Cogs::RTPStream::rfc6051_ext_id = 1

Definition at line 73 of file RTP.h.

◆ rtcp_port

uint16_t Cogs::RTPStream::rtcp_port = 0

Definition at line 65 of file RTP.h.

◆ rtp_one_byte_header_extension

bool Cogs::RTPStream::rtp_one_byte_header_extension = true

Definition at line 70 of file RTP.h.

◆ rtp_port

uint16_t Cogs::RTPStream::rtp_port = 0

Definition at line 64 of file RTP.h.

◆ rtp_two_byte_header_extension

bool Cogs::RTPStream::rtp_two_byte_header_extension = false

Definition at line 71 of file RTP.h.

◆ server_port

uint16_t Cogs::RTPStream::server_port = 0

Definition at line 61 of file RTP.h.

◆ session

jrtplib::RTPSession* Cogs::RTPStream::session = nullptr

Definition at line 66 of file RTP.h.

◆ stream_number

uint32_t Cogs::RTPStream::stream_number = 0

Definition at line 75 of file RTP.h.

◆ tcpConnection

Cogs::Network::ConnectionTCP Cogs::RTPStream::tcpConnection
private

Definition at line 109 of file RTP.h.

◆ use_pool_thread

bool Cogs::RTPStream::use_pool_thread = false

Definition at line 56 of file RTP.h.

◆ userData

intptr_t Cogs::RTPStream::userData
private

Definition at line 110 of file RTP.h.

◆ useUDP

bool Cogs::RTPStream::useUDP = true

Definition at line 57 of file RTP.h.


The documentation for this struct was generated from the following files: