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