decoder_impl Class Reference

List of all members.

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 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
FFTContext * fftContextForward
FFTContext * fftContextReverse
FFTSample * lt
FFTSample * rt
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 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

Detailed Description

Definition at line 47 of file el_processor.cpp.


Constructor & Destructor Documentation

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

Definition at line 51 of file el_processor.cpp.

decoder_impl::~decoder_impl (  )  [inline]

Definition at line 108 of file el_processor.cpp.


Member Function Documentation

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

Definition at line 133 of file el_processor.cpp.

Referenced by fsurround_decoder::getInputBuffers().

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

Definition at line 140 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 155 of file el_processor.cpp.

Referenced by fsurround_decoder::decode().

void decoder_impl::flush (  )  [inline]

Definition at line 168 of file el_processor.cpp.

Referenced by fsurround_decoder::flush().

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

Definition at line 178 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 190 of file el_processor.cpp.

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

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

Definition at line 203 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 210 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 213 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 220 of file el_processor.cpp.

Referenced by block_decode().

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

Definition at line 221 of file el_processor.cpp.

Referenced by block_decode().

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

Definition at line 222 of file el_processor.cpp.

Referenced by block_decode().

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

Definition at line 223 of file el_processor.cpp.

Referenced by get_yfs().

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

Definition at line 225 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 226 of file el_processor.cpp.

Referenced by block_decode(), and clamp().

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

Definition at line 227 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 230 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 237 of file el_processor.cpp.

Referenced by add_output().

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

Definition at line 381 of file el_processor.cpp.

Referenced by block_decode().

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

Definition at line 394 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 428 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 484 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 503 of file el_processor.cpp.


Friends And Related Function Documentation

friend class fsurround_decoder [friend]

Definition at line 554 of file el_processor.cpp.


Member Data Documentation

unsigned int decoder_impl::N [private]

Definition at line 521 of file el_processor.cpp.

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

unsigned int decoder_impl::halfN [private]
float* decoder_impl::lt [private]

Definition at line 525 of file el_processor.cpp.

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

float * decoder_impl::rt [private]

Definition at line 525 of file el_processor.cpp.

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

float * decoder_impl::dst [private]

Definition at line 525 of file el_processor.cpp.

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

fftwf_complex* decoder_impl::dftL [private]

Definition at line 526 of file el_processor.cpp.

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

fftwf_complex * decoder_impl::dftR [private]

Definition at line 526 of file el_processor.cpp.

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

fftwf_complex * decoder_impl::src [private]

Definition at line 526 of file el_processor.cpp.

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

fftwf_plan decoder_impl::loadL [private]

Definition at line 527 of file el_processor.cpp.

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

fftwf_plan decoder_impl::loadR [private]

Definition at line 527 of file el_processor.cpp.

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

fftwf_plan decoder_impl::store [private]

Definition at line 527 of file el_processor.cpp.

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

FFTContext* decoder_impl::fftContextForward [private]

Definition at line 529 of file el_processor.cpp.

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

FFTContext * decoder_impl::fftContextReverse [private]

Definition at line 529 of file el_processor.cpp.

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

FFTSample* decoder_impl::lt [private]

Definition at line 530 of file el_processor.cpp.

FFTSample * decoder_impl::rt [private]

Definition at line 530 of file el_processor.cpp.

Definition at line 531 of file el_processor.cpp.

Definition at line 531 of file el_processor.cpp.

Definition at line 531 of file el_processor.cpp.

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

Definition at line 534 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 534 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 534 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 534 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 534 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 535 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 536 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 536 of file el_processor.cpp.

Referenced by block_decode(), and decoder_impl().

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

Definition at line 537 of file el_processor.cpp.

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

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

Definition at line 538 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 539 of file el_processor.cpp.

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

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

Definition at line 540 of file el_processor.cpp.

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

float decoder_impl::surround_high [private]

Definition at line 542 of file el_processor.cpp.

Referenced by surround_coefficients().

float decoder_impl::surround_low [private]

Definition at line 542 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 543 of file el_processor.cpp.

Referenced by block_decode(), and surround_coefficients().

Definition at line 544 of file el_processor.cpp.

Referenced by block_decode(), and surround_coefficients().

float decoder_impl::phase_offsetL [private]

Definition at line 545 of file el_processor.cpp.

Referenced by block_decode(), and phase_mode().

float decoder_impl::phase_offsetR [private]

Definition at line 545 of file el_processor.cpp.

Referenced by block_decode(), and phase_mode().

Definition at line 546 of file el_processor.cpp.

Referenced by block_decode(), and separation().

Definition at line 547 of file el_processor.cpp.

Referenced by block_decode(), and separation().

Definition at line 548 of file el_processor.cpp.

Referenced by block_decode(), and steering_mode().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

Definition at line 549 of file el_processor.cpp.

Referenced by surround_coefficients().

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

Definition at line 551 of file el_processor.cpp.

Referenced by decoder_impl(), and getInputBuffers().

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

Definition at line 552 of file el_processor.cpp.

Referenced by decoder_impl(), and getOutputBuffers().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends
Generated on Mon May 28 06:41:59 2012 for MythTV by  doxygen 1.6.3