add Application Programming Interface (API) page

Christian R. Helmrich 2020-01-28 21:00:08 +00:00
parent e734f3d8d8
commit 68d095c116

84
api.md Normal file

@ -0,0 +1,84 @@
exhale Wiki :: Application Programming Interface (API)
======================================================
The following is a description of the public C/C++ functions exported by the exhale library for use by external applications, representing exhale's application programming interface (API). These functions are described in the order in which they must be called. The exact function and *ExhaleEncAPI* class prototypes are declared in the header file [exhaleDecl.h](https://gitlab.com/ecodis/exhale/blob/master/include/exhaleDecl.h) provided in the `include` subdirectory of the exhale source distribution.
ExhaleEncAPI* exhaleCreate( )
-----------------------------
**C declaration**
ExhaleEncAPI* `exhaleCreate`(int32_t* const inputPcmData, unsigned char* const outputAuData, const unsigned sampleRate, const unsigned numChannels, const unsigned frameLength, const unsigned indepPeriod, const unsigned varBitRateMode, const bool useNoiseFilling, const bool useEcodisExt);
**C++ class declaration**
*none*
**Purpose**
create an *ExhaleEncAPI* object and return a pointer to it
unsigned exhaleInitEncoder( )
-----------------------------
**C declaration**
unsigned `exhaleInitEncoder`(ExhaleEncAPI* exhaleEnc, unsigned char* const audioConfigBuffer, uint32_t* const audioConfigBytes);
**C++ class declaration**
unsigned ExhaleEncAPI::`initEncoder`(unsigned char* const audioConfigBuffer, uint32_t* const audioConfigBytes = nullptr);
**Purpose**
initialize an *ExhaleEncAPI* object for encoding
unsigned exhaleEncodeLookahead( )
---------------------------------
**C declaration**
unsigned `exhaleEncodeLookahead`(ExhaleEncAPI* exhaleEnc);
**C++ class declaration**
unsigned ExhaleEncAPI::`encodeLookahead`();
**Purpose**
encode the first (lookahead) frame with an *ExhaleEncAPI* object
unsigned exhaleEncodeFrame( )
-----------------------------
**C declaration**
unsigned `exhaleEncodeFrame`(ExhaleEncAPI* exhaleEnc);
**C++ class declaration**
unsigned ExhaleEncAPI::`encodeFrame`();
**Purpose**
encode a regular frame with an *ExhaleEncAPI* object
unsigned exhaleDelete( )
------------------------
**C declaration**
unsigned `exhaleDelete`(ExhaleEncAPI* exhaleEnc);
**C++ class declaration**
ExhaleEncAPI::`~ExhaleEncAPI`(); *(class destructor)*
**Purpose**
free all dynamic memory allocated by an *ExhaleEncAPI* object