12 #ifndef ROC_PIPELINE_RECEIVER_LOOP_H_
13 #define ROC_PIPELINE_RECEIVER_LOOP_H_
99 size_t* sess_metrics_size);
141 virtual void pause();
142 virtual bool resume();
143 virtual bool restart();
146 virtual bool has_latency()
const;
147 virtual bool has_clock()
const;
153 virtual uint64_t tid_imp()
const;
158 bool task_create_slot_(
Task& task);
159 bool task_delete_slot_(
Task& task);
160 bool task_query_slot_(
Task& task);
161 bool task_add_endpoint_(
Task& task);
Sample specification. Describes sample rate and channels.
Optionally constructed object.
uint64_t ticks_t
Number of ticks.
Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work....
Base class for task-based pipelines.
Base class for pipeline tasks.
bool(ReceiverLoop::* func_)(Task &)
Task implementation method.
ReceiverSlotMetrics * slot_metrics_
Output for slot metrics.
packet::IWriter * writer_
Packet writer.
address::Interface iface_
Interface.
address::Protocol proto_
Protocol.
size_t * sess_metrics_size_
Input/output session metrics size.
ReceiverSessionMetrics * sess_metrics_
Output for session metrics.
ReceiverSlot * slot_
Slot.
Create endpoint on given interface of the slot.
AddEndpoint(SlotHandle slot, address::Interface iface, address::Protocol proto)
Set task parameters.
packet::IWriter * get_writer() const
Get packet writer for the endpoint.
SlotHandle get_handle() const
Get created slot handle.
CreateSlot()
Set task parameters.
DeleteSlot(SlotHandle slot)
Set task parameters.
QuerySlot(SlotHandle slot, ReceiverSlotMetrics &slot_metrics, ReceiverSessionMetrics *sess_metrics, size_t *sess_metrics_size)
Set task parameters.
Subclasses for specific tasks.
bool is_valid() const
Check if the pipeline was successfully constructed.
ReceiverLoop(IPipelineTaskScheduler &scheduler, const ReceiverConfig &config, const rtp::FormatMap &format_map, packet::PacketFactory &packet_factory, core::BufferFactory< uint8_t > &byte_buffer_factory, core::BufferFactory< audio::sample_t > &sample_buffer_factory, core::IArena &arena)
Initialize.
struct SlotHandle * SlotHandle
Opaque slot handle.
sndio::ISource & source()
Get receiver sources.
Receiver source pipeline.
nanoseconds_t timestamp(clock_t clock)
Get current timestamp in nanoseconds.
int64_t nanoseconds_t
Nanoseconds.
Optionally constructed object.
Base class for pipelines.
Receiver source pipeline.
Commonly used types and functions.
Metrics of receiver session (connection from sender).
Metrics of receiver slot.