Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

AudioCodec Class Reference

The codec class is a virtual used for transcoding audio samples between linear frames (or other known format) and an encoded "sample" buffer.process codec interface. More...

#include <bayonneaudio.h>

Inheritance diagram for AudioCodec:

Audio List of all members.

Public Member Functions

 AudioCodec (const char *n, Encoding e)
virtual ~AudioCodec ()
virtual short getImpulse (void *data, unsigned samples=0)
 Get the impulse energy level of a frame of X samples in the specified codec format.
virtual short getPeak (void *data, unsigned samples=0)
 Get the peak energy level within the frame of X samples.
virtual bool isSilent (short threashold, void *data, unsigned samples=0)
 Signal if the current audio frame is silent.
virtual unsigned encode (Linear buffer, void *dest, unsigned lsamples)=0
 Encode a linear sample frame into the codec sample buffer.
virtual unsigned decode (Linear buffer, void *source, unsigned lsamples)=0
 Decode the sample frame into linear samples.
Info getInfo (void)
 Get an info description for this codec.

Static Public Member Functions

static void endCodec (AudioCodec *codec)
 End use of a requested codec.
static AudioCodecgetCodec (Encoding encoding, const char *format=NULL, bool loaded=false)
static AudioCodecgetCodec (Info &info, bool loaded=false)
static bool load (const char *name)
 Load a named codec set into process memory.
static bool load (Encoding e)
 Find and load a codec file by it's encoding type.

Protected Member Functions

 AudioCodec ()
virtual AudioCodecgetByFormat (const char *format)
virtual AudioCodecgetByInfo (Info &info)

Protected Attributes

AudioCodecnext
Encoding encoding
const char * name
Info info

Static Protected Attributes

static Mutex lock
static AudioCodecfirst

Detailed Description

The codec class is a virtual used for transcoding audio samples between linear frames (or other known format) and an encoded "sample" buffer.process codec interface.

This class is only abstract and describes the core interface for loadable codec modules. This class is normally merged with AudioSample. A derived AudioCodecXXX will typically include a AudioRegisterXXX static class to automatically initialize and register the codec with the codec registry.

Author:
David Sugar <dyfet@ostel.com>


Constructor & Destructor Documentation

AudioCodec::AudioCodec  )  [protected]
 

AudioCodec::AudioCodec const char *  n,
Encoding  e
 

virtual AudioCodec::~AudioCodec  )  [inline, virtual]
 


Member Function Documentation

virtual unsigned AudioCodec::decode Linear  buffer,
void *  source,
unsigned  lsamples
[pure virtual]
 

Decode the sample frame into linear samples.

Returns:
number of bytes scanned.
Parameters:
buffer sample buffer to save linear samples into.
source for encoded data.
number of samples to extract.

virtual unsigned AudioCodec::encode Linear  buffer,
void *  dest,
unsigned  lsamples
[pure virtual]
 

Encode a linear sample frame into the codec sample buffer.

Parameters:
number of bytes written.
buffer linear sample buffer to use.
dest buffer to store encoded results.
lsamples The number of linear samples.

static void AudioCodec::endCodec AudioCodec codec  )  [static]
 

End use of a requested codec.

If constructed then will be deleted.

Parameters:
pointer to getCodec returned coded pointer.

virtual AudioCodec* AudioCodec::getByFormat const char *  format  )  [inline, protected, virtual]
 

virtual AudioCodec* AudioCodec::getByInfo Info &  info  )  [inline, protected, virtual]
 

static AudioCodec* AudioCodec::getCodec Info &  info,
bool  loaded = false
[static]
 

static AudioCodec* AudioCodec::getCodec Encoding  encoding,
const char *  format = NULL,
bool  loaded = false
[static]
 

virtual short AudioCodec::getImpulse void *  data,
unsigned  samples = 0
[virtual]
 

Get the impulse energy level of a frame of X samples in the specified codec format.

Returns:
average impulse energy of frame (sumnation).
Parameters:
buffer of encoded samples.
number of encoded samples.

Info AudioCodec::getInfo void   )  [inline]
 

Get an info description for this codec.

Returns:
info.

virtual short AudioCodec::getPeak void *  data,
unsigned  samples = 0
[virtual]
 

Get the peak energy level within the frame of X samples.

Returns:
peak energy impulse in frame (largest).
Parameters:
buffer of encoded samples.
number of encoded samples.

virtual bool AudioCodec::isSilent short  threashold,
void *  data,
unsigned  samples = 0
[virtual]
 

Signal if the current audio frame is silent.

This can be deterimed either by an impulse computation, or, in some cases, some codecs may signal and flag silent packets.

Returns:
true if silent
Parameters:
threashold to use if not signaled.
buffer of encoded samples.
number of encoded samples.

static bool AudioCodec::load Encoding  e  )  [static]
 

Find and load a codec file by it's encoding type.

Converts the type into a codec name and invokes the other loader...

Returns:
true if successful.
Parameters:
encoding type for file.

static bool AudioCodec::load const char *  name  )  [static]
 

Load a named codec set into process memory.

Returns:
true if successful.
Parameters:
name of codec set to load.


Member Data Documentation

Encoding AudioCodec::encoding [protected]
 

AudioCodec* AudioCodec::first [static, protected]
 

Info AudioCodec::info [protected]
 

Mutex AudioCodec::lock [static, protected]
 

const char* AudioCodec::name [protected]
 

AudioCodec* AudioCodec::next [protected]
 


The documentation for this class was generated from the following file:
Generated on Tue Sep 13 02:19:09 2005 for Bayonne by  doxygen 1.4.4