AudioStreamInfo¶
primo::codecs::AudioStreamInfo
-
class AudioStreamInfo : public primo::codecs::StreamInfo¶
AudioStreamInfo describes an elementary audio stream.
Public Functions
-
virtual int32_t pcmFlags() const = 0¶
Returns the audio format flags which describe various properties of the audio stream.
- Returns:
A combination of flags defined in PcmFlags::Enum.
-
virtual bool_t setPcmFlags(int32_t flags) = 0¶
Sets the audio format flags which describe various properties of the audio stream.
- Parameters:
flags – A combination of flags defined in PcmFlags::Enum.
- Returns:
TRUE if the flags are successfully set, otherwise FALSE.
-
virtual int32_t channels() const = 0¶
Returns the number of audio channels.
- Returns:
Number of channels.
-
virtual bool_t setChannels(int32_t numChannels) = 0¶
Sets the number of audio channels.
- Parameters:
numChannels – number of channels.
- Returns:
TRUE if the number of channels is successfully set, otherwise FALSE.
-
virtual int32_t channelLayout() const = 0¶
Returns the channel layout which defines the mapping between channels and speakers.
- Returns:
A combination of flags defined in the AudioChannelFlags::Enum.
-
virtual bool_t setChannelLayout(int32_t channelLayout) = 0¶
Sets the channel layout which defines the mapping between channels and speakers.
- Parameters:
channelLayout – A combination of flags defined in the AudioChannelFlags::Enum.
- Returns:
TRUE if the channel layout is successfully set, otherwise FALSE.
-
virtual int32_t sampleRate() const = 0¶
Returns the audio sample rate.
- Returns:
sample rate (Hz)
-
virtual bool_t setSampleRate(int32_t sampleRate) = 0¶
Sets the audio sample rate.
- Parameters:
sampleRate – sample rate (Hz)
- Returns:
TRUE if the sample rate is successfully set, otherwise FALSE.
-
virtual int32_t bitsPerSample() const = 0¶
Returns the number of bits per sample (sample resolution).
Normally bits per sample is not defined for a compressed audio stream and is 0. However it is possible for a compressed audio stream to return a positive value as an indication of audio quality. It can also designate the bits per sample of the LPCM stream once the compressed stream is decoded.
- Returns:
bits per sample (usually 8, 16, 24 or 32).
-
virtual bool_t setBitsPerSample(int32_t bitsPerSample) = 0¶
Sets the number of bits per sample (sample resolution).
- Parameters:
bitsPerSample – (usually 8, 16, 24 or 32)
- Returns:
TRUE if the number of bits per sample is successfully set, otherwise FALSE.
-
virtual int32_t bytesPerFrame() const = 0¶
Returns the number of bytes occupied by an audio frame (smallest discrete unit).
A frame is the smallest unit in an audio stream. It may contain one or more samples. Depending on the audio stream type the frame may contain fixed or variable number of samples.
For compressed streams the frame size is variable even if there are fixed number of samples in each frame. In this case bytes per frame is 0.
For an LCPM stream the frame size is constant. In this case bytes per frame is a positive value. Normally for interleaved LPCM streams the following is true:
bytesPerFrame() / channels() == (sample size in bytes)
The valid bits in a sample are given by bitsPerSample() and they are aligned towards the hi-order byte.
- Returns:
bytes per frame.
- Returns:
TRUE if bytes per sample is successfully set, otherwise FALSE.
-
virtual bool_t setBytesPerFrame(int32_t bytesPerFrame) = 0¶
Sets the number of bytes occupied by an audio frame (smallest discrete unit).
- Parameters:
bytesPerFrame – [in] Specifies how many bytes are occupied by each audio frame. Normally it is valid (greater than 0) for LPCM streams and invalid (0) for compressed audio streams.
- Returns:
TRUE if the number of bytes per frame is successfully set, otherwise FALSE.
-
virtual bool_t copyTo(AudioStreamInfo *destination) const = 0¶
Copies the state of the current object to a destination object of the same type.
The reference count of the source and the destination is not modified.
- Parameters:
destination – [out] A pointer to the destination object
- Returns:
TRUE if the object state is copied, FALSE otherwise.
-
virtual AudioStreamInfo *clone() const = 0¶
Creates a copy of this object.
See also
- Returns:
A new AudioStreamInfo. The caller is responsible for releasing the new object when it is not needed anymore.
-
virtual int32_t pcmFlags() const = 0¶