ResidualVM logo ResidualVM website - Forums - Contact us BuildBot - Doxygen - Wiki curved edge

rate_arm.cpp File Reference

#include "audio/audiostream.h"
#include "audio/rate.h"
#include "audio/mixer.h"
#include "common/util.h"
#include "common/textconsole.h"
Include dependency graph for rate_arm.cpp:

Go to the source code of this file.

Classes

struct  Audio::SimpleRateDetails
 Audio rate converter based on simple resampling. More...
class  Audio::SimpleRateConverter< stereo, reverseStereo >
 Audio rate converter based on simple resampling. More...
struct  Audio::LinearRateDetails
 Audio rate converter based on simple linear Interpolation. More...
class  Audio::LinearRateConverter< stereo, reverseStereo >
 Audio rate converter based on simple linear Interpolation. More...
class  Audio::CopyRateConverter< stereo, reverseStereo >
 Simple audio rate converter for the case that the inrate equals the outrate. More...

Namespaces

namespace  Audio
 

Internal interfaces to the ADPCM decoders.


Defines

#define FRAC_BITS   16
 The precision of the fractional computations used by the rate converter.
#define FRAC_ONE   (1 << FRAC_BITS)
#define INTERMEDIATE_BUFFER_SIZE   512
 The size of the intermediate input cache.
#define ARM_SimpleRate_M   _ARM_SimpleRate_M
#define ARM_SimpleRate_S   _ARM_SimpleRate_S
#define ARM_SimpleRate_R   _ARM_SimpleRate_R
#define ARM_LinearRate_M   _ARM_LinearRate_M
#define ARM_LinearRate_S   _ARM_LinearRate_S
#define ARM_LinearRate_R   _ARM_LinearRate_R
#define ARM_CopyRate_M   _ARM_CopyRate_M
 Simple audio rate converter for the case that the inrate equals the outrate.
#define ARM_CopyRate_S   _ARM_CopyRate_S
#define ARM_CopyRate_R   _ARM_CopyRate_R

Enumerations

enum  { Audio::FRAC_BITS_LOW = 15, Audio::FRAC_ONE_LOW = (1L << FRAC_BITS_LOW), Audio::FRAC_HALF_LOW = (1L << (FRAC_BITS_LOW-1)) }
 

The default fractional type in frac.h (with 16 fractional bits) limits the rate conversion code to 65536Hz audio: we need to able to handle 96kHz audio, so we use fewer fractional bits in this code.

More...

Functions

st_sample_t * Audio::ARM_SimpleRate_M (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), SimpleRateDetails *sr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
st_sample_t * Audio::ARM_SimpleRate_S (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), SimpleRateDetails *sr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
st_sample_t * Audio::ARM_SimpleRate_R (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), SimpleRateDetails *sr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
int Audio::SimpleRate_readFudge (Audio::AudioStream &input, int16 *a, int b)
st_sample_t * Audio::ARM_LinearRate_M (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), LinearRateDetails *lr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
st_sample_t * Audio::ARM_LinearRate_S (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), LinearRateDetails *lr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
st_sample_t * Audio::ARM_LinearRate_R (AudioStream &input, int(*fn)(Audio::AudioStream &, int16 *, int), LinearRateDetails *lr, st_sample_t *obuf, st_size_t osamp, st_volume_t vol_l, st_volume_t vol_r)
st_sample_t * Audio::ARM_CopyRate_M (st_size_t len, st_sample_t *obuf, st_volume_t vol_l, st_volume_t vol_r, st_sample_t *_buffer)
st_sample_t * Audio::ARM_CopyRate_S (st_size_t len, st_sample_t *obuf, st_volume_t vol_l, st_volume_t vol_r, st_sample_t *_buffer)
st_sample_t * Audio::ARM_CopyRate_R (st_size_t len, st_sample_t *obuf, st_volume_t vol_l, st_volume_t vol_r, st_sample_t *_buffer)
RateConverter * Audio::makeRateConverter (st_rate_t inrate, st_rate_t outrate, bool stereo, bool reverseStereo)
 Create and return a RateConverter object for the specified input and output rates.

Define Documentation

#define ARM_CopyRate_M   _ARM_CopyRate_M

Simple audio rate converter for the case that the inrate equals the outrate.

Definition at line 364 of file rate_arm.cpp.

#define ARM_CopyRate_R   _ARM_CopyRate_R

Definition at line 366 of file rate_arm.cpp.

#define ARM_CopyRate_S   _ARM_CopyRate_S

Definition at line 365 of file rate_arm.cpp.

#define ARM_LinearRate_M   _ARM_LinearRate_M

Definition at line 242 of file rate_arm.cpp.

#define ARM_LinearRate_R   _ARM_LinearRate_R

Definition at line 244 of file rate_arm.cpp.

#define ARM_LinearRate_S   _ARM_LinearRate_S

Definition at line 243 of file rate_arm.cpp.

#define ARM_SimpleRate_M   _ARM_SimpleRate_M

Definition at line 141 of file rate_arm.cpp.

#define ARM_SimpleRate_R   _ARM_SimpleRate_R

Definition at line 143 of file rate_arm.cpp.

#define ARM_SimpleRate_S   _ARM_SimpleRate_S

Definition at line 142 of file rate_arm.cpp.

#define FRAC_BITS   16

The precision of the fractional computations used by the rate converter.

Normally you should never have to modify this value. This stuff is defined in common/frac.h, but we redefine it here as the ARM routine we call doesn't respect those definitions.

Definition at line 60 of file rate_arm.cpp.

#define FRAC_ONE   (1 << FRAC_BITS)

Definition at line 61 of file rate_arm.cpp.

#define INTERMEDIATE_BUFFER_SIZE   512

The size of the intermediate input cache.

Bigger values may increase performance, but only until some point (depends largely on cache size, target processor and various other factors), at which it will decrease again.

Definition at line 69 of file rate_arm.cpp.



Generated on Sat Oct 19 2019 05:01:29 for ResidualVM by doxygen 1.7.1
curved edge   curved edge