blob: 46a77341a3a9fb362fa6f3555dccf07bea9b7ddd [file] [log] [blame]
Indranil Chakraborty36e686a2018-04-05 12:05:02 +05301#ifndef __AAC_ENCODE__
2#define __AAC_ENCODE__
3/*
4 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
8 * met:
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above
12 * copyright notice, this list of conditions and the following
13 * disclaimer in the documentation and/or other materials provided
14 * with the distribution.
15 * * Neither the name of The Linux Foundation nor the names of its
16 * contributors may be used to endorse or promote products derived
17 * from this software without specific prior written permission.
18 *
19 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
20 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
22 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
26 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
28 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
29 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 * */
31typedef struct aacConfig {
32 unsigned int n_sampleRate;
33 unsigned int n_channels;
34 unsigned int n_bitsPerSample;
35 unsigned int n_bitrate;
36 unsigned int n_samplesPerFrame;
37}aacConfigType;
38
39class aacEncode {
40public:
41 aacEncode();
42 ~aacEncode();
43 bool aacConfigure(aacConfigType* p_aacConfig);
44 bool aacEncodeFrame(unsigned char* p_inBuffer,
45 unsigned int n_inSize,
46 unsigned char* p_outBuffer,
47 unsigned int n_outSize,
48 unsigned int* p_length);
49
50private:
51 void* p_aacHandle;
52 void* p_aacInfo;
53 aacConfigType s_aacConfig;
54};
55#endif