#include <audio2.h>
Public Member Functions | |
AudioCodec (const char *name, Encoding encoding) | |
Base for codecs, create a named coded of a specific encoding. | |
virtual | ~AudioCodec () |
virtual Level | getImpulse (void *buffer, unsigned number=0) |
Get the impulse energy level of a frame of X samples in the specified codec format. | |
virtual Level | getPeak (void *buffer, unsigned number=0) |
Get the peak energy level within the frame of X samples. | |
virtual bool | isSilent (Level threashold, void *buffer, unsigned number=0) |
Signal if the current audio frame is silent. | |
virtual unsigned | encode (Linear buffer, void *dest, unsigned number=0)=0 |
Encode a linear sample frame into the codec sample buffer. | |
virtual unsigned | encodeBuffered (Linear Buffer, Encoded dest, unsigned number) |
Encode linear samples buffered into the coded. | |
virtual unsigned | decode (Linear buffer, void *source, unsigned number=0)=0 |
Decode the sample frame into linear samples. | |
virtual unsigned | decodeBuffered (Linear buffer, Encoded source, unsigned len) |
Buffer and decode data into linear samples. | |
virtual unsigned | getEstimated (void) |
Get estimated data required for buffered operations. | |
virtual unsigned | getRequired (void) |
get required samples for encoding. | |
virtual unsigned | getPacket (Encoded destination, Encoded data, unsigned size) |
Get a packet of data rather than decode. | |
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 AudioCodec * | getCodec (Encoding encoding, const char *format=NULL, bool loaded=false) |
Get the codec base class for accessing a specific derived codec identified by encoding type and optional spd info. | |
static AudioCodec * | getCodec (Info &info, bool loaded=false) |
Get the codec base class for accessing a specific derived codec identified by audio source descriptor. | |
static bool | load (const char *name) |
Load a named codec set into process memory. | |
static bool | load (Encoding encoding) |
Find and load a codec file by it's encoding type. | |
Protected Member Functions | |
AudioCodec () | |
virtual AudioCodec * | getByFormat (const char *format) |
often used to create a "new" codec of a subtype based on encoding format, default returns the current codec entity. | |
virtual AudioCodec * | getByInfo (Info &info) |
get a codec by audio source info descriptor. | |
Protected Attributes | |
AudioCodec * | next |
Encoding | encoding |
const char * | name |
Info | info |
Static Protected Attributes | |
static AudioCodec * | first |
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.
ost::AudioCodec::AudioCodec | ( | ) | [protected] |
ost::AudioCodec::AudioCodec | ( | const char * | name, | |
Encoding | encoding | |||
) |
Base for codecs, create a named coded of a specific encoding.
name | of codec. | |
encoding | type of codec. |
virtual ost::AudioCodec::~AudioCodec | ( | ) | [inline, virtual] |
virtual AudioCodec* ost::AudioCodec::getByFormat | ( | const char * | format | ) | [inline, protected, virtual] |
often used to create a "new" codec of a subtype based on encoding format, default returns the current codec entity.
format | name from spd. |
virtual AudioCodec* ost::AudioCodec::getByInfo | ( | Info & | info | ) | [inline, protected, virtual] |
get a codec by audio source info descriptor.
info | audio source descriptor. |
static void ost::AudioCodec::endCodec | ( | AudioCodec * | codec | ) | [static] |
End use of a requested codec.
If constructed then will be deleted.
codec | pointer to getCodec returned coded pointer. |
static AudioCodec* ost::AudioCodec::getCodec | ( | Encoding | encoding, | |
const char * | format = NULL , |
|||
bool | loaded = false | |||
) | [static] |
Get the codec base class for accessing a specific derived codec identified by encoding type and optional spd info.
encoding | format requested. | |
format | spd options to pass to codec being created. | |
loaded | true to load if not already in memory. |
static AudioCodec* ost::AudioCodec::getCodec | ( | Info & | info, | |
bool | loaded = false | |||
) | [static] |
Get the codec base class for accessing a specific derived codec identified by audio source descriptor.
info | source descriptor for codec being requested. | |
loaded | true to load codec if not already in memory. |
static bool ost::AudioCodec::load | ( | const char * | name | ) | [static] |
Load a named codec set into process memory.
name | of codec set to load. |
static bool ost::AudioCodec::load | ( | Encoding | encoding | ) | [static] |
Find and load a codec file by it's encoding type.
Converts the type into a codec name and invokes the other loader...
encoding | type for file. |
virtual Level ost::AudioCodec::getImpulse | ( | void * | buffer, | |
unsigned | number = 0 | |||
) | [virtual] |
Get the impulse energy level of a frame of X samples in the specified codec format.
buffer | of encoded samples. | |
number | of encoded samples. |
virtual Level ost::AudioCodec::getPeak | ( | void * | buffer, | |
unsigned | number = 0 | |||
) | [virtual] |
Get the peak energy level within the frame of X samples.
buffer | of encoded samples. | |
number | of encoded samples. |
virtual bool ost::AudioCodec::isSilent | ( | Level | threashold, | |
void * | buffer, | |||
unsigned | number = 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.
threashold | to use if not signaled. | |
buffer | of encoded samples. | |
number | of encoded samples. |
virtual unsigned ost::AudioCodec::encode | ( | Linear | buffer, | |
void * | dest, | |||
unsigned | number = 0 | |||
) | [pure virtual] |
Encode a linear sample frame into the codec sample buffer.
buffer | linear sample buffer to use. | |
dest | buffer to store encoded results. | |
number | of samples. |
virtual unsigned ost::AudioCodec::encodeBuffered | ( | Linear | Buffer, | |
Encoded | dest, | |||
unsigned | number | |||
) | [virtual] |
Encode linear samples buffered into the coded.
buffer | linear samples to post. | |
destination | of encoded audio. | |
number | of samples being buffered. |
virtual unsigned ost::AudioCodec::decode | ( | Linear | buffer, | |
void * | source, | |||
unsigned | number = 0 | |||
) | [pure virtual] |
Decode the sample frame into linear samples.
buffer | sample buffer to save linear samples into. | |
source | for encoded data. | |
number | of samples to extract. |
virtual unsigned ost::AudioCodec::decodeBuffered | ( | Linear | buffer, | |
Encoded | source, | |||
unsigned | len | |||
) | [virtual] |
Buffer and decode data into linear samples.
This is needed for audio formats that have irregular packet sizes.
destination | for decoded data. | |
source | for encoded data. | |
number | of bytes being sent. |
virtual unsigned ost::AudioCodec::getEstimated | ( | void | ) | [virtual] |
Get estimated data required for buffered operations.
virtual unsigned ost::AudioCodec::getRequired | ( | void | ) | [virtual] |
get required samples for encoding.
virtual unsigned ost::AudioCodec::getPacket | ( | Encoded | destination, | |
Encoded | data, | |||
unsigned | size | |||
) | [virtual] |
Get a packet of data rather than decode.
This is tied with getEstimated.
destination | to save. | |
data | to push into buffer. | |
number | of bytes to push. |
Info ost::AudioCodec::getInfo | ( | void | ) | [inline] |
Get an info description for this codec.
AudioCodec* ost::AudioCodec::first [static, protected] |
AudioCodec* ost::AudioCodec::next [protected] |
Encoding ost::AudioCodec::encoding [protected] |
const char* ost::AudioCodec::name [protected] |
Info ost::AudioCodec::info [protected] |