12#ifndef ROC_PIPELINE_SENDER_LOOP_H_
13#define ROC_PIPELINE_SENDER_LOOP_H_
142 virtual bool has_clock()
const;
151 bool task_create_slot_(
Task&);
152 bool task_create_endpoint_(
Task&);
153 bool task_set_endpoint_destination_writer_(
Task&);
154 bool task_set_endpoint_destination_address_(
Task&);
155 bool task_check_slot_is_ready_(
Task&);
Sample stream specification. Defines sample rate and channel layout.
Memory allocator interface.
Optionally constructed object.
Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work....
Base class for task-based pipelines.
Base class for pipeline tasks.
Sender endpoint sub-pipeline.
address::Protocol proto_
Protocol.
address::SocketAddr addr_
Endpoint address.
bool(SenderLoop::* func_)(Task &)
Task implementation method.
address::Interface iface_
Interface.
packet::IWriter * writer_
Packet writer.
SenderEndpoint * endpoint_
Endpoint.
Check if the slot configuration is done. This is true when all necessary endpoints are added and conf...
CheckSlotIsReady(SlotHandle slot)
Set task parameters.
Create endpoint on given interface of the slot.
EndpointHandle get_handle() const
Get created endpoint handle.
CreateEndpoint(SlotHandle slot, address::Interface iface, address::Protocol proto)
Set task parameters.
CreateSlot()
Set task parameters.
SlotHandle get_handle() const
Get created slot handle.
Set UDP address for output packets of endpoint.
SetEndpointDestinationAddress(EndpointHandle endpoint, const address::SocketAddr &addr)
Set task parameters.
Set writer to which endpoint will write packets.
SetEndpointDestinationWriter(EndpointHandle endpoint, packet::IWriter &writer)
Set task parameters.
Subclasses for specific tasks.
sndio::ISink & sink()
Get sender sink.
struct EndpointHandle * EndpointHandle
Opaque endpoint handle.
SenderLoop(IPipelineTaskScheduler &scheduler, const SenderConfig &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::IAllocator &allocator)
Initialize.
struct SlotHandle * SlotHandle
Opaque slot handle.
bool valid() const
Check if the pipeline was successfully constructed.
Memory allocator interface.
int64_t nanoseconds_t
Nanoseconds.
uint32_t timestamp_t
Audio packet timestamp.
Base class for pipelines.