decoder_impl Class Reference

List of all members.


Detailed Description

Definition at line 56 of file el_processor.cpp.


Public Member Functions

 decoder_impl (unsigned blocksize=8192)
 ~decoder_impl ()
float ** getInputBuffers ()
float ** getOutputBuffers ()
void decode (float center_width, float dimension, float adaption_rate)
void flush ()
void sample_rate (unsigned int srate)
void surround_coefficients (float a, float b)
void surround_gain (float gain)
void phase_mode (unsigned mode)
void steering_mode (bool mode)
void separation (float front, float rear)

Private Member Functions

void add_output (float *input1[2], float *input2[2], float center_width, float dimension, float adaption_rate, bool result=false)
void block_decode (float *input1[2], float *input2[2], float *output[6], float center_width, float dimension, float adaption_rate)
double get_yfs (double ampDiff, double phaseDiff)
double get_xfs (double ampDiff, double yfs)
void apply_filter (cfloat *signal, float *flt, float *target)
void ff_fft_permuteRC (FFTContext *s, FFTSample *r, FFTComplex *z)
 * Do the permutation needed BEFORE calling ff_fft_calc() special for freesurround that also copies
void ff_fft_permuteCR (FFTContext *s, FFTComplex *z, FFTSample *r)
 * Do the permutation needed BEFORE calling ff_fft_calc() special for freesurround that also copies and discards im component as it should be 0

Static Private Member Functions

static float amplitude (const float cf[2])
static float phase (const float cf[2])
static cfloat polar (float a, float p)
static float sqr (float x)
static float min (float a, float b)
static float max (float a, float b)
static float clamp (float x)

Private Attributes

unsigned int N
unsigned int halfN
float * lt
float * rt
float * dst
fftwf_complex * dftL
fftwf_complex * dftR
fftwf_complex * src
fftwf_plan loadL
fftwf_plan loadR
fftwf_plan store
FFTContextfftContextForward
FFTContextfftContextReverse
FFTSamplelt
FFTSamplert
FFTComplexArraydftL
FFTComplexArraydftR
FFTComplexArraysrc
std::vector< cfloatfrontL
std::vector< cfloatfrontR
std::vector< cfloatavg
std::vector< cfloatsurL
std::vector< cfloatsurR
std::vector< cfloattrueavg
std::vector< float > xfs
std::vector< float > yfs
std::vector< float > wnd
std::vector< float > filter [6]
std::vector< float > inbuf [2]
std::vector< float > outbuf [6]
float surround_high
float surround_low
float surround_balance
float surround_level
float master_gain
float phase_offsetL
float phase_offsetR
float front_separation
float rear_separation
bool linear_steering
cfloat A
cfloat B
cfloat C
cfloat D
cfloat E
cfloat F
cfloat G
cfloat H
int current_buf
float * inbufs [2]
float * outbufs [6]

Friends

class fsurround_decoder

Constructor & Destructor Documentation

decoder_impl::decoder_impl ( unsigned  blocksize = 8192  )  [inline]

Definition at line 60 of file el_processor.cpp.

decoder_impl::~decoder_impl (  )  [inline]

Definition at line 123 of file el_processor.cpp.


Member Function Documentation

float** decoder_impl::getInputBuffers (  )  [inline]

Definition at line 148 of file el_processor.cpp.

Referenced by fsurround_decoder::getInputBuffers().

float** decoder_impl::getOutputBuffers (  )  [inline]

Definition at line 155 of file el_processor.cpp.

Referenced by fsurround_decoder::getOutputBuffers().

void decoder_impl::decode ( float  center_width,
float  dimension,
float  adaption_rate 
) [inline]

Definition at line 170 of file el_processor.cpp.

Referenced by fsurround_decoder::decode().

void decoder_impl::flush (  )  [inline]

Definition at line 183 of file el_processor.cpp.

Referenced by fsurround_decoder::flush().

void decoder_impl::sample_rate ( unsigned int  srate  )  [inline]

Definition at line 193 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::sample_rate().

