voAAC.h revision 956c553ab0ce72f8074ad0fda2ffd66a0305700c
1/*
2 ** Copyright 2003-2010, VisualOn, Inc.
3 **
4 ** Licensed under the Apache License, Version 2.0 (the "License");
5 ** you may not use this file except in compliance with the License.
6 ** You may obtain a copy of the License at
7 **
8 **     http://www.apache.org/licenses/LICENSE-2.0
9 **
10 ** Unless required by applicable law or agreed to in writing, software
11 ** distributed under the License is distributed on an "AS IS" BASIS,
12 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 ** See the License for the specific language governing permissions and
14 ** limitations under the License.
15 */
16/*******************************************************************************
17	File:		voAAC.h
18
19	Content:	AAC codec APIs & data types
20
21*******************************************************************************/
22
23#ifndef __voAAC_H__
24#define __voAAC_H__
25
26#ifdef __cplusplus
27extern "C" {
28#endif /* __cplusplus */
29
30#include "voAudio.h"
31
32/*!
33 * the frame type that the decoder supports
34 */
35typedef enum {
36	VOAAC_RAWDATA			= 0,	/*!<contains only raw aac data in a frame*/
37	VOAAC_ADTS				= 1,	/*!<contains ADTS header + raw AAC data in a frame*/
38	VOAAC_FT_MAX			= VO_MAX_ENUM_VALUE
39} VOAACFRAMETYPE;
40
41/*!
42 * the structure for AAC encoder input parameter
43 */
44typedef  struct {
45  int	  sampleRate;          /*! audio file sample rate */
46  int	  bitRate;             /*! encoder bit rate in bits/sec */
47  short   nChannels;		   /*! number of channels on input (1,2) */
48  short   adtsUsed;			   /*! whether write adts header */
49} AACENC_PARAM;
50
51/* AAC Param ID */
52#define VO_PID_AAC_Mdoule				0x42211000
53#define VO_PID_AAC_ENCPARAM				VO_PID_AAC_Mdoule | 0x0040  /*!< get/set AAC encoder parameter, the parameter is a pointer to AACENC_PARAM */
54
55/* AAC decoder error ID */
56#define VO_ERR_AAC_Mdoule				0x82210000
57#define VO_ERR_AAC_UNSFILEFORMAT		(VO_ERR_AAC_Mdoule | 0xF001)
58#define VO_ERR_AAC_UNSPROFILE			(VO_ERR_AAC_Mdoule | 0xF002)
59
60/**
61 * Get audio encoder API interface
62 * \param pEncHandle [out] Return the AAC Encoder handle.
63 * \retval VO_ERR_OK Succeeded.
64 */
65VO_S32 VO_API voGetAACEncAPI (VO_AUDIO_CODECAPI * pEncHandle);
66
67#ifdef __cplusplus
68}
69#endif /* __cplusplus */
70
71#endif // __voAAC_H__
72
73
74
75