Blender V2.61 - r43446
Public Member Functions

AUD_SRCResampleReader Class Reference

#include <AUD_SRCResampleReader.h>

Inheritance diagram for AUD_SRCResampleReader:
Inheritance graph
[legend]

List of all members.

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)

Detailed Description

This resampling reader uses libsamplerate for resampling.

Definition at line 41 of file AUD_SRCResampleReader.h.


Constructor & Destructor Documentation

AUD_SRCResampleReader::AUD_SRCResampleReader ( AUD_Reference< AUD_IReader reader,
AUD_Specs  specs 
)

Creates a resampling reader.

Parameters:
readerThe reader to mix.
specsThe target specification.
Exceptions:
AUD_ExceptionThrown 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.


Member Function Documentation

long AUD_SRCResampleReader::doCallback ( float **  data)

The callback function for SRC.

Warning:
Do not call!
Parameters:
dataThe pointer to the float data.
Returns:
The count of samples in 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.

Returns:
The length as sample count. May be negative if unknown.

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.

Returns:
The current position in the source. A negative value indicates that the position is unknown.
Warning:
The value returned doesn't always have to be correct for readers, especially after seeking.

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.

Returns:
The AUD_Specs structure.

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.

Parameters:
[in,out]lengthThe 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]eosEnd of stream, whether the end is reached or not.
[in]bufferThe 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.

Parameters:
positionThe 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.
Warning:
This may work or not, depending on the actual 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.


The documentation for this class was generated from the following files: