12 #ifndef ROC_AUDIO_SAMPLE_SPEC_H_
13 #define ROC_AUDIO_SAMPLE_SPEC_H_
Channel set. Multi-word bitmask with bits corresponding to enabled channels. Meaning of each channel ...
Sample specification. Describes sample rate and channels.
void set_channel_set(const ChannelSet &channel_set)
Set channel set.
size_t ns_2_samples_overall(core::nanoseconds_t ns_duration) const
Convert nanoseconds duration to number of samples for all channels.
core::nanoseconds_t fract_samples_overall_2_ns(float n_samples) const
Convert number of samples (possibly non-integer) to nanoseconds.
core::nanoseconds_t stream_timestamp_delta_2_ns(packet::stream_timestamp_diff_t sts_delta) const
Convert stream timestamp delta to nanoseconds delta.
bool operator==(const SampleSpec &other) const
Check two specifications for equality.
bool is_valid() const
Check if sample spec has non-zero rate and valid channel set.
SampleSpec(size_t sample_rate, ChannelLayout channel_layout, ChannelOrder channel_order, ChannelMask channel_mask)
Construct specification with parameters.
size_t num_channels() const
Get number enabled channels in channel set.
SampleSpec()
Construct empty specification.
size_t sample_rate() const
Get sample rate.
bool operator!=(const SampleSpec &other) const
Check two specifications for equality.
const ChannelSet & channel_set() const
Get channel set.
void set_sample_rate(size_t sample_rate)
Set sample rate.
core::nanoseconds_t samples_overall_2_ns(size_t n_samples) const
Convert number of samples for all channels to nanoseconds duration.
core::nanoseconds_t samples_per_chan_2_ns(size_t n_samples) const
Convert number of samples per channel to nanoseconds duration.
core::nanoseconds_t fract_samples_per_chan_2_ns(float n_samples) const
Convert (possibly fractional) number samples per channel to nanoseconds duration.
packet::stream_timestamp_diff_t ns_2_stream_timestamp_delta(core::nanoseconds_t ns_delta) const
Convert nanoseconds delta to stream timestamp delta.
size_t ns_2_samples_per_chan(core::nanoseconds_t ns_duration) const
Convert nanoseconds duration to number of samples per channel.
ChannelSet & channel_set()
Get mutable channel set.
SampleSpec(size_t sample_rate, const ChannelSet &channel_set)
Construct specification with parameters.
ChannelLayout
Channel layout. Defines meaning of channels in ChannelSet. ChannelMapper uses channel layout to decid...
uint32_t ChannelMask
Channel mask.
ChannelOrder
Surround channel order.
int64_t nanoseconds_t
Nanoseconds.
int32_t stream_timestamp_diff_t
Packet stream timestamp delta.
Commonly used types and functions.
Various units used in packets.