void decoder_impl::surround_coefficients ( float  a,
float  b 
) [inline]

Definition at line 205 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::surround_coefficients().

void decoder_impl::surround_gain ( float  gain  )  [inline]

Definition at line 217 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::gain().

void decoder_impl::phase_mode ( unsigned  mode  )  [inline]

Definition at line 224 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::phase_mode().

void decoder_impl::steering_mode ( bool  mode  )  [inline]

Definition at line 231 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::steering_mode().

void decoder_impl::separation ( float  front,
float  rear 
) [inline]

Definition at line 234 of file el_processor.cpp.

Referenced by decoder_impl(), and fsurround_decoder::separation().

static float decoder_impl::amplitude ( const float  cf[2]  )  [inline, static, private]

Definition at line 241 of file el_processor.cpp.

Referenced by block_decode().

static float decoder_impl::phase ( const float  cf[2]  )  [inline, static, private]

Definition at line 242 of file el_processor.cpp.

Referenced by block_decode().

static cfloat decoder_impl::polar ( float  a,
float  p 
) [inline, static, private]

Definition at line 243 of file el_processor.cpp.

Referenced by block_decode().

static float decoder_impl::sqr ( float  x  )  [inline, static, private]

Definition at line 244 of file el_processor.cpp.

Referenced by get_yfs().

static float decoder_impl::min ( float  a,
float  b 
) [inline, static, private]

Definition at line 246 of file el_processor.cpp.

Referenced by block_decode(), and clamp().

static float decoder_impl::max ( float  a,
float  b 
) [inline, static, private]

Definition at line 247 of file el_processor.cpp.

Referenced by block_decode(), and clamp().

static float decoder_impl::clamp ( float  x  )  [inline, static, private]

Definition at line 248 of file el_processor.cpp.

Referenced by block_decode().

void decoder_impl::add_output ( float *  input1[2],
float *  input2[2],
float  center_width,
float  dimension,
float  adaption_rate,
bool  result = false 
) [inline, private]

Definition at line 251 of file el_processor.cpp.

Referenced by decode().

void decoder_impl::block_decode ( float *  input1[2],
float *  input2[2],
float *  output[6],
float  center_width,
float  dimension,
float  adaption_rate 
) [inline, private]

Definition at line 258 of file el_processor.cpp.

Referenced by add_output().

double decoder_impl::get_yfs ( double  ampDiff,
double  phaseDiff 
) [inline, private]

Definition at line 436 of file el_processor.cpp.

Referenced by block_decode().

double decoder_impl::get_xfs ( double  ampDiff,
double  yfs 
) [inline, private]

Definition at line 449 of file el_processor.cpp.

Referenced by block_decode().

void decoder_impl::apply_filter ( cfloat signal,
float *  flt,
float *  target 
) [inline, private]

Definition at line 483 of file el_processor.cpp.

Referenced by block_decode().

void decoder_impl::ff_fft_permuteRC ( FFTContext s,
FFTSample r,
FFTComplex z 
) [inline, private]

* Do the permutation needed BEFORE calling ff_fft_calc() special for freesurround that also copies

Definition at line 539 of file el_processor.cpp.

Referenced by block_decode().

void decoder_impl::ff_fft_permuteCR ( FFTContext s,
FFTComplex z,
FFTSample r 
) [inline, private]

* Do the permutation needed BEFORE calling ff_fft_calc() special for freesurround that also copies and discards im component as it should be 0

Definition at line 558 of file el_processor.cpp.


Friends And Related Function Documentation

friend class fsurround_decoder [friend]

Definition at line 610 of file el_processor.cpp.


Member Data Documentation

unsigned int decoder_impl::N [private]

Definition at line 576 of file el_processor.cpp.

Referenced by apply_filter(), decoder_impl(), flush(), sample_rate(), and surround_gain().

unsigned int decoder_impl::halfN [private]

float* decoder_impl::lt [private]

Definition at line 580 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

float * decoder_impl::rt [private]

Definition at line 580 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

float * decoder_impl::dst [private]

Definition at line 580 of file el_processor.cpp.

