--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/videoeditorengine/mp3aacManipLib/inc/Mp3API.h Fri Jan 29 14:08:33 2010 +0200
@@ -0,0 +1,208 @@
+/*
+* 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:
+*
+*/
+
+
+
+#ifndef _MP3API_
+#define _MP3API_
+
+
+#include "defines.h"
+#include "mstream.h"
+
+
+
+
+
+/*
+ Purpose: Structure interface for MP1/2/3 transport stream.
+ Explanation: - */
+class TMpTransportHandle
+{
+public:
+
+ TMPEG_Header header;
+ TMPEG_Header headerOld;
+
+ int16 SlotTable[15];
+ int16 FreeFormatSlots; /*-- Number of bytes in free format frame. */
+
+ int16 mainDataSlots; /*-- Payload size. */
+
+ BOOL ms_stereo; /* MS (Mid/Side) stereo used. */
+ BOOL is_stereo; /* Intensity stereo used. */
+ BOOL lsf; /* MPEG-2 LSF stream present. */
+ BOOL mpeg25; /* MPEG-2.5 stream present. */
+
+ /*-- Transport stream to be used/in use. --*/
+ SYNC_STATUS transportType;
+ SyncInfo syncInfo;
+
+ /*-- Exec state when seeking next MPx frame. --*/
+ int16 offsetBits;
+ ExecState execState;
+
+ /*-- CRC codeword. --*/
+ TCRC_Check crc;
+
+ /*-- Average number of bytes reserved for each frame. --*/
+ int32 aveFrameLen;
+
+};
+
+
+/**
+ * Data structure for mp3 frame search.
+ */
+class TMpFrameState
+{
+public:
+ /**
+ * Number of read bytes when searching start of frame.
+ * This value is within the input buffer and also the header
+ * is read after start of frame has been found.
+ */
+ int16 readBytes;
+
+ /**
+ * Number of header bytes present for current MP3 frame.
+ */
+ int16 headerBytes;
+
+ /**
+ * Number of payload bytes for current MP3 frame. The total frame
+ * size is 'headerBytes' + 'frameBytes'.
+ */
+ int16 frameBytes;
+
+ /**
+ * Total number of bytes read when searching the start of frame.
+ */
+ int32 totalReadBytes;
+
+};
+
+
+
+
+/*
+ Purpose: Parameters of core engine.
+ Explanation: - */
+class CMPAudDec : public CBase
+{
+public:
+
+ IMPORT_C static CMPAudDec* NewL();
+ IMPORT_C ~CMPAudDec();
+ IMPORT_C void Init(TMpTransportHandle *aMpFileFormat);
+
+ /*-- Common to all layers. --*/
+ uint8 *bitReserv;
+ TMPEG_Frame *frame;
+
+ /*-- Layer III specific parameters. --*/
+ TBitStream br;
+ CHuffman *huffman;
+ CIII_Side_Info *side_info;
+
+ int16 PrevSlots;
+ //int32 FrameStart;
+ BOOL SkipBr;
+ BOOL WasSeeking;
+
+ /*-- Transport handle. --*/
+ TMpTransportHandle *mpFileFormat;
+
+
+private:
+
+ CMPAudDec();
+ void ConstructL();
+
+};
+
+class CMp3Edit : public CBase
+ {
+
+public:
+
+ IMPORT_C static CMp3Edit* NewL();
+ IMPORT_C ~CMp3Edit();
+
+ IMPORT_C uint32
+ FileLengthInMs(TMpTransportHandle *tHandle, int32 fileSize) const;
+
+ IMPORT_C int32
+ GetSeekOffset(TMpTransportHandle *tHandle, int32 seekPos) const;
+
+ IMPORT_C int32
+ GetFrameTime(TMpTransportHandle *tHandle) const;
+
+ IMPORT_C void
+ InitTransport(TMpTransportHandle *tHandle) const;
+
+ IMPORT_C int16
+ SeekSync(TMpTransportHandle *tHandle, uint8 *syncBuf,
+ uint32 syncBufLen, int16 *readBytes,
+ int16 *frameBytes, int16 *headerBytes,
+ uint8 initMode) const;
+
+ IMPORT_C int16
+ FreeMode(TMpTransportHandle *tHandle, uint8 *syncBuf,
+ uint32 syncBufLen, int16 *readBytes,
+ int16 *frameBytes, int16 *headerBytes) const;
+
+ IMPORT_C int16
+ EstimateBitrate(TMpTransportHandle *tHandle, uint8 isVbr) const;
+
+
+
+
+ /*-- Closes MPEG Layer I/II/III decoder handle. --*/
+ IMPORT_C CMPAudDec *
+ DeleteMPAudDec(CMPAudDec *mpAud);
+
+ /*-- Creates MPEG Layer I/II/III decoder handle. --*/
+ IMPORT_C CMPAudDec *
+ CreateMPAudDec(void);
+
+ /*-- Initializes MPEG Layer I/II/III decoder handle. --*/
+ IMPORT_C void
+ InitMPAudDec(CMPAudDec *mpAud, TMpTransportHandle *mpFileFormat);
+
+ /*-- Resets MPEG Layer I/II/III decoder handle. --*/
+ IMPORT_C void
+ ResetMPAudDec(CMPAudDec *mpAud);
+
+ /*-- Stores global gain values. --*/
+ IMPORT_C void
+ SetMPGlobalGains(TBitStream *bs, uint8 numGains, uint8 *globalGain, uint32 *gainPos);
+
+ /*-- Extracts global gain values. --*/
+ IMPORT_C uint8
+ GetMPGlobalGains(TBitStream *bs, TMpTransportHandle *tHandle, uint8 *globalGain, uint32 *gainPos);
+
+private:
+
+ void ConstructL();
+ CMp3Edit();
+
+ };
+
+
+#endif