diff -r 000000000000 -r 951a5db380a0 videoeditorengine/mp3aacManipLib/inc/auddef.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/mp3aacManipLib/inc/auddef.h Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,354 @@ +/* +* Copyright (c) 2010 Ixonos Plc. +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - Initial contribution +* +* Contributors: +* Ixonos Plc +* +* Description: +* +*/ + + +/************************************************************************** + auddef.h - Constants and general declarations for MPEG type of audio formats. + + Author(s): Juha Ojanpera + Copyright (c) 1999-2004 by Nokia Research Center, Speech and Audio Systems. + *************************************************************************/ + +#ifndef MPAUD_DEF_H_ +#define MPAUD_DEF_H_ + +/*- Project Headers. --*/ +#include "defines.h" + + +/************************************************************************** + External Objects Provided + *************************************************************************/ + +/*-- General MPx Definitions. --*/ +/* +#ifndef PI +#define PI (3.14159265358979) +#endif +#define MPEG_AUDIO_ID (1) +#define MPEG_PHASE2_LSF (0) +#define SBLIMIT (32) +#define SSLIMIT (18) +#define MAX_MONO_SAMPLES (SBLIMIT * SSLIMIT) +#define HAN_SIZE (512) +#define NUM_SUBWIN (16) +#define SCALE (32768L) +#define SYNC_WORD ((long) 0x7ff) + +#define HEADER_BITS (20) +#define MAX_LONG_SFB_BANDS (22) +#define MAX_SHORT_SFB_BANDS (13) +#define MAX_BITRESER_SIZE (512) +#define CRC_MAX_PAYLOAD (34) +*/ +#define MP_SYNC_WORD_LENGTH (11) +/*-- MPEG Header Definitions - Mode Values --*/ +#define MPG_MD_STEREO (0) +#define MPG_MD_JOINT_STEREO (1) +#define MPG_MD_DUAL_CHANNEL (2) +#define MPG_MD_MONO (3) + +/*-- Channel definitions. --*/ +#define MONO_CHAN (0) +#define MAX_CHANNELS (2) +#define LEFT_CHANNEL (MONO_CHAN) +#define RIGHT_CHANNEL (MONO_CHAN + 1) + +/* + Purpose: Masks those bit fields from the header to zero that + do not remain fixed from frame to frame. + Explanation: Following fields are assumed to be fixed : + * 12th bit from the sync word + * version + * layer description + * sampling rate + * channel mode (layer 3 only) + * copyright bit + * original bit + * de-emphasis + + Following fields can vary from frame to frame : + * protection bit + * bit rate + * padding bit + * private bit + * channel mode extension + */ +#define HEADER_MASK(header) ((uint32)header & 0x001E0CCF) + +/* + Purpose: Macro to extract layer description. + Explanation: This is the bit value, use MP_Header::layer_number method + to interpret this value. */ +#define LAYER_MASK(header) (((uint32)header >> 17) & 3) + +/* + Purpose: Frame detection status. + Explanation: - */ +typedef enum SEEK_STATUS +{ + SYNC_FOUND = 0, + SYNC_LOST, + SYNC_BITS_OUT, + SYNC_MP3_FREE + +} SEEK_STATUS; + +/* + Purpose: Sync layer codes. + Explanation: - */ +typedef enum SYNC_STATUS +{ + LAYER1_STREAM, + LAYER2_STREAM, + LAYER3_STREAM, + + INIT_LAYER1_STREAM, + INIT_LAYER2_STREAM, + INIT_LAYER3_STREAM, + + INIT_MP_STREAM, + GET_1ST_MPSYNC_STREAM, + GET_MPSYNC_STREAM, + GET_MPHEADER_STREAM, + + INIT_AAC_STREAM, + ADTS_STREAM, + GET_ADTSSYNC_STREAM, + GET_ADTSHEADER_STREAM + +} SYNC_STATUS; + +/* + Purpose: Bitrate modes. + Explanation: - */ +/* +typedef enum BrType +{ + UNKNOWN, + CBR, + VBR, + FREE + +} BrType; +*/ +/* + Purpose: + Explanation: - */ +typedef enum GLITCH +{ + GLITCH_FREE, + GLITCH0, + GLITCH1 + +} GLITCH; + +/* + Purpose: Message definitions. + Explanation: - */ +typedef enum MsgType +{ + NO_MESSAGES, + UPDATE_BUFFER, + SEEK_BUFFER, + GET_POSITION, + GET_SIZE + +} MsgType; + + +/* + Purpose: Definition of generic message parameter. + Explanation: - */ +typedef uint32 MsgParam; + +/* + Purpose: Message structure of the decoder and/or player. + Explanation: - */ +typedef struct MsgStr +{ + MsgType msgType; + MsgParam msgInParam; + MsgParam msgOutParam; + +} Msg; + +/* + Purpose: Execution state for user specified functions. + Explanation: - */ +typedef struct ExecStateStr +{ + GLITCH execMode; + int16 a0_s16[3]; + uint32 a0_u32[3]; + Msg *msg; + +} ExecState; + +/* + Purpose: Parent structure for sync layer processing. + Explanation: - */ +typedef struct SyncInfoStr +{ + int16 sync_length; /* Length of sync word. */ + int16 sync_word; /* Synchronization word. */ + int16 sync_mask; /* Bitmask for sync word detection. */ + SYNC_STATUS sync_status; /* Which layer we supposed to be decoding. */ + +} SyncInfo; + +enum +{ + VBR_MODE = 1, + FILE_SIZE_KNOWN = 2 +}; + +/* + Purpose: Frame detection status. + Explanation: - */ +/* + +CAN BE FOUND IN auddef.h +typedef enum SEEK_STATUS +{ + SYNC_FOUND, + SYNC_LOST, + SYNC_BITS_OUT + +} SEEK_STATUS; +*/ +/* + Purpose: State of the decoder. + Explanation: - */ +typedef enum DecState +{ + STATE_UNDEFINED, + DEC_INIT, + DEC_INIT_COMPLETE, + FIND_FIRST_FRAME, + FIND_FRAME, + FIND_PAYLOAD, + FIND_AVERAGE_BR, + DECODE_FRAME, + CORRUPTED_FRAME, + GET_PAYLOAD, + RESTART_AFTER_VBR, + DECODE_FRAME_CORRUPTED + +} DecState; + +/* + Purpose: Supported UI features. + Explanation: - */ +typedef enum UIMode +{ + UI_UNDEFINED, + UI_PLAY, + UI_STOP, + UI_WIND_FORWARD, + UI_WIND_BACKWARD, + UI_REPEAT_LOOP + +} UIMode; + +/* + Purpose: A-B repeat. + Explanation: - */ +typedef enum MARKER_ID +{ + RESET_MARKERS = -1, + A_MARKER, + B_MARKER + +} MARKER_ID; + +/* + Purpose: Bitrate modes. + Explanation: - */ + +typedef enum BrType +{ + UNKNOWN, + CBR, + VBR, + FREE + +} BrType; + + +/* + Purpose: Playback quality mappings. + Explanation: - */ +typedef enum QUALITY +{ + FULL_QUALITY, + HALF_QUALITY, + QUARTER_QUALITY + +} QUALITY; + +/* + Purpose: Error codes of the player. + Explanation: - */ +typedef enum MP3_ERROR +{ + AUDIO_OK = 0, + AUDIO_ERROR_CRC, + AUDIO_INVALID_LAYER, + AUDIO_INVALID_SYNTAX, + AUDIO_FREE_FORMAT_ERROR, + AUDIO_FREE_FORMAT_BR_ERROR, + AUDIO_BUFFER_TOO_SMALL + +} MP3_Error; + +/* + Purpose: General info about the file/stream. + Explanation: - */ +typedef struct TrackInfoStr +{ + int32 frequency; + int16 bitRate; + int16 numChannels; + int32 lengthInms; + uint32 numFrames; + BrType brType; + +} TrackInfo; + +/* + Purpose: Playback quality parameters and general init info. + Explanation: - */ +typedef struct InitParamStr +{ + uint8 out_channels; + uint8 decim_factor; + uint8 window_pruning; + uint8 alias_subbands; + uint8 imdct_subbands; + uint32 specFreqBinLimit; + + int16 bitrate; + int32 VBRframesLimit; + +} InitParam; + + + + +#endif /*-- MPAUD_DEF_H_ --*/