xref: /aosp_15_r20/external/oboe/samples/parselib/README.md (revision 05767d913155b055644481607e6fa1e35e2fe72c)
1*05767d91SRobert Wu**parselib**
2*05767d91SRobert Wu==========
3*05767d91SRobert WuClasses for parsing and loading audio data.
4*05767d91SRobert Wu
5*05767d91SRobert Wu## Abstract
6*05767d91SRobert Wu(Oboe) **parselib** contains facilities for reading and loading audio data from streams. Streams can be wrapped around either files or memory blocks.
7*05767d91SRobert Wu
8*05767d91SRobert Wu**parselib** is written in C++ and is intended to be called from Android native code. It is implemented as a static library.
9*05767d91SRobert Wu
10*05767d91SRobert Wu## Supported Encodings
11*05767d91SRobert Wu* Microsoft WAV format
12*05767d91SRobert Wu
13*05767d91SRobert Wu## **parselib** project structure
14*05767d91SRobert Wu* stream
15*05767d91SRobert WuContains classes related to reading audio data from a stream abstraction
16*05767d91SRobert Wu
17*05767d91SRobert Wu* wav
18*05767d91SRobert WuContains classes to read/load audio data in WAV format
19*05767d91SRobert Wu
20*05767d91SRobert Wu## **stream** Classes
21*05767d91SRobert Wu### InputStream
22*05767d91SRobert WuAn abstract class that defines the `InputStream` interface.
23*05767d91SRobert Wu
24*05767d91SRobert Wu### FileInputStream
25*05767d91SRobert WuA concrete implementation of `InputStream` that reads data from a file.
26*05767d91SRobert Wu
27*05767d91SRobert Wu### MemInputStream
28*05767d91SRobert WuA concrete implementation of `InputStream` that reads data from a memory block.
29*05767d91SRobert Wu
30*05767d91SRobert Wu## **wav** Classes
31*05767d91SRobert WuContains classes to read/load audio data in WAV format. WAV format files are "Microsoft Resource Interchange File Format" (RIFF) files. WAV files contain a variety of RIFF "chunks", but only a few are required (see 'Chunk' classes below)
32*05767d91SRobert Wu
33*05767d91SRobert Wu### Utility
34*05767d91SRobert Wu#### AudioEncoding
35*05767d91SRobert WuDefines constants for various audio encodings
36*05767d91SRobert Wu
37*05767d91SRobert Wu### WavTypes
38*05767d91SRobert WuSupport for **RIFF** file types and managing FOURCC data.
39*05767d91SRobert Wu
40*05767d91SRobert Wu### WAV Data I/O
41*05767d91SRobert Wu#### WavStreamReader
42*05767d91SRobert WuParses and loads WAV data from an InputStream.
43*05767d91SRobert Wu
44*05767d91SRobert Wu### WAV Data
45*05767d91SRobert Wu#### WavChunkHeader
46*05767d91SRobert WuDefines common fields and operations for all WAV format RIFF Chunks.
47*05767d91SRobert Wu
48*05767d91SRobert Wu#### WavFmtChunkHeader
49*05767d91SRobert WuDefines fields and operations for RIFF '`fmt `' chunks
50*05767d91SRobert Wu
51*05767d91SRobert Wu#### WavRIFFChunkHeader
52*05767d91SRobert WuDefines fields and operations for RIFF '`data`' chunks
53