12 #ifndef ROC_PIPELINE_RECEIVER_ENDPOINT_H_
13 #define ROC_PIPELINE_RECEIVER_ENDPOINT_H_
35 class ReceiverSessionGroup;
#define ROC_ATTR_NODISCARD
Emit warning if function result is not checked.
IArena & arena() const
Get arena.
Base class for List element.
Thread-safe lock-free node-based intrusive multi-producer single-consumer queue.
Optionally constructed object.
Base class for object with reference counter.
Packet composer interface.
Receiver endpoint sub-pipeline.
const address::SocketAddr & inbound_address() const
Get bind address for inbound packets.
ReceiverEndpoint(address::Protocol proto, StateTracker &state_tracker, ReceiverSessionGroup &session_group, const rtp::EncodingMap &encoding_map, const address::SocketAddr &inbound_address, packet::IWriter *outbound_writer, core::IArena &arena)
Initialize.
packet::IComposer * outbound_composer()
Get composer for outbound packets.
packet::IWriter * outbound_writer()
Get writer for outbound packets. This way feedback packets for sender generated by receiver reach net...
ROC_ATTR_NODISCARD status::StatusCode pull_packets(core::nanoseconds_t current_time)
Pull packets written to inbound writer into pipeline.
address::Protocol proto() const
Get protocol.
bool is_valid() const
Check if the port pipeline was succefully constructed.
packet::IWriter & inbound_writer()
Get writer for inbound packets. This way packets from network reach receiver pipeline.
RTP encoding map. Thread-safe. Returned encodings are immutable and can be safely used from any threa...
Multi-producer single-consumer queue.
int64_t nanoseconds_t
Nanoseconds.
Optionally constructed object.
Base class for object with reference counter.
Prepare and ship outgoing packets.