12 #ifndef ROC_PIPELINE_SENDER_SINK_H_
13 #define ROC_PIPELINE_SENDER_SINK_H_
Fanout. Duplicates audio stream to multiple output writers.
Sample specification. Describes sample rate and channels.
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.
virtual void pause()
Pause reading.
virtual sndio::DeviceState state() const
Get current receiver state.
virtual void write(audio::Frame &frame)
Write audio frame.
virtual bool restart()
Restart reading from the beginning.
virtual core::nanoseconds_t latency() const
Get latency of the sink.
SenderSlot * create_slot()
Create slot.
virtual bool has_clock() const
Check if the sink has own clock.
virtual bool has_latency() const
Check if the sink supports latency reports.
virtual sndio::DeviceType type() const
Get device type.
core::nanoseconds_t refresh(core::nanoseconds_t current_time)
Refresh pipeline according to current time.
virtual bool resume()
Resume paused reading.
void delete_slot(SenderSlot *slot)
Delete slot.
bool is_valid() const
Check if the pipeline was successfully constructed.
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::IArena &arena)
Initialize.
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.