12 #ifndef ROC_PIPELINE_RECEIVER_SOURCE_H_
13 #define ROC_PIPELINE_RECEIVER_SOURCE_H_
Sample specification. Describes sample rate and channels.
Intrusive doubly-linked list.
Base class for non-copyable objects.
Optionally constructed object.
Receiver source pipeline.
bool is_valid() const
Check if the pipeline was successfully constructed.
virtual void reclock(core::nanoseconds_t playback_time)
Adjust sessions clock to match consumer clock.
virtual void pause()
Pause reading.
virtual sndio::DeviceState state() const
Get current receiver state.
virtual core::nanoseconds_t latency() const
Get latency of the source.
virtual sndio::ISource * to_source()
Cast IDevice to ISink.
virtual bool restart()
Restart reading from the beginning.
virtual bool resume()
Resume paused reading.
virtual sndio::ISink * to_sink()
Cast IDevice to ISink.
void delete_slot(ReceiverSlot *slot)
Delete slot.
virtual bool has_clock() const
Check if the source has own clock.
virtual audio::SampleSpec sample_spec() const
Get sample specification of the source.
virtual bool has_latency() const
Check if the source supports latency reports.
virtual bool read(audio::Frame &)
Read audio frame.
size_t num_sessions() const
Get number of active sessions.
virtual sndio::DeviceType type() const
Get device type.
ReceiverSource(const ReceiverSourceConfig &source_config, const rtp::EncodingMap &encoding_map, core::IPool &packet_pool, core::IPool &packet_buffer_pool, core::IPool &frame_buffer_pool, core::IArena &arena)
Initialize.
core::nanoseconds_t refresh(core::nanoseconds_t current_time)
Pull packets and refresh pipeline according to current time.
ReceiverSlot * create_slot(const ReceiverSlotConfig &slot_config)
Create slot.
RTP encoding map. Thread-safe. Returned encodings are immutable and can be safely used from any threa...
int64_t nanoseconds_t
Nanoseconds.
Optionally constructed object.
Receiver endpoint pipeline.
Commonly used types and functions.
Parameters of receiver slot.
Parameters of receiver session.