12#ifndef ROC_PIPELINE_SENDER_SINK_H_
13#define ROC_PIPELINE_SENDER_SINK_H_
83 void compute_update_deadline_();
84 void invalidate_update_deadline_();
105 bool update_deadline_valid_;
Fanout. Duplicates audio stream to multiple output writers.
Sample stream specification. Defines sample rate and channel layout.
Memory allocator interface.
Intrusive doubly-linked list.
Base class for non-copyable objects.
Optionally constructed object.
virtual audio::SampleSpec sample_spec() const
Get sample specification of the sink.
void update()
Update pipeline.
virtual void write(audio::Frame &frame)
Write audio frame.
virtual core::nanoseconds_t latency() const
Get latency of the sink.
virtual bool has_clock() const
Check if the sink has own clock.
SenderSink(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.
SenderSlot * create_slot()
Create slot.
core::nanoseconds_t get_update_deadline()
Get deadline when the pipeline should be updated.
bool valid() const
Check if the pipeline was successfully constructed.
Memory allocator interface.
FEC block encoder interface.
Audio frame encoder interface.
Interleaves packets before transmit.
Audio resampler interface.
int64_t nanoseconds_t
Nanoseconds.
Optionally constructed object.
Route packets to writers.
Sender endpoint pipeline.