|
| AudioStream () |
| Create a new audiostream object. More...
|
|
| AudioStream (const char *name, Mode mode=modeRead, timeout_t framing=0) |
| Create an audio stream object and open an existing audio file. More...
|
|
| AudioStream (const char *name, Info *info, bool exclusive=false, timeout_t framing=0) |
| Create an audio stream object and a new audio file. More...
|
|
virtual | ~AudioStream () |
|
ssize_t | getBuffer (Encoded data, size_t count) |
| Virtual for packet i/o intercept. More...
|
|
void | open (const char *name, Mode mode=modeRead, timeout_t framing=0) |
| Open existing audio file for streaming. More...
|
|
void | create (const char *name, Info *info, bool exclusive=false, timeout_t framing=0) |
| Create a new audio file for streaming. More...
|
|
void | close (void) |
| Close the currently open audio file for streaming. More...
|
|
void | flush (void) |
| flush any unsaved buffered data to disk. More...
|
|
bool | isStreamable (void) |
| Check if the audio file may be streamed. More...
|
|
unsigned | getCount (void) |
| Get the number of samples expected in a frame. More...
|
|
unsigned | getEncoded (AudioCodec *codec, Encoded address, unsigned frames=1) |
| Stream audio data from the file and convert into an alternate encoding based on the codec supplied. More...
|
|
unsigned | putEncoded (AudioCodec *codec, Encoded address, unsigned frames=1) |
| Stream audio data in an alternate codec into the currently opened file. More...
|
|
unsigned | getEncoded (Encoded address, unsigned frames=1) |
| Get data from the streamed file in it's native encoding. More...
|
|
unsigned | putEncoded (Encoded address, unsigned frames=1) |
| Put data encoded in the native format of the stream file. More...
|
|
ssize_t | getPacket (Encoded data) |
| Get a packet of data from the file. More...
|
|
unsigned | getMono (Linear buffer, unsigned frames=1) |
| Get and automatically convert audio file data into mono linear audio samples. More...
|
|
unsigned | getStereo (Linear buffer, unsigned frames=1) |
| Get and automatically convert audio file data into stereo (two channel) linear audio samples. More...
|
|
unsigned | putMono (Linear buffer, unsigned frames=1) |
| Automatically convert and put mono linear audio data into the audio file. More...
|
|
unsigned | putStereo (Linear buffer, unsigned frames=1) |
| Automatically convert and put stereo linear audio data into the audio file. More...
|
|
unsigned | bufMono (Linear buffer, unsigned count) |
| Automatically convert and put arbitrary linear mono data into the audio file. More...
|
|
unsigned | bufStereo (Linear buffer, unsigned count) |
| Automatically convert and put arbitrary linear stereo data into the audio file. More...
|
|
AudioCodec * | getCodec (void) |
| Return the codec being used if there is one. More...
|
|
| AudioFile (const char *name, unsigned long offset=0) |
| Construct and open an existing audio file for read/write. More...
|
|
| AudioFile (const char *name, Info *info, unsigned long minimum=0) |
| Create and open a new audio file for writing. More...
|
|
| AudioFile () |
| Construct an audio file without attaching to the filesystem. More...
|
|
virtual | ~AudioFile () |
|
void | open (const char *name, Mode mode=modeWrite, timeout_t framing=0) |
| Open an audio file and associate it with this object. More...
|
|
void | create (const char *name, Info *info, bool exclusive=false, timeout_t framing=0) |
| Create a new audio file and associate it with this object. More...
|
|
time_t | getAge (void) |
| Returns age since last prior access. More...
|
|
size_t | getSize (void) |
| Get maximum size of frame buffer for data use. More...
|
|
void | close (void) |
| Close an object associated with an open file. More...
|
|
void | clear (void) |
| Clear the AudioFile structure. More...
|
|
unsigned | getLinear (Linear buffer, unsigned request=0) |
| Retrieve and convert content to linear encoded audio data from it's original form. More...
|
|
ssize_t | putBuffer (Encoded buffer, size_t len=0) |
| Insert bytes into the file from a memory buffer. More...
|
|
unsigned | putLinear (Linear buffer, unsigned request=0) |
| Convert and store content from linear encoded audio data to the format of the audio file. More...
|
|
Error | getSamples (void *buffer, unsigned samples=0) |
| Retrieve samples from the file into a memory buffer. More...
|
|
Error | putSamples (void *buffer, unsigned samples=0) |
| Insert samples into the file from a memory buffer. More...
|
|
Error | skip (long number) |
| Change the file position by skipping a specified number of audio samples of audio data. More...
|
|
Error | setPosition (unsigned long samples=~0l) |
| Seek a file position by sample count. More...
|
|
Error | position (const char *timestamp) |
| Seek a file position by timestamp. More...
|
|
void | getPosition (char *timestamp, size_t size) |
| Return the timestamp of the current absolute file position. More...
|
|
Error | setLimit (unsigned long maximum=0l) |
| Set the maximum file position for reading and writing of audio data by samples. More...
|
|
Error | getInfo (Info *info) |
| Copy the source description of the audio file into the specified object. More...
|
|
Error | setMinimum (unsigned long minimum) |
| Set minimum file size for a created file. More...
|
|
unsigned long | getAbsolutePosition (void) |
| Get the current file pointer in bytes relative to the start of the file. More...
|
|
unsigned long | getPosition (void) |
| Get the current file pointer in samples relative to the start of the sample buffer. More...
|
|
virtual bool | isOpen (void) |
| Test if the file is opened. More...
|
|
virtual bool | hasPositioning (void) |
| Return true if underlying derived class supports direct access to file positioning. More...
|
|
Encoding | getEncoding (void) |
| Return audio encoding format for this audio file. More...
|
|
Format | getFormat (void) |
| Return base file format of containing audio file. More...
|
|
unsigned | getSampleRate (void) |
| Get audio encoding sample rate, in samples per second, for this audio file. More...
|
|
char * | getAnnotation (void) |
| Get annotation extracted from header of containing file. More...
|
|
Error | getError (void) |
| Get last error code. More...
|
|
bool | operator! (void) |
|
bool | isSigned (void) |
| Return if the current content is signed or unsigned samples. More...
|
|
| AudioBase () |
| Create audio base object with no info. More...
|
|
| AudioBase (Info *info) |
| Create audio base object with audio source description. More...
|
|
virtual | ~AudioBase () |
| Destroy an audio base object. More...
|
|
Encoding | getEncoding (void) |
| Generic get encoding. More...
|
|
unsigned | getSampleRate (void) |
| Generic sample rate. More...
|
|
ssize_t | putNative (Encoded data, size_t size) |
| Puts raw data and does native to refined endian swapping if needed based on encoding type and local machine endian. More...
|
|
ssize_t | getPacket (Encoded data) |
| Get's a packet of audio data. More...
|
|
ssize_t | getNative (Encoded data, size_t size) |
| Get raw data and assure is in native machine endian. More...
|
|
|
unsigned | bufAudio (Linear samples, unsigned count, unsigned size) |
|
void | initialize (void) |
|
void | getWaveFormat (int size) |
|
void | mp3info (mpeg_audio *mp3) |
|
virtual bool | afCreate (const char *path, bool exclusive=false) |
|
virtual bool | afOpen (const char *path, Mode m=modeWrite) |
|
virtual bool | afPeek (unsigned char *data, unsigned size) |
|
AudioCodec * | getCodec (void) |
|
virtual int | afRead (unsigned char *data, unsigned size) |
| Read a given number of bytes from the file, starting from the current file pointer. More...
|
|
virtual int | afWrite (unsigned char *data, unsigned size) |
| Write a number of bytes into the file at the current file pointer. More...
|
|
virtual bool | afSeek (unsigned long pos) |
| Seek to the given position relative to the start of the file and set the file pointer. More...
|
|
virtual void | afClose (void) |
| Close the derived file handling system's file handle. More...
|
|
virtual char * | getContinuation (void) |
| This function is used to splice multiple audio files together into a single stream of continues audio data. More...
|
|
const char * | getErrorStr (Error err) |
| Return a human-readable error message given a numeric error code of type Audio::Error. More...
|
|
Error | setError (Error err) |
|
unsigned long | getHeader (void) |
| Get number of bytes in the file header. More...
|
|
unsigned short | getShort (unsigned char *data) |
| Convert binary 2 byte data stored in the order specified in the source description into a short variable. More...
|
|
void | setShort (unsigned char *data, unsigned short value) |
| Save a short as two byte binary data stored in the endian order specified in the source description. More...
|
|
unsigned long | getLong (unsigned char *data) |
| Convert binary 4 byte data stored in the order specified in the source description into a long variable. More...
|
|
void | setLong (unsigned char *data, unsigned long value) |
| Save a long as four byte binary data stored in the endian order specified in the source description. More...
|
|
|
enum | Rate {
rateUnknown,
rate6khz = 6000,
rate8khz = 8000,
rate16khz = 16000,
rate32khz = 32000,
rate44khz = 44100
} |
| Audio encoding rate, samples per second. More...
|
|
enum | Mode {
modeRead,
modeReadAny,
modeReadOne,
modeWrite,
modeCache,
modeInfo,
modeFeed,
modeAppend,
modeCreate
} |
| File processing mode, whether to skip missing files, etc. More...
|
|
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...
|
|
enum | Format {
raw,
snd,
riff,
mpeg,
wave
} |
| Audio container file format. More...
|
|
enum | DeviceMode { PLAY,
RECORD,
PLAYREC
} |
| Audio device access mode. More...
|
|
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 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 |
|
typedef enum Rate | Rate |
|
typedef enum Mode | Mode |
|
typedef enum Encoding | Encoding |
|
typedef enum Format | Format |
|
typedef enum DeviceMode | DeviceMode |
|
typedef enum Error | Error |
|
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 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 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 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...
|
|
static const unsigned | ndata |
|
AudioStream accesses AudioFile base class content as fixed frames of streaming linear samples.
If a codec must be assigned to perform conversion to/from linear data, AudioStream will handle conversion automatically. AudioStream will also convert between mono and stereo audio content. AudioStream uses linear samples in the native machine endian format and perform endian byte swapping as needed.
- Author
- David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m Audio Streaming with Linear Conversion