protected class AbstractAVIStream.AudioTrack extends AbstractAVIStream.Track
The format of a video track is defined in a "strf" chunk, which
contains a WAVEFORMATEX
struct.
---------------------- AVI Wave Format Header ---------------------- // values for this enum taken from mmreg.h enum { WAVE_FORMAT_PCM = 0x0001, // Microsoft Corporation WAVE_FORMAT_ADPCM = 0x0002, // Microsoft Corporation * IEEE754: range (+1, -1] * 32-bit/64-bit format as defined by * MSVC++ float/double type WAVE_FORMAT_IEEE_FLOAT = 0x0003, // IBM Corporation WAVE_FORMAT_IBM_CVSD = 0x0005, // Microsoft Corporation WAVE_FORMAT_ALAW = 0x0006, // Microsoft Corporation WAVE_FORMAT_MULAW = 0x0007, // OKI WAVE_FORMAT_OKI_ADPCM = 0x0010, // Intel Corporation WAVE_FORMAT_DVI_ADPCM = 0x0011, // Intel Corporation WAVE_FORMAT_IMA_ADPCM = 0x0011, // Videologic WAVE_FORMAT_MEDIASPACE_ADPCM = 0x0012, // Sierra Semiconductor Corp WAVE_FORMAT_SIERRA_ADPCM = 0x0013, // Antex Electronics Corporation WAVE_FORMAT_G723_ADPCM = 0x0014, // DSP Solutions, Inc. WAVE_FORMAT_DIGISTD = 0x0015, // DSP Solutions, Inc. WAVE_FORMAT_DIGIFIX = 0x0016, // Dialogic Corporation WAVE_FORMAT_DIALOGIC_OKI_ADPCM = 0x0017, // Media Vision, Inc. WAVE_FORMAT_MEDIAVISION_ADPCM = 0x0018, // Yamaha Corporation of America WAVE_FORMAT_YAMAHA_ADPCM = 0x0020, // Speech Compression WAVE_FORMAT_SONARC = 0x0021, // DSP Group, Inc WAVE_FORMAT_DSPGROUP_TRUESPEECH = 0x0022, // Echo Speech Corporation WAVE_FORMAT_ECHOSC1 = 0x0023, // WAVE_FORMAT_AUDIOFILE_AF36 = 0x0024, // Audio Processing Technology WAVE_FORMAT_APTX = 0x0025, // WAVE_FORMAT_AUDIOFILE_AF10 = 0x0026, // Dolby Laboratories WAVE_FORMAT_DOLBY_AC2 = 0x0030, // Microsoft Corporation WAVE_FORMAT_GSM610 = 0x0031, // Microsoft Corporation WAVE_FORMAT_MSNAUDIO = 0x0032, // Antex Electronics Corporation WAVE_FORMAT_ANTEX_ADPCME = 0x0033, // Control Resources Limited WAVE_FORMAT_CONTROL_RES_VQLPC = 0x0034, // DSP Solutions, Inc. WAVE_FORMAT_DIGIREAL = 0x0035, // DSP Solutions, Inc. WAVE_FORMAT_DIGIADPCM = 0x0036, // Control Resources Limited WAVE_FORMAT_CONTROL_RES_CR10 = 0x0037, // Natural MicroSystems WAVE_FORMAT_NMS_VBXADPCM = 0x0038, // Crystal Semiconductor IMA ADPCM WAVE_FORMAT_CS_IMAADPCM = 0x0039, // Echo Speech Corporation WAVE_FORMAT_ECHOSC3 = 0x003A, // Rockwell International WAVE_FORMAT_ROCKWELL_ADPCM = 0x003B, // Rockwell International WAVE_FORMAT_ROCKWELL_DIGITALK = 0x003C, // Xebec Multimedia Solutions Limited WAVE_FORMAT_XEBEC = 0x003D, // Antex Electronics Corporation WAVE_FORMAT_G721_ADPCM = 0x0040, // Antex Electronics Corporation WAVE_FORMAT_G728_CELP = 0x0041, // Microsoft Corporation WAVE_FORMAT_MPEG = 0x0050, // ISO/MPEG Layer3 Format Tag WAVE_FORMAT_MPEGLAYER3 = 0x0055, // Cirrus Logic WAVE_FORMAT_CIRRUS = 0x0060, // ESS Technology WAVE_FORMAT_ESPCM = 0x0061, // Voxware Inc WAVE_FORMAT_VOXWARE = 0x0062, // Canopus, co., Ltd. WAVE_FORMAT_CANOPUS_ATRAC = 0x0063, // APICOM WAVE_FORMAT_G726_ADPCM = 0x0064, // APICOM WAVE_FORMAT_G722_ADPCM = 0x0065, // Microsoft Corporation WAVE_FORMAT_DSAT = 0x0066, // Microsoft Corporation WAVE_FORMAT_DSAT_DISPLAY = 0x0067, // Softsound, Ltd. WAVE_FORMAT_SOFTSOUND = 0x0080, // Rhetorex Inc WAVE_FORMAT_RHETOREX_ADPCM = 0x0100, // Creative Labs, Inc WAVE_FORMAT_CREATIVE_ADPCM = 0x0200, // Creative Labs, Inc WAVE_FORMAT_CREATIVE_FASTSPEECH8 = 0x0202, // Creative Labs, Inc WAVE_FORMAT_CREATIVE_FASTSPEECH10 = 0x0203, // Quarterdeck Corporation WAVE_FORMAT_QUARTERDECK = 0x0220, // Fujitsu Corp. WAVE_FORMAT_FM_TOWNS_SND = 0x0300, // Brooktree Corporation WAVE_FORMAT_BTV_DIGITAL = 0x0400, // Ing C. Olivetti & C., S.p.A. WAVE_FORMAT_OLIGSM = 0x1000, // Ing C. Olivetti & C., S.p.A. WAVE_FORMAT_OLIADPCM = 0x1001, // Ing C. Olivetti & C., S.p.A. WAVE_FORMAT_OLICELP = 0x1002, // Ing C. Olivetti & C., S.p.A. WAVE_FORMAT_OLISBC = 0x1003, // Ing C. Olivetti & C., S.p.A. WAVE_FORMAT_OLIOPR = 0x1004, // Lernout & Hauspie WAVE_FORMAT_LH_CODEC = 0x1100, // Norris Communications, Inc. WAVE_FORMAT_NORRIS = 0x1400, // * the WAVE_FORMAT_DEVELOPMENT format tag can be used during the * development phase of a new wave format. Before shipping, you MUST * acquire an official format tag from Microsoft. WAVE_FORMAT_DEVELOPMENT = 0xFFFF, } wFormatTagEnum; typedef struct { WORD enum wFormatTagEnum formatTag; // Waveform-audio format type. Format tags are registered with Microsoft // Corporation for many compression algorithms. A complete list of format // tags can be found in the Mmreg.h header file. For one- or two-channel // Pulse Code Modulation (PCM) data, this value should be WAVE_FORMAT_PCM. WORD numberOfChannels; // Number of channels in the waveform-audio data. Monaural data uses one // channel and stereo data uses two channels. DWORD samplesPerSec; // Sample rate, in samples per second (hertz). If "formatTag" is // "WAVE_FORMAT_PCM", then common values for "samplesPerSec" are 8.0 kHz, // 11.025 kHz, 22.05 kHz, and 44.1 kHz. For non-PCM formats, this member // must be computed according to the manufacturer's specification of the // format tag. DWORD avgBytesPerSec; // Required average data-transfer rate, in bytes per second, for the format // tag. If "formatTag" is "WAVE_FORMAT_PCM", "avgBytesPerSec" should be // equal to the product of "samplesPerSec" and "blockAlignment". For non-PCM // formats, this member must be computed according to the manufacturer's // specification of the format tag. WORD blockAlignment; // Block alignment, in bytes. The block alignment is the minimum atomic unit // of data for the "formatTag" format type. If "formatTag" is // "WAVE_FORMAT_PCM" or "WAVE_FORMAT_EXTENSIBLE, "blockAlignment" must be equal // to the product of "numberOfChannels" and "bitsPerSample" divided by 8 (bits per // byte). For non-PCM formats, this member must be computed according to the // manufacturer's specification of the format tag. // Software must process a multiple of "blockAlignment" bytes of data at a // time. Data written to and read from a device must always start at the // beginning of a block. For example, it is illegal to start playback of PCM // data in the middle of a sample (that is, on a non-block-aligned boundary). WORD bitsPerSample; // Bits per sample for the waveFormatTag format type. If "formatTag" is // "WAVE_FORMAT_PCM", then "bitsPerSample" should be equal to 8 or 16. For // non-PCM formats, this member must be set according to the manufacturer's // specification of the format tag. If "formatTag" is // "WAVE_FORMAT_EXTENSIBLE", this value can be any integer multiple of 8. // Some compression schemes cannot define a value for "bitsPerSample", so // this member can be zero. WORD cbSize; // Size, in bytes, of extra format information appended to the end of the // WAVEFORMATEX structure. This information can be used by non-PCM formats // to store extra attributes for the "wFormatTag". If no extra information // is required by the "wFormatTag", this member must be set to zero. For // WAVE_FORMAT_PCM formats (and only WAVE_FORMAT_PCM formats), this member // is ignored. byte[cbSize] extra; } WAVEFORMATEX;
Modifier and Type | Field and Description |
---|---|
protected long |
avgBytesPerSec
Required average data-transfer rate, in bytes per second, for the
format tag.
|
protected int |
bitsPerSample
Bits per sample for the wFormatTag format type.
|
protected int |
blockAlign
Block alignment, in bytes.
|
protected int |
channels
Number of channels in the waveform-audio data.
|
protected long |
samplesPerSec
Sample rate, in samples per second (hertz).
|
protected static int |
WAVE_FORMAT_ADPCM
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_ALAW
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_ANTEX_ADPCME
Antex Electronics Corporation
|
protected static int |
WAVE_FORMAT_APTX
Audio Processing Technology
|
protected static int |
WAVE_FORMAT_AUDIOFILE_AF10 |
protected static int |
WAVE_FORMAT_AUDIOFILE_AF36 |
protected static int |
WAVE_FORMAT_BTV_DIGITAL
Brooktree Corporation
|
protected static int |
WAVE_FORMAT_CANOPUS_ATRAC
Canopus, co., Ltd.
|
protected static int |
WAVE_FORMAT_CIRRUS
Cirrus Logic
|
protected static int |
WAVE_FORMAT_CONTROL_RES_CR10
Control Resources Limited
|
protected static int |
WAVE_FORMAT_CONTROL_RES_VQLPC
Control Resources Limited
|
protected static int |
WAVE_FORMAT_CREATIVE_ADPCM
Creative Labs, Inc
|
protected static int |
WAVE_FORMAT_CREATIVE_FASTSPEECH10
Creative Labs, Inc
|
protected static int |
WAVE_FORMAT_CREATIVE_FASTSPEECH8
Creative Labs, Inc
|
protected static int |
WAVE_FORMAT_CS_IMAADPCM
Crystal Semiconductor IMA ADPCM
|
protected static int |
WAVE_FORMAT_DEVELOPMENT
the WAVE_FORMAT_DEVELOPMENT format tag can be used during the
development phase of a new wave format.
|
protected static int |
WAVE_FORMAT_DIALOGIC_OKI_ADPCM
Dialogic Corporation
|
protected static int |
WAVE_FORMAT_DIGIADPCM
DSP Solutions, Inc.
|
protected static int |
WAVE_FORMAT_DIGIFIX
DSP Solutions, Inc.
|
protected static int |
WAVE_FORMAT_DIGIREAL
DSP Solutions, Inc.
|
protected static int |
WAVE_FORMAT_DIGISTD
DSP Solutions, Inc.
|
protected static int |
WAVE_FORMAT_DOLBY_AC2
Dolby Laboratories
|
protected static int |
WAVE_FORMAT_DSAT
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_DSAT_DISPLAY
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_DSPGROUP_TRUESPEECH
DSP Group, Inc
|
protected static int |
WAVE_FORMAT_DVI_ADPCM
Intel Corporation
|
protected static int |
WAVE_FORMAT_ECHOSC1
Echo Speech Corporation
|
protected static int |
WAVE_FORMAT_ECHOSC3
Echo Speech Corporation
|
protected static int |
WAVE_FORMAT_ESPCM
ESS Technology
|
protected static int |
WAVE_FORMAT_FM_TOWNS_SND
Fujitsu Corp.
|
protected static int |
WAVE_FORMAT_G721_ADPCM
Antex Electronics Corporation
|
protected static int |
WAVE_FORMAT_G722_ADPCM
APICOM
|
protected static int |
WAVE_FORMAT_G723_ADPCM
Antex Electronics Corporation
|
protected static int |
WAVE_FORMAT_G726_ADPCM
APICOM
|
protected static int |
WAVE_FORMAT_G728_CELP
Antex Electronics Corporation
|
protected static int |
WAVE_FORMAT_GSM610
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_IBM_CVSD
IBM Corporation
|
protected static int |
WAVE_FORMAT_IEEE_FLOAT
Microsoft Corporation IEEE754: range (+1, -1] 32-bit/64-bit format as
defined by MSVC++ float/double type
|
protected static int |
WAVE_FORMAT_IMA_ADPCM
Intel Corporation
|
protected static int |
WAVE_FORMAT_LH_CODEC
Lernout & Hauspie
|
protected static int |
WAVE_FORMAT_MEDIASPACE_ADPCM
Videologic
|
protected static int |
WAVE_FORMAT_MEDIAVISION_ADPCM
Media Vision, Inc.
|
protected static int |
WAVE_FORMAT_MPEG
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_MPEGLAYER3
ISO/MPEG Layer3 Format Tag
|
protected static int |
WAVE_FORMAT_MSNAUDIO
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_MULAW
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_NMS_VBXADPCM
Natural MicroSystems
|
protected static int |
WAVE_FORMAT_NORRIS
Norris Communications, Inc.
|
protected static int |
WAVE_FORMAT_OKI_ADPCM
OKI
|
protected static int |
WAVE_FORMAT_OLIADPCM
Ing C.
|
protected static int |
WAVE_FORMAT_OLICELP
Ing C.
|
protected static int |
WAVE_FORMAT_OLIGSM
Ing C.
|
protected static int |
WAVE_FORMAT_OLIOPR
Ing C.
|
protected static int |
WAVE_FORMAT_OLISBC
Ing C.
|
protected static int |
WAVE_FORMAT_PCM
Microsoft Corporation
|
protected static int |
WAVE_FORMAT_QUARTERDECK
Quarterdeck Corporation
|
protected static int |
WAVE_FORMAT_RHETOREX_ADPCM
Rhetorex Inc
|
protected static int |
WAVE_FORMAT_ROCKWELL_ADPCM
Rockwell International
|
protected static int |
WAVE_FORMAT_ROCKWELL_DIGITALK
Rockwell International
|
protected static int |
WAVE_FORMAT_SIERRA_ADPCM
Sierra Semiconductor Corp
|
protected static int |
WAVE_FORMAT_SOFTSOUND
Softsound, Ltd.
|
protected static int |
WAVE_FORMAT_SONARC
Speech Compression
|
protected static int |
WAVE_FORMAT_VOXWARE
Voxware Inc
|
protected static int |
WAVE_FORMAT_XEBEC
Xebec Multimedia Solutions Limited
|
protected static int |
WAVE_FORMAT_YAMAHA_ADPCM
Yamaha Corporation of America
|
protected int |
wFormatTag
Waveform-audio format type.
|
codec, extraHeaders, fccHandler, flags, format, initialFrames, inputBuffer, language, length, mediaType, name, outputBuffer, priority, quality, rate, readIndex, samples, scale, startTime, strfChunk, strhChunk, syncInterval, twoCC
Constructor and Description |
---|
AudioTrack(int trackIndex,
int fourCC) |
Modifier and Type | Method and Description |
---|---|
int |
getSampleChunkFourCC(boolean isSync) |
long |
getSTRFChunkSize() |
addSample
protected int wFormatTag
protected int channels
protected long samplesPerSec
protected long avgBytesPerSec
protected int blockAlign
protected int bitsPerSample
protected static final int WAVE_FORMAT_PCM
protected static final int WAVE_FORMAT_ADPCM
protected static final int WAVE_FORMAT_IEEE_FLOAT
protected static final int WAVE_FORMAT_IBM_CVSD
protected static final int WAVE_FORMAT_ALAW
protected static final int WAVE_FORMAT_MULAW
protected static final int WAVE_FORMAT_OKI_ADPCM
protected static final int WAVE_FORMAT_DVI_ADPCM
protected static final int WAVE_FORMAT_IMA_ADPCM
protected static final int WAVE_FORMAT_MEDIASPACE_ADPCM
protected static final int WAVE_FORMAT_SIERRA_ADPCM
protected static final int WAVE_FORMAT_G723_ADPCM
protected static final int WAVE_FORMAT_DIGISTD
protected static final int WAVE_FORMAT_DIGIFIX
protected static final int WAVE_FORMAT_DIALOGIC_OKI_ADPCM
protected static final int WAVE_FORMAT_MEDIAVISION_ADPCM
protected static final int WAVE_FORMAT_YAMAHA_ADPCM
protected static final int WAVE_FORMAT_SONARC
protected static final int WAVE_FORMAT_DSPGROUP_TRUESPEECH
protected static final int WAVE_FORMAT_ECHOSC1
protected static final int WAVE_FORMAT_AUDIOFILE_AF36
protected static final int WAVE_FORMAT_APTX
protected static final int WAVE_FORMAT_AUDIOFILE_AF10
protected static final int WAVE_FORMAT_DOLBY_AC2
protected static final int WAVE_FORMAT_GSM610
protected static final int WAVE_FORMAT_MSNAUDIO
protected static final int WAVE_FORMAT_ANTEX_ADPCME
protected static final int WAVE_FORMAT_CONTROL_RES_VQLPC
protected static final int WAVE_FORMAT_DIGIREAL
protected static final int WAVE_FORMAT_DIGIADPCM
protected static final int WAVE_FORMAT_CONTROL_RES_CR10
protected static final int WAVE_FORMAT_NMS_VBXADPCM
protected static final int WAVE_FORMAT_CS_IMAADPCM
protected static final int WAVE_FORMAT_ECHOSC3
protected static final int WAVE_FORMAT_ROCKWELL_ADPCM
protected static final int WAVE_FORMAT_ROCKWELL_DIGITALK
protected static final int WAVE_FORMAT_XEBEC
protected static final int WAVE_FORMAT_G721_ADPCM
protected static final int WAVE_FORMAT_G728_CELP
protected static final int WAVE_FORMAT_MPEG
protected static final int WAVE_FORMAT_MPEGLAYER3
protected static final int WAVE_FORMAT_CIRRUS
protected static final int WAVE_FORMAT_ESPCM
protected static final int WAVE_FORMAT_VOXWARE
protected static final int WAVE_FORMAT_CANOPUS_ATRAC
protected static final int WAVE_FORMAT_G726_ADPCM
protected static final int WAVE_FORMAT_G722_ADPCM
protected static final int WAVE_FORMAT_DSAT
protected static final int WAVE_FORMAT_DSAT_DISPLAY
protected static final int WAVE_FORMAT_SOFTSOUND
protected static final int WAVE_FORMAT_RHETOREX_ADPCM
protected static final int WAVE_FORMAT_CREATIVE_ADPCM
protected static final int WAVE_FORMAT_CREATIVE_FASTSPEECH8
protected static final int WAVE_FORMAT_CREATIVE_FASTSPEECH10
protected static final int WAVE_FORMAT_QUARTERDECK
protected static final int WAVE_FORMAT_FM_TOWNS_SND
protected static final int WAVE_FORMAT_BTV_DIGITAL
protected static final int WAVE_FORMAT_OLIGSM
protected static final int WAVE_FORMAT_OLIADPCM
protected static final int WAVE_FORMAT_OLICELP
protected static final int WAVE_FORMAT_OLISBC
protected static final int WAVE_FORMAT_OLIOPR
protected static final int WAVE_FORMAT_LH_CODEC
protected static final int WAVE_FORMAT_NORRIS
protected static final int WAVE_FORMAT_DEVELOPMENT
public long getSTRFChunkSize()
getSTRFChunkSize
in class AbstractAVIStream.Track
public int getSampleChunkFourCC(boolean isSync)
getSampleChunkFourCC
in class AbstractAVIStream.Track