The codec class is a virtual used for transcoding audio samples between linear frames (or other known format) and an encoded "sample" buffer.
More...
|
enum | Rate {
rateUnknown,
rate6khz = 6000,
rate8khz = 8000,
rate16khz = 16000,
rate32khz = 32000,
rate44khz = 44100
} |
| Audio encoding rate, samples per second. More...
|
|
typedef enum Rate | Rate |
|
enum | Mode {
modeRead,
modeReadAny,
modeReadOne,
modeWrite,
modeCache,
modeInfo,
modeFeed,
modeAppend,
modeCreate
} |
| File processing mode, whether to skip missing files, etc. More...
|
|
typedef enum Mode | Mode |
|
enum | Encoding {
unknownEncoding = 0,
g721ADPCM,
g722Audio,
g722_7bit,
g722_6bit,
g723_2bit,
g723_3bit,
g723_5bit,
gsmVoice,
msgsmVoice,
mulawAudio,
alawAudio,
mp1Audio,
mp2Audio,
mp3Audio,
okiADPCM,
voxADPCM,
sx73Voice,
sx96Voice,
cdaStereo,
cdaMono,
pcm8Stereo,
pcm8Mono,
pcm16Stereo,
pcm16Mono,
pcm32Stereo,
pcm32Mono,
speexVoice,
speexAudio,
g729Audio,
ilbcAudio,
speexUltra,
speexNarrow = speexVoice,
speexWide = speexAudio,
g723_4bit = g721ADPCM
} |
| Audio encoding formats. More...
|
|
typedef enum Encoding | Encoding |
|
enum | Format {
raw,
snd,
riff,
mpeg,
wave
} |
| Audio container file format. More...
|
|
typedef enum Format | Format |
|
enum | DeviceMode { PLAY,
RECORD,
PLAYREC
} |
| Audio device access mode. More...
|
|
typedef enum DeviceMode | DeviceMode |
|
enum | Error {
errSuccess = 0,
errReadLast,
errNotOpened,
errEndOfFile,
errStartOfFile,
errRateInvalid,
errEncodingInvalid,
errReadInterrupt,
errWriteInterrupt,
errReadFailure,
errWriteFailure,
errReadIncomplete,
errWriteIncomplete,
errRequestInvalid,
errTOCFailed,
errStatFailed,
errInvalidTrack,
errPlaybackFailed,
errNotPlaying,
errNoCodec
} |
| Audio error conditions. More...
|
|
typedef enum Error | Error |
|
typedef int16_t | snd16_t |
|
typedef int32_t | snd32_t |
|
typedef int16_t | Level |
|
typedef int16_t | Sample |
|
typedef int16_t * | Linear |
|
typedef unsigned long | timeout_t |
|
typedef unsigned char * | Encoded |
|
|
| AudioCodec (const char *name, Encoding encoding) |
| Base for codecs, create a named coded of a specific encoding. More...
|
|
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. More...
|
|
virtual Level | getPeak (void *buffer, unsigned number=0) |
| Get the peak energy level within the frame of X samples. More...
|
|
virtual bool | isSilent (Level threashold, void *buffer, unsigned number=0) |
| Signal if the current audio frame is silent. More...
|
|
virtual unsigned | encode (Linear buffer, void *dest, unsigned number=0)=0 |
| Encode a linear sample frame into the codec sample buffer. More...
|
|
virtual unsigned | encodeBuffered (Linear Buffer, Encoded dest, unsigned number) |
| Encode linear samples buffered into the coded. More...
|
|
virtual unsigned | decode (Linear buffer, void *source, unsigned number=0)=0 |
| Decode the sample frame into linear samples. More...
|
|
virtual unsigned | decodeBuffered (Linear buffer, Encoded source, unsigned len) |
| Buffer and decode data into linear samples. More...
|
|
virtual unsigned | getEstimated (void) |
| Get estimated data required for buffered operations. More...
|
|
virtual unsigned | getRequired (void) |
| get required samples for encoding. More...
|
|
virtual unsigned | getPacket (Encoded destination, Encoded data, unsigned size) |
| Get a packet of data rather than decode. More...
|
|
Info | getInfo (void) |
| Get an info description for this codec. More...
|
|
|
static void | endCodec (AudioCodec *codec) |
| End use of a requested codec. More...
|
|
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. More...
|
|
static AudioCodec * | getCodec (Info &info, bool loaded=false) |
| Get the codec base class for accessing a specific derived codec identified by audio source descriptor. More...
|
|
static bool | load (const char *name) |
| Load a named codec set into process memory. More...
|
|
static bool | load (Encoding encoding) |
| Find and load a codec file by it's encoding type. More...
|
|
static Level | tolevel (float dbm) |
| Convert dbm power level to integer value (0-32768). More...
|
|
static float | todbm (Level power) |
| Convert integer power levels to dbm. More...
|
|
static bool | hasDevice (unsigned device=0) |
| Test for the presense of a specified (indexed) audio device. More...
|
|
static AudioDevice * | getDevice (unsigned device=0, DeviceMode mode=PLAY) |
| Get a audio device object that can be used to play or record audio. More...
|
|
static const char * | getCodecPath (void) |
| Get pathname to where loadable codec modules are stored. More...
|
|
static const char * | getMIME (Info &info) |
| Get the mime descriptive type for a given Audio encoding description, usually retrieved from a newly opened audio file. More...
|
|
static const char * | getName (Encoding encoding) |
| Get the short ascii description used for the given audio encoding type. More...
|
|
static const char * | getExtension (Encoding encoding) |
| Get the preferred file extension name to use for a given audio encoding type. More...
|
|
static Encoding | getEncoding (const char *name) |
| Get the audio encoding format that is specified by a short ascii name. More...
|
|
static Encoding | getStereo (Encoding encoding) |
| Get the stereo encoding format associated with the given format. More...
|
|
static Encoding | getMono (Encoding encoding) |
| Get the mono encoding format associated with the given format. More...
|
|
static bool | isLinear (Encoding encoding) |
| Test if the audio encoding format is a linear one. More...
|
|
static bool | isBuffered (Encoding encoding) |
| Test if the audio encoding format must be packetized (that is, has irregular sized frames) and must be processed only through buffered codecs. More...
|
|
static bool | isMono (Encoding encoding) |
| Test if the audio encoding format is a mono format. More...
|
|
static bool | isStereo (Encoding encoding) |
| Test if the audio encoding format is a stereo format. More...
|
|
static Rate | getRate (Encoding encoding) |
| Return default sample rate associated with the specified audio encoding format. More...
|
|
static Rate | getRate (Encoding e, Rate request) |
| Return optional rate setting effect. More...
|
|
static timeout_t | getFraming (Encoding encoding, timeout_t timeout=0) |
| Return frame timing for an audio encoding format. More...
|
|
static timeout_t | getFraming (Info &info, timeout_t timeout=0) |
| Return frame time for an audio source description. More...
|
|
static bool | isEndian (Encoding encoding) |
| Test if the endian byte order of the encoding format is different from the machine's native byte order. More...
|
|
static bool | isEndian (Info &info) |
| Test if the endian byte order of the audio source description is different from the machine's native byte order. More...
|
|
static bool | swapEndian (Encoding encoding, void *buffer, unsigned number) |
| Optionally swap endian of audio data if the encoding format endian byte order is different from the machine's native endian. More...
|
|
static bool | swapEndian (Info &info, void *buffer, unsigned number) |
| Optionally swap endian of audio data if the audio source description byte order is different from the machine's native endian byte order. More...
|
|
static void | swapEncoded (Info &info, Encoded data, size_t bytes) |
| Optionally swap endian of encoded audio data based on the audio encoding type, and relationship to native byte order. More...
|
|
static Level | getImpulse (Encoding encoding, void *buffer, unsigned number) |
| Get the energey impulse level of a frame of audio data. More...
|
|
static Level | getImpulse (Info &info, void *buffer, unsigned number=0) |
| Get the energey impulse level of a frame of audio data. More...
|
|
static Level | getPeak (Encoding encoding, void *buffer, unsigned number) |
| Get the peak (highest energy) level found in a frame of audio data. More...
|
|
static Level | getPeak (Info &info, void *buffer, unsigned number=0) |
| Get the peak (highest energy) level found in a frame of audio data. More...
|
|
static void | toTimestamp (timeout_t duration, char *address, size_t size) |
| Provide ascii timestamp representation of a timeout value. More...
|
|
static timeout_t | toTimeout (const char *timestamp) |
| Convert ascii timestamp representation to a timeout number. More...
|
|
static int | getFrame (Encoding encoding, int samples=0) |
| Returns the number of bytes in a sample frame for the given encoding type, rounded up to the nearest integer. More...
|
|
static int | getCount (Encoding encoding) |
| Returns the number of samples in all channels for a frame in the given encoding. More...
|
|
static unsigned long | toSamples (Encoding encoding, size_t bytes) |
| Compute byte counts of audio data into number of samples based on the audio encoding format used. More...
|
|
static unsigned long | toSamples (Info &info, size_t bytes) |
| Compute byte counts of audio data into number of samples based on the audio source description used. More...
|
|
static size_t | toBytes (Info &info, unsigned long number) |
| Compute the number of bytes a given number of samples in a given audio encoding will occupy. More...
|
|
static size_t | toBytes (Encoding encoding, unsigned long number) |
| Compute the number of bytes a given number of samples in a given audio encoding will occupy. More...
|
|
static void | fill (unsigned char *address, int number, Encoding encoding) |
| Fill an audio buffer with "empty" (silent) audio data, based on the audio encoding format. More...
|
|
static bool | loadPlugin (const char *path) |
| Load a dso plugin (codec plugin), used internally... More...
|
|
static size_t | maxFramesize (Info &info) |
| Maximum framesize for a given coding that may be needed to store a result. More...
|
|
The codec class is a virtual used for transcoding audio samples between linear frames (or other known format) and an encoded "sample" buffer.
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.nosp@m.@ost.nosp@m.el.co.nosp@m.m process codec interface.
Definition at line 1733 of file audio2.h.