arduino-audio-tools
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
AudioFormat.h File Reference

WAV Audio Formats used by Microsoft e.g. in AVI video files. More...

#include <cstring>
#include "AudioTools/CoreAudio/AudioTypes.h"

Go to the source code of this file.

Classes

struct  AudioInfoFormat
 AudioInfo extended with a WAVEFORMATEX-style codec tag (the "wav code"): identifies the codec (PCM, AAC, ALAC, ...) - AudioFormat::UNKNOWN if not determined. mime() derives the corresponding mime type from format - not a separately stored field, so it can never go stale. More...
 

Namespaces

namespace  audio_tools
 Generic Implementation of sound input and output for desktop environments using portaudio.
 

Enumerations

enum class  AudioFormat : uint16_t {
  UNKNOWN = 0x0000 , PCM = 0x0001 , ADPCM = 0x0002 , IEEE_FLOAT = 0x0003 ,
  ALAW = 0x0006 , MULAW = 0x0007 , OKI_ADPCM = 0x0010 , DVI_ADPCM = 0x0011 ,
  IMA_ADPCM = DVI_ADPCM , MEDIASPACE_ADPCM = 0x0012 , SIERRA_ADPCM = 0x0013 , G723_ADPCM = 0x0014 ,
  DIALOGIC_OKI_ADPCM = 0x0017 , MEDIAVISION_ADPCM = 0x0018 , YAMAHA_ADPCM = 0x0020 , ANTEX_ADPCME = 0x0033 ,
  DIGIADPCM = 0x0036 , NMS_VBXADPCM = 0x0038 , CS_IMAADPCM = 0x0039 , ROCKWELL_ADPCM = 0x003B ,
  G721_ADPCM = 0x0040 , G726_ADPCM = 0x0064 , G722_ADPCM = 0x0065 , INFOCOM_ITS_G721_ADPCM = 0x008B ,
  ZYXEL_ADPCM = 0x0097 , RHETOREX_ADPCM = 0x0100 , SANYO_LD_ADPCM = 0x0125 , G726ADPCM = 0x0140 ,
  UNISYS_NAP_ADPCM = 0x0170 , MP3 = 0x0055 , ALAC = 0x6C61 , AAC = 0xA106
}
 Audio format codes used by Microsoft e.g. in avi or wav files. More...
 

Functions

AudioFormat fromMime (const char *mime)
 Best-effort inverse of toMime(): maps a mime type (e.g. an AudioEncoder's mime()) back to the AudioFormat wav code it came from - AudioFormat::UNKNOWN if mime is null or doesn't match any of toMime()'s mappings (most codecs - Opus, FLAC, GSM, ... - have no wav code at all, so this can never be exhaustive; "audio/wav" itself maps back to PCM specifically, even though toMime() also uses it for every ADPCM variant, since PCM is the common case).
 
bool isWavFormat (AudioFormat format)
 True if the wav code is handled via the WAV decoder (i.e. toMime() maps it to "audio/wav": PCM and all ADPCM variants).
 
const char * toMime (AudioFormat format)
 Provides the mime type for a AudioFormat wav code, or nullptr if not known/mapped.
 

Detailed Description

WAV Audio Formats used by Microsoft e.g. in AVI video files.

Author
Phil Schatzmann
Version
0.1
Date
2023-05-06