12#ifndef ROC_AUDIO_PCM_DECODER_H_
13#define ROC_AUDIO_PCM_DECODER_H_
46 virtual size_t shift(
size_t n_samples);
53 const size_t n_chans_;
58 const void* frame_data_;
59 size_t frame_byte_size_;
60 size_t frame_bit_off_;
Audio frame decoder interface.
virtual size_t shift(size_t n_samples)
Shift samples from current frame.
virtual size_t read(sample_t *samples, size_t n_samples)
Read samples from current frame.
virtual packet::timestamp_t available() const
Get number of samples available for decoding.
virtual void end()
Finish decoding current frame.
virtual size_t decoded_sample_count(const void *frame_data, size_t frame_size) const
Get number of samples per channel, that can be decoded from given frame.
virtual packet::timestamp_t position() const
Get current stream position.
virtual void begin(packet::timestamp_t frame_position, const void *frame_data, size_t frame_size)
Start decoding a new frame.
PcmDecoder(const PcmFormat &pcm_format, const SampleSpec &sample_spec)
Initialize.
PCM format mapper. Convert between PCM formats.
Sample stream specification. Defines sample rate and channel layout.
Base class for non-copyable objects.
Audio frame decoder interface.
float sample_t
Audio sample.
uint32_t timestamp_t
Audio packet timestamp.