Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

AudioResample< input_t, output_t > Class Template Reference

#include <frame.h>

Inheritance diagram for AudioResample< input_t, output_t >:

Inheritance graph
[legend]
Collaboration diagram for AudioResample< input_t, output_t >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 AudioResample (double rate)
virtual ~AudioResample ()
virtual void Resample (input_t *samples, double input_rate, int channels, int samples_this_frame)
void Resample (Frame &frame)
void SetOutputFrequency (double output_rate)
int GetOutputFrequency ()

Public Attributes

output_t output [BUFFER_LEN]
int size

Protected Attributes

double output_rate
input_t input [BUFFER_LEN]
int m_silentFrameCount

template<class input_t, class output_t>
class AudioResample< input_t, output_t >


Constructor & Destructor Documentation

template<class input_t, class output_t>
AudioResample< input_t, output_t >::AudioResample double  rate  )  [inline]
 

Definition at line 206 of file frame.h.

00206                                  : output_rate( rate ), m_silentFrameCount(0)
00207     { }

template<class input_t, class output_t>
virtual AudioResample< input_t, output_t >::~AudioResample  )  [inline, virtual]
 

Definition at line 208 of file frame.h.

00209     { }


Member Function Documentation

template<class input_t, class output_t>
int AudioResample< input_t, output_t >::GetOutputFrequency  )  [inline]
 

Definition at line 259 of file frame.h.

00260     {
00261         return this->output_rate;
00262     }

template<class input_t, class output_t>
void AudioResample< input_t, output_t >::Resample Frame frame  )  [inline]
 

Definition at line 212 of file frame.h.

00213     {
00214         //  cerr << "Resample -----------------" << endl;
00215         if ( output_rate != 0 )
00216         {
00217             if ( frame.ExtractAudio( input ) == 0 )
00218             {
00219                 size = frame.CalculateNumberSamples( int(output_rate), m_silentFrameCount++ );
00220                 size *= 2 * sizeof(output_t);
00221                 memset( output, 0, size );
00222                 return;
00223             }
00224 
00225             AudioInfo info;
00226             frame.GetAudioInfo( info );
00227             /*
00228             cerr << "Audio info: "
00229                  << "  dec-..->frequency: "
00230                  << info.frequency
00231                  << "  samples: "
00232                  << info.samples << endl;
00233             */
00234             if ( info.frequency && output_rate != info.frequency )
00235             {
00236                 Resample( input,
00237                       info.frequency,
00238                       info.channels,
00239                       info.samples );
00240             }
00241             else
00242             {
00243                 for (int i=0; i<info.channels*info.samples; i++)
00244                     output[i] = input[i];
00245 
00246                 size = info.channels*info.samples*sizeof(output_t);
00247             }
00248         }
00249         else
00250         {
00251             size = 0;
00252         }
00253         // cerr << "size: " << size << endl;
00254     }

template<class input_t, class output_t>
virtual void AudioResample< input_t, output_t >::Resample input_t *  samples,
double  input_rate,
int  channels,
int  samples_this_frame
[inline, virtual]
 

Reimplemented in InternalAudioResample< input_t, output_t >, and SrcAudioResample< input_t, output_t >.

Definition at line 210 of file frame.h.

Referenced by PageMagickAudioTransition::GetFrame(), PageMagickOverwrite::GetFrame(), FrameDisplayer::PutSound(), and AudioResample< int16_ne_t, int16_ne_t >::Resample().

00211     { }

template<class input_t, class output_t>
void AudioResample< input_t, output_t >::SetOutputFrequency double  output_rate  )  [inline]
 

Definition at line 255 of file frame.h.

Referenced by WavSelect::WavStart().

00256     {
00257         this->output_rate = output_rate;
00258     }


Member Data Documentation

template<class input_t, class output_t>
input_t AudioResample< input_t, output_t >::input[BUFFER_LEN] [protected]
 

Definition at line 202 of file frame.h.

Referenced by AudioResample< int16_ne_t, int16_ne_t >::Resample().

template<class input_t, class output_t>
int AudioResample< input_t, output_t >::m_silentFrameCount [protected]
 

Definition at line 203 of file frame.h.

Referenced by AudioResample< int16_ne_t, int16_ne_t >::Resample().

template<class input_t, class output_t>
output_t AudioResample< input_t, output_t >::output[BUFFER_LEN]
 

Definition at line 264 of file frame.h.

Referenced by PageMagickAudioTransition::GetFrame(), PageMagickOverwrite::GetFrame(), FrameDisplayer::PutSound(), SrcAudioResample< input_t, output_t >::Resample(), InternalAudioResample< input_t, output_t >::Resample(), and AudioResample< int16_ne_t, int16_ne_t >::Resample().

template<class input_t, class output_t>
double AudioResample< input_t, output_t >::output_rate [protected]
 

Definition at line 201 of file frame.h.

Referenced by AudioResample< int16_ne_t, int16_ne_t >::GetOutputFrequency(), SrcAudioResample< input_t, output_t >::Resample(), InternalAudioResample< input_t, output_t >::Resample(), and AudioResample< int16_ne_t, int16_ne_t >::Resample().

template<class input_t, class output_t>
int AudioResample< input_t, output_t >::size
 

Definition at line 265 of file frame.h.

Referenced by PageMagickAudioTransition::GetFrame(), PageMagickOverwrite::GetFrame(), FrameDisplayer::PutSound(), SrcAudioResample< input_t, output_t >::Resample(), InternalAudioResample< input_t, output_t >::Resample(), and AudioResample< int16_ne_t, int16_ne_t >::Resample().


The documentation for this class was generated from the following file:
Generated on Sun Mar 11 22:12:46 2007 for Kino by  doxygen 1.4.2