171 lines
4.4 KiB
C
171 lines
4.4 KiB
C
// Copyright (c) 2017-2019 Intel Corporation
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in all
|
|
// copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
// SOFTWARE.
|
|
#ifndef __MFXASTRUCTURES_H__
|
|
#define __MFXASTRUCTURES_H__
|
|
#include "mfxcommon.h"
|
|
|
|
#if !defined (__GNUC__)
|
|
#pragma warning(disable: 4201)
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif /* __cplusplus */
|
|
|
|
/* CodecId */
|
|
enum {
|
|
MFX_CODEC_AAC =MFX_MAKEFOURCC('A','A','C',' '),
|
|
MFX_CODEC_MP3 =MFX_MAKEFOURCC('M','P','3',' ')
|
|
};
|
|
|
|
enum {
|
|
/* AAC Profiles & Levels */
|
|
MFX_PROFILE_AAC_LC =2,
|
|
MFX_PROFILE_AAC_LTP =4,
|
|
MFX_PROFILE_AAC_MAIN =1,
|
|
MFX_PROFILE_AAC_SSR =3,
|
|
MFX_PROFILE_AAC_HE =5,
|
|
MFX_PROFILE_AAC_ALS =0x20,
|
|
MFX_PROFILE_AAC_BSAC =22,
|
|
MFX_PROFILE_AAC_PS =29,
|
|
|
|
/*MPEG AUDIO*/
|
|
MFX_AUDIO_MPEG1_LAYER1 =0x00000110,
|
|
MFX_AUDIO_MPEG1_LAYER2 =0x00000120,
|
|
MFX_AUDIO_MPEG1_LAYER3 =0x00000140,
|
|
MFX_AUDIO_MPEG2_LAYER1 =0x00000210,
|
|
MFX_AUDIO_MPEG2_LAYER2 =0x00000220,
|
|
MFX_AUDIO_MPEG2_LAYER3 =0x00000240
|
|
};
|
|
|
|
/*AAC HE decoder down sampling*/
|
|
enum {
|
|
MFX_AUDIO_AAC_HE_DWNSMPL_OFF=0,
|
|
MFX_AUDIO_AAC_HE_DWNSMPL_ON= 1
|
|
};
|
|
|
|
/* AAC decoder support of PS */
|
|
enum {
|
|
MFX_AUDIO_AAC_PS_DISABLE= 0,
|
|
MFX_AUDIO_AAC_PS_PARSER= 1,
|
|
MFX_AUDIO_AAC_PS_ENABLE_BL= 111,
|
|
MFX_AUDIO_AAC_PS_ENABLE_UR= 411
|
|
};
|
|
|
|
/*AAC decoder SBR support*/
|
|
enum {
|
|
MFX_AUDIO_AAC_SBR_DISABLE = 0,
|
|
MFX_AUDIO_AAC_SBR_ENABLE= 1,
|
|
MFX_AUDIO_AAC_SBR_UNDEF= 2
|
|
};
|
|
|
|
/*AAC header type*/
|
|
enum{
|
|
MFX_AUDIO_AAC_ADTS= 1,
|
|
MFX_AUDIO_AAC_ADIF= 2,
|
|
MFX_AUDIO_AAC_RAW= 3,
|
|
};
|
|
|
|
/*AAC encoder stereo mode*/
|
|
enum
|
|
{
|
|
MFX_AUDIO_AAC_MONO= 0,
|
|
MFX_AUDIO_AAC_LR_STEREO= 1,
|
|
MFX_AUDIO_AAC_MS_STEREO= 2,
|
|
MFX_AUDIO_AAC_JOINT_STEREO= 3
|
|
};
|
|
|
|
MFX_PACK_BEGIN_USUAL_STRUCT()
|
|
typedef struct {
|
|
mfxU32 CodecId;
|
|
mfxU16 CodecProfile;
|
|
mfxU16 CodecLevel;
|
|
|
|
mfxU32 Bitrate;
|
|
mfxU32 SampleFrequency;
|
|
mfxU16 NumChannel;
|
|
mfxU16 BitPerSample;
|
|
|
|
mfxU16 reserved1[22];
|
|
|
|
union {
|
|
struct { /* AAC Decoding Options */
|
|
mfxU16 FlagPSSupportLev;
|
|
mfxU16 Layer;
|
|
mfxU16 AACHeaderDataSize;
|
|
mfxU8 AACHeaderData[64];
|
|
};
|
|
struct { /* AAC Encoding Options */
|
|
mfxU16 OutputFormat;
|
|
mfxU16 StereoMode;
|
|
mfxU16 reserved2[61];
|
|
};
|
|
};
|
|
} mfxAudioInfoMFX;
|
|
MFX_PACK_END()
|
|
|
|
MFX_PACK_BEGIN_STRUCT_W_PTR()
|
|
typedef struct {
|
|
mfxU16 AsyncDepth;
|
|
mfxU16 Protected;
|
|
mfxU16 reserved[14];
|
|
|
|
mfxAudioInfoMFX mfx;
|
|
mfxExtBuffer** ExtParam;
|
|
mfxU16 NumExtParam;
|
|
} mfxAudioParam;
|
|
MFX_PACK_END()
|
|
|
|
MFX_PACK_BEGIN_USUAL_STRUCT()
|
|
typedef struct {
|
|
mfxU32 SuggestedInputSize;
|
|
mfxU32 SuggestedOutputSize;
|
|
mfxU32 reserved[6];
|
|
} mfxAudioAllocRequest;
|
|
MFX_PACK_END()
|
|
|
|
MFX_PACK_BEGIN_STRUCT_W_L_TYPE()
|
|
typedef struct {
|
|
mfxU64 TimeStamp; /* 1/90KHz */
|
|
mfxU16 Locked;
|
|
mfxU16 NumChannels;
|
|
mfxU32 SampleFrequency;
|
|
mfxU16 BitPerSample;
|
|
mfxU16 reserved1[7];
|
|
|
|
mfxU8* Data;
|
|
mfxU32 reserved2;
|
|
mfxU32 DataLength;
|
|
mfxU32 MaxLength;
|
|
|
|
mfxU32 NumExtParam;
|
|
mfxExtBuffer **ExtParam;
|
|
} mfxAudioFrame;
|
|
MFX_PACK_END()
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|
|
|
|
|