diff --git a/api.md b/api.md index b7fd430..0d74425 100644 --- a/api.md +++ b/api.md @@ -52,6 +52,21 @@ initialize an *ExhaleEncAPI* object for encoding and allocate dynamic object mem * *audioConfigBuffer*: pointer to an unsigned 8-bit integer buffer to which the ASC data will be written. The buffer must be at least 16 bytes large. May be `NULL`, in which case no ASC is generated. * *audioConfigBytes*: pointer to a single unsigned 32-bit integer to which the byte-size of the ASC data is written. Optional parameter, may be `NULL`, in which case the size information is discarded. +**Since exhale 1.0.1**: +If, when calling this function, the integer pointed to by *audioConfigBytes* is nonzero, that +integer is interpreted as program *loudnessInfo( )* payload according to [ISO/IEC 23003-4](https://www.iso.org/standard/75930.html), Dynamic +Range Control (DRC), and included in the *UsacConfig( )* data generated by this function. The +bits of the nonzero integer pointed to by *audioConfigBytes* are interpreted as follows: + +| Bit Offset | Number of Bits | Syntax Element (Specification Table in ISO/IEC 23003-4) | +|------------|----------------|---------------------------------------------------------------| +| 31-30 | 2 | not used, should equal 0 | +| 29-18 | 12 | *bsSamplePeakLevel*, peak level of audio program (Table A.46) | +| 17-14 | 4 | *methodDefinition*, must be between 1 and 9 (Table A.49) | +| 13-6 | 8 | *methodValue*, loudness level of audio program (Table A.48) | +| 5-2 | 4 | *measurementSystem*, must be between 1 and 6 (Table A.50) | +| 1-0 | 2 | *reliability*, should equal 3, should not equal 0 (Table A.51)| + **Return value** zero (0) upon success, or nonzero (1-255 or 65535) in case of an error or if the *exhaleEnc* pointer is `NULL`