|
void | add_output (InputBufs input1, InputBufs input2, float center_width, float dimension, float adaption_rate, bool=false) |
|
void | block_decode (InputBufs input1, InputBufs input2, OutputBufs output, float center_width, float dimension, float adaption_rate) |
|
void | apply_filter (cfloat *signal, const float *flt, float *target) |
| Filter the complex source signal in the frequency domain and add it to the time domain target signal. More...
|
|
|
static cfloat | polar (float a, float p) |
|
static float | amplitude (AVComplexFloat z) |
|
static float | phase (AVComplexFloat z) |
|
static float | clamp_unit_mag (float x) |
| Clamp the input to the interval [-1, 1], i.e. clamp the magnitude to the unit interval [0, 1]. More...
|
|
static double | get_yfs (double ampDiff, double phaseDiff) |
|
static double | get_xfs (double ampDiff, double yfs) |
|
|
static constexpr float | kScale {1.0F} |
|
Definition at line 44 of file freesurround_decoder.cpp.
◆ Impl()
fsurround_decoder::Impl::Impl |
( |
unsigned |
blocksize = 8192 | ) |
|
|
inlineexplicit |
◆ ~Impl()
fsurround_decoder::Impl::~Impl |
( |
| ) |
|
|
inline |
◆ getInputBuffers()
float** fsurround_decoder::Impl::getInputBuffers |
( |
| ) |
|
|
inline |
◆ getOutputBuffers()
float** fsurround_decoder::Impl::getOutputBuffers |
( |
| ) |
|
|
inline |
◆ decode()
void fsurround_decoder::Impl::decode |
( |
float |
center_width, |
|
|
float |
dimension, |
|
|
float |
adaption_rate |
|
) |
| |
|
inline |
◆ flush()
void fsurround_decoder::Impl::flush |
( |
| ) |
|
|
inline |
◆ sample_rate()
void fsurround_decoder::Impl::sample_rate |
( |
unsigned int |
srate | ) |
|
|
inline |
◆ surround_coefficients()
void fsurround_decoder::Impl::surround_coefficients |
( |
float |
a, |
|
|
float |
b |
|
) |
| |
|
inline |
◆ phase_mode()
void fsurround_decoder::Impl::phase_mode |
( |
unsigned |
mode | ) |
|
|
inline |
◆ steering_mode()
void fsurround_decoder::Impl::steering_mode |
( |
bool |
mode | ) |
|
|
inline |
◆ separation()
void fsurround_decoder::Impl::separation |
( |
float |
front, |
|
|
float |
rear |
|
) |
| |
|
inline |
◆ polar()
static cfloat fsurround_decoder::Impl::polar |
( |
float |
a, |
|
|
float |
p |
|
) |
| |
|
inlinestaticprivate |
◆ amplitude()
static float fsurround_decoder::Impl::amplitude |
( |
AVComplexFloat |
z | ) |
|
|
inlinestaticprivate |
◆ phase()
static float fsurround_decoder::Impl::phase |
( |
AVComplexFloat |
z | ) |
|
|
inlinestaticprivate |
◆ clamp_unit_mag()
static float fsurround_decoder::Impl::clamp_unit_mag |
( |
float |
x | ) |
|
|
inlinestaticprivate |
◆ add_output()
void fsurround_decoder::Impl::add_output |
( |
InputBufs |
input1, |
|
|
InputBufs |
input2, |
|
|
float |
center_width, |
|
|
float |
dimension, |
|
|
float |
adaption_rate, |
|
|
bool |
= false |
|
) |
| |
|
inlineprivate |
◆ block_decode()
void fsurround_decoder::Impl::block_decode |
( |
InputBufs |
input1, |
|
|
InputBufs |
input2, |
|
|
OutputBufs |
output, |
|
|
float |
center_width, |
|
|
float |
dimension, |
|
|
float |
adaption_rate |
|
) |
| |
|
inlineprivate |
◆ get_yfs()
static double fsurround_decoder::Impl::get_yfs |
( |
double |
ampDiff, |
|
|
double |
phaseDiff |
|
) |
| |
|
inlinestaticprivate |
◆ get_xfs()
static double fsurround_decoder::Impl::get_xfs |
( |
double |
ampDiff, |
|
|
double |
yfs |
|
) |
| |
|
inlinestaticprivate |
◆ apply_filter()
void fsurround_decoder::Impl::apply_filter |
( |
cfloat * |
signal, |
|
|
const float * |
flt, |
|
|
float * |
target |
|
) |
| |
|
inlineprivate |
Filter the complex source signal in the frequency domain and add it to the time domain target signal.
- Parameters
-
[in] | signal | The signal, in the frequency domain, to be filtered. |
[in] | flt | The filter, in the frequency domain, to be applied. |
[out] | target | The signal, in the time domain, to which the filtered signal is added |
Definition at line 393 of file freesurround_decoder.cpp.
Referenced by block_decode().
◆ m_n
size_t fsurround_decoder::Impl::m_n |
|
private |
◆ m_halfN
size_t fsurround_decoder::Impl::m_halfN |
|
private |
◆ kScale
constexpr float fsurround_decoder::Impl::kScale {1.0F} |
|
staticconstexprprivate |
◆ m_fftContext
AVTXContext* fsurround_decoder::Impl::m_fftContext {nullptr} |
|
private |
◆ m_fft
av_tx_fn fsurround_decoder::Impl::m_fft {nullptr} |
|
private |
◆ m_ifftContext
AVTXContext* fsurround_decoder::Impl::m_ifftContext {nullptr} |
|
private |
◆ m_ifft
av_tx_fn fsurround_decoder::Impl::m_ifft {nullptr} |
|
private |
◆ m_dftL
AVComplexFloat* fsurround_decoder::Impl::m_dftL {nullptr} |
|
private |
◆ m_dftR
AVComplexFloat* fsurround_decoder::Impl::m_dftR {nullptr} |
|
private |
◆ m_src
AVComplexFloat* fsurround_decoder::Impl::m_src {nullptr} |
|
private |
◆ m_frontL
std::vector<cfloat> fsurround_decoder::Impl::m_frontL |
|
private |
◆ m_frontR
std::vector<cfloat> fsurround_decoder::Impl::m_frontR |
|
private |
◆ m_avg
std::vector<cfloat> fsurround_decoder::Impl::m_avg |
|
private |
◆ m_surL
std::vector<cfloat> fsurround_decoder::Impl::m_surL |
|
private |
◆ m_surR
std::vector<cfloat> fsurround_decoder::Impl::m_surR |
|
private |
◆ m_trueavg
std::vector<cfloat> fsurround_decoder::Impl::m_trueavg |
|
private |
◆ m_xFs
std::vector<float> fsurround_decoder::Impl::m_xFs |
|
private |
◆ m_yFs
std::vector<float> fsurround_decoder::Impl::m_yFs |
|
private |
◆ m_wnd
std::vector<float> fsurround_decoder::Impl::m_wnd |
|
private |
◆ m_filter
std::array<std::vector<float>,6> fsurround_decoder::Impl::m_filter |
|
private |
◆ m_inbuf
std::array<std::vector<float>,2> fsurround_decoder::Impl::m_inbuf |
|
private |
◆ m_outbuf
std::array<std::vector<float>,6> fsurround_decoder::Impl::m_outbuf |
|
private |
◆ m_surroundHigh
float fsurround_decoder::Impl::m_surroundHigh {0.0F} |
|
private |
◆ m_surroundLow
float fsurround_decoder::Impl::m_surroundLow {0.0F} |
|
private |
◆ m_surroundBalance
float fsurround_decoder::Impl::m_surroundBalance {0.0F} |
|
private |
◆ m_surroundLevel
float fsurround_decoder::Impl::m_surroundLevel {0.0F} |
|
private |
◆ m_phaseOffsetL
float fsurround_decoder::Impl::m_phaseOffsetL {0.0F} |
|
private |
◆ m_phaseOffsetR
float fsurround_decoder::Impl::m_phaseOffsetR {0.0F} |
|
private |
◆ m_frontSeparation
float fsurround_decoder::Impl::m_frontSeparation {0.0F} |
|
private |
◆ m_rearSeparation
float fsurround_decoder::Impl::m_rearSeparation {0.0F} |
|
private |
◆ m_linearSteering
bool fsurround_decoder::Impl::m_linearSteering {false} |
|
private |
◆ m_a
cfloat fsurround_decoder::Impl::m_a |
|
private |
◆ m_b
cfloat fsurround_decoder::Impl::m_b |
|
private |
◆ m_c
cfloat fsurround_decoder::Impl::m_c |
|
private |
◆ m_d
cfloat fsurround_decoder::Impl::m_d |
|
private |
◆ m_e
cfloat fsurround_decoder::Impl::m_e |
|
private |
◆ m_f
cfloat fsurround_decoder::Impl::m_f |
|
private |
◆ m_g
cfloat fsurround_decoder::Impl::m_g |
|
private |
◆ m_h
cfloat fsurround_decoder::Impl::m_h |
|
private |
◆ m_currentBuf
int fsurround_decoder::Impl::m_currentBuf |
|
private |
◆ m_inbufs
InputBufs fsurround_decoder::Impl::m_inbufs {} |
|
private |
◆ m_outbufs
The documentation for this class was generated from the following file: