1bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/*
2bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee INTEL CONFIDENTIAL
3bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Copyright 2009 Intel Corporation All Rights Reserved.
4bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee The source code contained or described herein and all documents related to the source code ("Material") are owned by Intel Corporation or its suppliers or licensors. Title to the Material remains with Intel Corporation or its suppliers and licensors. The Material contains trade secrets and proprietary and confidential information of Intel or its suppliers and licensors. The Material is protected by worldwide copyright and trade secret laws and treaty provisions. No part of the Material may be used, copied, reproduced, modified, published, uploaded, posted, transmitted, distributed, or disclosed in any way without Intel’s prior express written permission.
5bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
6bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee No license under any patent, copyright, trade secret or other intellectual property right is granted to or conferred upon you by disclosure or delivery of the Materials, either expressly, by implication, inducement, estoppel or otherwise. Any license under such intellectual property rights must be express and approved by Intel in writing.
7bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
8bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
9bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#ifndef __MIX_ACP_AAC_H__
10bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define __MIX_ACP_AAC_H__
11bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
12bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#include "mixacp.h"
13bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
14bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
15bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_TYPE_AUDIOCONFIGPARAMSAAC:
16bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
17bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Get type of class.
18bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
19bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_TYPE_AUDIOCONFIGPARAMSAAC (mix_acp_aac_get_type ())
20bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
21bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
22bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_AUDIOCONFIGPARAMSAAC:
23bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: object to be type-casted.
24bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
25bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Type casting
26bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
27bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_AUDIOCONFIGPARAMSAAC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MIX_TYPE_AUDIOCONFIGPARAMSAAC, MixAudioConfigParamsAAC))
28bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
29bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
30bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_IS_AUDIOCONFIGPARAMSAAC:
31bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: an object.
32bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
33bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Checks if the given object is an instance of #MixAudioConfigParams
34bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
35bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_IS_AUDIOCONFIGPARAMSAAC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MIX_TYPE_AUDIOCONFIGPARAMSAAC))
36bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
37bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
38bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_AUDIOCONFIGPARAMSAAC_CLASS:
39bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @klass: class to be type-casted.
40bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
41bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Type Casting.
42bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
43bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_AUDIOCONFIGPARAMSAAC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MIX_TYPE_AUDIOCONFIGPARAMSAAC, MixAudioConfigParamsAACClass))
44bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
45bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
46bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_IS_AUDIOCONFIGPARAMSAAC_CLASS:
47bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @klass: a class.
48bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
49bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Checks if the given class is #MixAudioConfigParamsClass
50bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
51bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_IS_AUDIOCONFIGPARAMSAAC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MIX_TYPE_AUDIOCONFIGPARAMSAAC))
52bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
53bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
54bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_AUDIOCONFIGPARAMSAAC_GET_CLASS:
55bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: a #MixAudioConfigParams object.
56bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
57bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Get the class instance of the object.
58bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
59bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_AUDIOCONFIGPARAMSAAC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MIX_TYPE_AUDIOCONFIGPARAMSAAC, MixAudioConfigParamsAACClass))
60bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
61bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixAudioConfigParamsAAC        MixAudioConfigParamsAAC;
62bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct _MixAudioConfigParamsAACClass   MixAudioConfigParamsAACClass;
63bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
64bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
65bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAACBitrateType:
66bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BR_NULL: Undefined bit rate type.
67bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BR_CONSTANT: Constant bit rate.
68bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BR_VARIABLE: Variable bit rate.
69bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BR_LAST: last entry.
70bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
71bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Types of bitrate in AAC.
72bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
73bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
74bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BR_NULL=-1,
75bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BR_CONSTANT=0,
76bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BR_VARIABLE,
77bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BR_LAST
78bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixAACBitrateType;
79bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
80bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
81bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAACBitstreamFormt:
82bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BS_NULL: Undefined bitstream format.
83bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BS_ADTS: Bitstream is in ADTS format.
84bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BS_ADIF: Bitstream is in ADIF format.
85bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BS_RAW: Bitstream is in raw format.
86bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_BS_LAST: Last entry.
87bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
88bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * AAC bitstream format.
89bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
90bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
91bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BS_NULL=-1,
92bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BS_ADTS=0,
93bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BS_ADIF,
94bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BS_RAW,
95bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_BS_LAST
96bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixAACBitstreamFormt;
97bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
98bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
99bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAACProfile:
100bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_PROFILE_NULL: Undefined profile.
101bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_PROFILE_MAIN: <emphasis>Not Supported</emphasis> AAC Main profile.
102bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_PROFILE_LC: AAC-LC profile, including support of SBR and PS tool.
103bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_PROFILE_SSR: <emphasis>Not Supported</emphasis> SSR profile.
104bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_PROFILE_LAST: Last entry.
105bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
106bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * AAC profiles definitions.
107bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
108bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
109bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_PROFILE_NULL=-1,
110bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_PROFILE_MAIN=0,
111bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_PROFILE_LC,
112bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_PROFILE_SSR,
113bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_PROFILE_LAST
114bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixAACProfile;
115bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
116bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* Using enumeration as this MPEG ID definition is specific to SST and different from
117bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee any MPEG/ADTS header.
118bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
119bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
120bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAACMpegID:
121bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_MPEG_ID_NULL: Undefined MPEG ID.
122bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_MPEG_2_ID: Indicate MPEG 2 Audio.
123bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_MPEG_4_ID: Indicate MPEG 4 Audio.
124bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MIX_AAC_MPEG_LAST: last entry.
125bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
126bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * AAC MPEG ID.
127bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
128bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum {
129bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_MPEG_ID_NULL=-1,
130bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_MPEG_2_ID = 0,
131bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_MPEG_4_ID = 1,
132bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MIX_AAC_MPEG_LAST
133bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} MixAACMpegID;
134bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
135bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
136bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamsAAC:
137bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @parent: parent.
138bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @MPEG_id: MPEG ID. See #mix_acp_aac_set_mpeg_id
139bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @bit_stream_format: Bitstream format. See #mix_acp_aac_set_bit_stream_format.
140bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aac_profile: AAC profile. See #mix_acp_aac_set_aac_profile.
141bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aot: Audio object type. See #mix_acp_aac_set_aot
142bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aac_sample_rate: See #MIX_ACP_AAC_SAMPLE_RATE macro.
143bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aac_channels: See #MIX_ACP_AAC_CHANNELS macro.
144bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @bit_rate_type: Bitrate type. See #mix_acp_aac_set_bit_rate_type
145bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @sbrPresentFlag: See #MIX_ACP_AAC_SBR_FLAG macro.
146bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @psPresentFlag: See #MIX_ACP_AAC_PS_FLAG macro.
147bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @CRC: CRC check 0:disable, 1:enable.
148bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @pce_present: <emphasis>Not Used.</emphasis> See #MIX_ACP_AAC_PCE_FLAG
149bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @syntc_id: <emphasis>Not Used.</emphasis> 0 for ID_SCE(Dula Mono), -1 for raw.
150bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @syntc_tag: <emphasis>Not Used.</emphasis> -1 for raw. 0-16 for rest of the streams.
151bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @num_syntc_elems: <emphasis>Not Used.</emphasis> Number of syntatic elements.
152bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
153bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudio Parameter object
154bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
155bd8388b4555645b3d29abc6a94c303638064d69awonjong.leestruct _MixAudioConfigParamsAAC
156bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
157bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /*< public >*/
158bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAudioConfigParams parent;
159bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
160bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /*< public >*/
161bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /* Audio Format Parameters */
162bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAACMpegID MPEG_id;
163bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAACBitstreamFormt bit_stream_format;
164bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAACProfile aac_profile;
165bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  guint aot;
166bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  guint aac_sample_rate;
167bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  guint aac_channels;
168bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAACBitrateType bit_rate_type;
169bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  gboolean CRC;
170bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  guint sbrPresentFlag;
171bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  guint psPresentFlag;
172bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  gboolean pce_present;
173bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  gint8 syntc_id[2];
174bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  gint8 syntc_tag[2];
175bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  gint num_syntc_elems;
176bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /*< private >*/
177bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  void* reserved1;
178bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  void* reserved2;
179bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  void* reserved3;
180bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  void* reserved4;
181bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee};
182bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
183bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
184bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamsAACClass:
185bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
186bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MI-X Audio object class
187bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
188bd8388b4555645b3d29abc6a94c303638064d69awonjong.leestruct _MixAudioConfigParamsAACClass
189bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{
190bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /*< public >*/
191bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  MixAudioConfigParamsClass parent_class;
192bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
193bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee  /* class members */
194bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee};
195bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
196bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
197bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_type:
198bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: type
199bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
200bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Get the type of object.
201bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
202bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeGType mix_acp_aac_get_type (void);
203bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
204bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
205bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_new:
206bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: A newly allocated instance of #MixAudioConfigParamsAAC
207bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
208bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Use this method to create new instance of #MixAudioConfigParamsAAC
209bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
210bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAudioConfigParamsAAC *mix_acp_aac_new(void);
211bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
212bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
213bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_ref:
214bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @mix: object to add reference
215bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: the MixAudioConfigParamsAAC instance where reference count has been increased.
216bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
217bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Add reference count.
218bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
219bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAudioConfigParamsAAC *mix_acp_aac_ref(MixAudioConfigParamsAAC *mix);
220bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
221bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
222bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_unref:
223bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: object to unref.
224bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
225bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Decrement reference count of the object.
226bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
227bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define mix_acp_aac_unref(obj) mix_params_unref(MIX_PARAMS(obj))
228bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
229bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* Class Methods */
230bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
231bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
232bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
233bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_set_mpeg_id:
234bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
235bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @mpegid: MPEG ID to set.
236bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @return: MIX_RESULT
237bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
238bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Configure decoder to treat audio as MPEG 2 or MPEG 4.
239bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
240bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_acp_aac_set_mpeg_id(MixAudioConfigParamsAAC *obj, MixAACMpegID mpegid);
241bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
242bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
243bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_mpeg_id:
244bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object
245bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: MPEG ID.
246bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
247bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Retrieve currently configured mpeg id value.
248bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
249bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAACMpegID mix_acp_aac_get_mpeg_id(MixAudioConfigParamsAAC *obj);
250bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
251bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
252bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_CRC:
253bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object.
254bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
255bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * #MixAudioConfigParamAAC.CRC accessor.
256bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
257bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_CRC(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->CRC)
258bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
259bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
260bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_set_aot:
261bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
262bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aot: Audio Object Type.
263bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
264bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Audio Object Type for the MPEG-4 audio stream. Valid value are:
265bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
266bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 2 - for AAC-LC
267bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
268bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 5 - for SBR
269bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
270bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Method returns MIX_RESULT_NOT_SUPPORTED for not supported value.
271bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
272bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
273bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_acp_aac_set_aot(MixAudioConfigParamsAAC *obj, guint aot);
274bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
275bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
276bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_aot:
277bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
278bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aot: Pointer to receive the Audio Object Type.
279bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @return: Currently configured audio object type. Or 0 if not yet specified.
280bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
281bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * To retrieve currently configured audio object type.
282bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/
283bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeguint mix_acp_aac_get_aot(MixAudioConfigParamsAAC *obj);
284bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
285bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
286bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_SBR_FLAG:
287bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object
288bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
289bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamAAC.sbrPresentFlag accessor.
290bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
291bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Applicable only when @bit_stream_format==#MIX_AAC_BS_RAW. Indicates whether SBR data is present.
292bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
293bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 0: Absent
294bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
295bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 1: Present
296bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
297bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * -1 (0xffffffff): indicates implicit signalling.
298bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
299bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_SBR_FLAG(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->sbrPresentFlag)
300bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
301bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
302bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_PS_FLAG:
303bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object
304bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
305bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamAAC.psPresentFlag accessor.
306bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
307bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Applicable only when @bit_stream_format==#MIX_AAC_BS_RAW. Indicates whether PS data is present.
308bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
309bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 0: Absent
310bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
311bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 1: Present
312bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
313bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * -1 (0xffffffff): indicates implicit signalling.
314bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
315bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_PS_FLAG(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->psPresentFlag)
316bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
317bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
318bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_PCE_FLAG:
319bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object.
320bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
321bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamAAC.pce_present accessor.
322bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
323bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Applicable only when @bit_stream_format==#MIX_AAC_BS_RAW. Indicates PCE data presence.
324bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
325bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 1:present
326bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
327bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * 0:absent.
328bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
329bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * <remark>Not Used on Moorestown.</remark>
330bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
331bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_PCE_FLAG(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->pce_present)
332bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
333bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
334bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_SAMPLE_RATE:
335bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC object.
336bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
337bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamAAC.aac_sample_rate accessor.
338bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
339bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Plain AAC decoder operating sample rate. Which could be different from the output sampling rate with HE AAC v1 and v2.
340bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
341bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_SAMPLE_RATE(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->aac_sample_rate)
342bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
343bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
344bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MIX_ACP_AAC_CHANNELS:
345bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
346bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
347bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * MixAudioConfigParamAAC.aac_channels accessor.
348bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
349bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Indicates the number of output channels used by AAC decoder before SBR or PS tools are applied.
350bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
351bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
352bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define MIX_ACP_AAC_CHANNELS(obj) (MIX_AUDIOCONFIGPARAMSAAC(obj)->aac_channels)
353bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
354bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
355bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_bit_stream_format:
356bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
357bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: #MixAACBitstreamFormt
358bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
359bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Return the bitstream format currently configured.
360bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
361bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAACBitstreamFormt mix_acp_aac_get_bit_stream_format(MixAudioConfigParamsAAC *obj);
362bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
363bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
364bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_set_bit_stream_format:
365bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
366bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @bit_stream_format: Bit stream format.
367bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: MIX_RESULT
368bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
369bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Set the type of bitstream format as specified in #MixAACBitstreamFormt.
370bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
371bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_acp_aac_set_bit_stream_format(MixAudioConfigParamsAAC *obj, MixAACBitstreamFormt bit_stream_format);
372bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
373bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
374bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_aac_profile:
375bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
376bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: #MixAACProfile
377bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
378bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Retrieve the AAC profile currently configured.
379bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
380bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAACProfile mix_acp_aac_get_aac_profile(MixAudioConfigParamsAAC *obj);
381bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
382bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
383bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_set_aac_profile:
384bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
385bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @aac_profile: AAC profile to set.
386bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: MIX_RESULT
387bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
388bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Configure AAC profile for current session.
389bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
390bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Only #MIX_AAC_PROFILE_LC is supported in Moorestown.
391bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
392bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_acp_aac_set_aac_profile(MixAudioConfigParamsAAC *obj, MixAACProfile aac_profile);
393bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
394bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
395bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_get_bit_rate_type:
396bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
397bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: #MixAACBitrateType
398bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
399bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Retrieve the bit rate type currently configured.
400bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
401bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMixAACBitrateType mix_acp_aac_get_bit_rate_type(MixAudioConfigParamsAAC *obj);
402bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
403bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/**
404bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * mix_acp_aac_set_bit_rate_type:
405bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @obj: #MixAudioConfigParamsAAC
406bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @bit_rate_type: Bit rate type to set.
407bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * @returns: MIX_RESULT
408bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee *
409bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Set the bit rate type used.
410bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */
411bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeMIX_RESULT mix_acp_aac_set_bit_rate_type(MixAudioConfigParamsAAC *obj, MixAACBitrateType bit_rate_type);
412bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee
413bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#endif /* __MIX_AUDIOCONFIGPARAMSAAC_H__ */
414