Referenced by apply_filter(), decoder_impl(), and ~decoder_impl().

fftwf_complex* decoder_impl::dftL [private]

Definition at line 581 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

fftwf_complex * decoder_impl::dftR [private]

Definition at line 581 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

fftwf_complex * decoder_impl::src [private]

Definition at line 581 of file el_processor.cpp.

Referenced by apply_filter(), decoder_impl(), and ~decoder_impl().

fftwf_plan decoder_impl::loadL [private]

Definition at line 582 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

fftwf_plan decoder_impl::loadR [private]

Definition at line 582 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

fftwf_plan decoder_impl::store [private]

Definition at line 582 of file el_processor.cpp.

Referenced by apply_filter(), decoder_impl(), and ~decoder_impl().

Definition at line 584 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and ~decoder_impl().

Definition at line 584 of file el_processor.cpp.

Referenced by apply_filter(), decoder_impl(), and ~decoder_impl().

Definition at line 585 of file el_processor.cpp.

Definition at line 585 of file el_processor.cpp.

Definition at line 586 of file el_processor.cpp.

Definition at line 586 of file el_processor.cpp.

Definition at line 586 of file el_processor.cpp.

std::vector<cfloat> decoder_impl::frontL [private]

Definition at line 589 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<cfloat> decoder_impl::frontR [private]

Definition at line 589 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<cfloat> decoder_impl::avg [private]

Definition at line 589 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<cfloat> decoder_impl::surL [private]

Definition at line 589 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<cfloat> decoder_impl::surR [private]

Definition at line 589 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<cfloat> decoder_impl::trueavg [private]

Definition at line 590 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<float> decoder_impl::xfs [private]

Definition at line 591 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<float> decoder_impl::yfs [private]

Definition at line 591 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

std::vector<float> decoder_impl::wnd [private]

Definition at line 592 of file el_processor.cpp.

Referenced by apply_filter(), block_decode(), decoder_impl(), and surround_gain().

std::vector<float> decoder_impl::filter[6] [private]

Definition at line 593 of file el_processor.cpp.

Referenced by block_decode(), decoder_impl(), and sample_rate().

std::vector<float> decoder_impl::inbuf[2] [private]

Definition at line 594 of file el_processor.cpp.

Referenced by decode(), decoder_impl(), flush(), and getInputBuffers().

std::vector<float> decoder_impl::outbuf[6] [private]

Definition at line 595 of file el_processor.cpp.

Referenced by add_output(), decoder_impl(), flush(), and getOutputBuffers().

float decoder_impl::surround_high [private]

Definition at line 597 of file el_processor.cpp.

Referenced by surround_coefficients().

float decoder_impl::surround_low [private]

Definition at line 597 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 598 of file el_processor.cpp.

Referenced by block_decode(), and surround_coefficients().

Definition at line 599 of file el_processor.cpp.

Referenced by block_decode(), and surround_coefficients().

float decoder_impl::master_gain [private]

Definition at line 600 of file el_processor.cpp.

Referenced by surround_gain().

float decoder_impl::phase_offsetL [private]

Definition at line 601 of file el_processor.cpp.

Referenced by block_decode(), and phase_mode().

float decoder_impl::phase_offsetR [private]

Definition at line 601 of file el_processor.cpp.

Referenced by block_decode(), and phase_mode().

Definition at line 602 of file el_processor.cpp.

Referenced by block_decode(), and separation().

Definition at line 603 of file el_processor.cpp.

Referenced by block_decode(), and separation().

Definition at line 604 of file el_processor.cpp.

Referenced by block_decode(), and steering_mode().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 605 of file el_processor.cpp.

Referenced by surround_coefficients().

float* decoder_impl::inbufs[2] [private]

Definition at line 607 of file el_processor.cpp.

Referenced by getInputBuffers().

float* decoder_impl::outbufs[6] [private]

Definition at line 608 of file el_processor.cpp.

Referenced by getOutputBuffers().


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

Generated on Sat Dec 18 05:16:01 2010 for MythTV by  doxygen 1.5.5