📄 iaudenc1.h
字号:
/* * Copyright 2006 * Texas Instruments Incorporated * * All rights reserved. Property of Texas Instruments Incorporated * Restricted rights to use, duplicate or disclose this code are * granted through contract. * *//** * @file ti/xdais/dm/iaudenc1.h * * @brief This header defines all types, constants, and functions * shared by all implementations of the audio encoder * algorithms. *//** * @defgroup ti_xdais_dm_IAUDENC1 xDM 1.0 Audio Encoder Interface * * This is the xDM 1.0 Audio Encoder Interface. */#ifndef ti_xdais_dm_IAUDENC1_#define ti_xdais_dm_IAUDENC1_#include <ti/xdais/ialg.h>#include <ti/xdais/xdas.h>#include "xdm.h"#include "iaudio.h"#ifdef __cplusplusextern "C" {#endif/** @ingroup ti_xdais_dm_IAUDENC1 *//*@{*/#define IAUDENC1_ERUNTIME XDM_ERUNTIME /**< @copydoc XDM_ERUNTIME */#define IAUDENC1_EOK XDM_EOK /**< @copydoc XDM_EOK */#define IAUDENC1_EFAIL XDM_EFAIL /**< @copydoc XDM_EFAIL */#define IAUDENC1_EUNSUPPORTED XDM_EUNSUPPORTED /**< @copydoc XDM_EUNSUPPORTED *//** * @brief This must be the first field of all IAUDENC1 * instance objects. */typedef struct IAUDENC1_Obj { struct IAUDENC1_Fxns *fxns;} IAUDENC1_Obj;/** * @brief Opaque handle to an IAUDENC1 objects. */typedef struct IAUDENC1_Obj *IAUDENC1_Handle;/** * @brief Defines the creation time parameters for * all IAUDENC1 instance objects. * * @extensibleStruct */typedef struct IAUDENC1_Params { XDAS_Int32 size; /**< @sizeField */ XDAS_Int32 sampleRate; /**< Sampling Frequency in Hz. * For example, if the sampling * frequency is 44.1 kHz, this field will * be 44100. * * @sa IAUDENC1_DynamicParams.sampleRate * @sa IAUDENC1_Status.sampleRate */ XDAS_Int32 bitRate; /**< Average bit rate, in bits per second. * * @sa IAUDENC1_DynamicParams.bitRate * @sa IAUDENC1_Status.bitRate */ XDAS_Int32 channelMode; /**< Input Channel Mode. * * @sa IAUDIO_ChannelMode * @sa IAUDENC1_DynamicParams.channelMode */ XDAS_Int32 dataEndianness; /**< Endianness of output data. * * @sa XDM_DataFormat */ XDAS_Int32 encMode; /**< Encoding mode. * * @sa IAUDIO_EncMode * @sa IAUDENC1_Status.encMode */ XDAS_Int32 inputFormat; /**< Input format block/interleaved. * * @sa IAUDIO_PcmFormat */ XDAS_Int32 inputBitsPerSample;/**< Number of input bits per output sample. * For example, if there are 16 bits per * PCM input sample, this should be set to 16. */ XDAS_Int32 maxBitRate; /**< Maximum bit rate in case of VBR. Some * of the encoders allow you to specify * max bit rate in case of VBR mode */ XDAS_Int32 dualMonoMode; /**< Mode to indicate type of Dual Mono. * Applicable only if channelMode is * dualMono * * @sa IAUDIO_DualMonoMode */ XDAS_Int32 crcFlag; /**< Flag indicating whether the encoder * should insert CRC bits into the * bitstream or not. * * Valid values for this field are XDAS_TRUE * and XDAS_FALSE. */ XDAS_Int32 ancFlag; /**< Ancillary Data Flag. * * @remarks This flag indicates to the * encoder that Ancillary data * needs to be encoded along with * the normal audio data. The * ancillary data can be provided * for each input frame. * * Valid values for this field are XDAS_TRUE * and XDAS_FALSE. */ XDAS_Int32 lfeFlag; /**< Flag indicating whether LFE channel data * is present or not in the input. * * Valid values for this field are XDAS_TRUE * and XDAS_FALSE. */} IAUDENC1_Params;/** * @brief This structure defines the algorithm parameters that can be * modified after creation via control() calls. * * @remarks It is not necessary that given implementation support all * dynamic parameters to be configurable at run time. If a * particular algorithm does not support run-time updates to * a parameter that the application is attempting to change * at runtime, it may indicate this as an error. * * @extensibleStruct * * @sa IAUDENC1_Fxns::control() */typedef struct IAUDENC1_DynamicParams { XDAS_Int32 size; /**< @sizeField */ XDAS_Int32 bitRate; /**< Average bit rate, in bits per second. * * @sa IAUDENC1_Params.bitRate * @sa IAUDENC1_Status.bitRate */ XDAS_Int32 sampleRate; /**< Sampling frequency in Hz. * For example, if the sampling * frequency is 44.1 kHz, this field will * be 44100. * * @sa IAUDENC1_Params.sampleRate * @sa IAUDENC1_Status.sampleRate */ XDAS_Int32 channelMode; /**< Input Channel Mode. * * @sa IAUDIO_ChannelMode * @sa IAUDENC1_Params.channelMode */ XDAS_Int32 lfeFlag; /**< Flag indicating whether LFE channel data * is present or not in the input. * * Valid values for this field are XDAS_TRUE * and XDAS_FALSE. */ XDAS_Int32 dualMonoMode; /**< Mode to indicate type of Dual Mono. * Applicable only if channelMode is * dualMono * * @sa IAUDIO_DualMonoMode */} IAUDENC1_DynamicParams;/** * @brief Defines the input arguments for all IAUDENC1 instance * process function. * * @extensibleStruct * * @sa IAUDENC1_Fxns::process() */typedef struct IAUDENC1_InArgs { XDAS_Int32 size; /**< @sizeField */ XDAS_Int32 numInSamples; /**< Number of Input Samples per Channel */ XDM_SingleBufDesc ancData; /**< Ancillary Data. * * @remarks Ancillary data contains any * extra information to be
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -