Blender V2.61 - r43446
|
#include <AUD_SRCResampleReader.h>
Public Member Functions | |
AUD_SRCResampleReader (AUD_Reference< AUD_IReader > reader, AUD_Specs specs) | |
~AUD_SRCResampleReader () | |
long | doCallback (float **data) |
virtual void | seek (int position) |
virtual int | getLength () const |
virtual int | getPosition () const |
virtual AUD_Specs | getSpecs () const |
virtual void | read (int &length, bool &eos, sample_t *buffer) |
This resampling reader uses libsamplerate for resampling.
Definition at line 41 of file AUD_SRCResampleReader.h.
AUD_SRCResampleReader::AUD_SRCResampleReader | ( | AUD_Reference< AUD_IReader > | reader, |
AUD_Specs | specs | ||
) |
Creates a resampling reader.
reader | The reader to mix. |
specs | The target specification. |
AUD_Exception | Thrown if the source specification cannot be resampled to the target specification. |
Definition at line 44 of file AUD_SRCResampleReader.cpp.
References AUD_ERROR_SRC, AUD_THROW, error(), src_callback(), and state_error.
AUD_SRCResampleReader::~AUD_SRCResampleReader | ( | ) |
Destroys the reader.
Definition at line 64 of file AUD_SRCResampleReader.cpp.
long AUD_SRCResampleReader::doCallback | ( | float ** | data | ) |
The callback function for SRC.
data | The pointer to the float data. |
Definition at line 69 of file AUD_SRCResampleReader.cpp.
References AUD_SAMPLE_SIZE, AUD_Specs::channels, AUD_Buffer::getBuffer(), AUD_Buffer::getSize(), length(), AUD_ResampleReader::m_rate, AUD_EffectReader::m_reader, and AUD_Specs::rate.
int AUD_SRCResampleReader::getLength | ( | ) | const [virtual] |
Returns an approximated length of the source in samples.
Reimplemented from AUD_EffectReader.
Definition at line 92 of file AUD_SRCResampleReader.cpp.
References AUD_ResampleReader::m_rate, AUD_EffectReader::m_reader, and AUD_Specs::rate.
int AUD_SRCResampleReader::getPosition | ( | ) | const [virtual] |
Returns the position of the source as a sample count value.
Reimplemented from AUD_EffectReader.
Definition at line 99 of file AUD_SRCResampleReader.cpp.
AUD_Specs AUD_SRCResampleReader::getSpecs | ( | ) | const [virtual] |
Returns the specification of the reader.
Reimplemented from AUD_EffectReader.
Definition at line 104 of file AUD_SRCResampleReader.cpp.
References AUD_ResampleReader::m_rate, AUD_EffectReader::m_reader, and AUD_Specs::rate.
void AUD_SRCResampleReader::read | ( | int & | length, |
bool & | eos, | ||
sample_t * | buffer | ||
) | [virtual] |
Request to read the next length samples out of the source. The buffer supplied has the needed size.
[in,out] | length | The count of samples that should be read. Shall contain the real count of samples after reading, in case there were only fewer samples available. A smaller value also indicates the end of the reader. |
[out] | eos | End of stream, whether the end is reached or not. |
[in] | buffer | The pointer to the buffer to read into. |
Reimplemented from AUD_EffectReader.
Definition at line 111 of file AUD_SRCResampleReader.cpp.
References AUD_Buffer::assureSize(), AUD_ERROR_SRC, AUD_SAMPLE_SIZE, AUD_THROW, AUD_Specs::channels, error(), length(), AUD_ResampleReader::m_rate, AUD_EffectReader::m_reader, AUD_Specs::rate, size(), src_callback(), and state_error.
void AUD_SRCResampleReader::seek | ( | int | position | ) | [virtual] |
Seeks to a specific position in the source.
position | The position to seek for measured in samples. To get from a given time to the samples you simply have to multiply the time value in seconds with the sample rate of the reader. |
Reimplemented from AUD_EffectReader.
Definition at line 83 of file AUD_SRCResampleReader.cpp.
References AUD_ResampleReader::m_rate, AUD_EffectReader::m_reader, and AUD_Specs::rate.