diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/audioeditorengine/codecs/MP4/inc/ProcMP4InFileHandler.h --- a/videoeditorengine/audioeditorengine/codecs/MP4/inc/ProcMP4InFileHandler.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,198 +0,0 @@ -/* -* 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 __CPROCMP4INFILEHANDLER_H__ -#define __CPROCMP4INFILEHANDLER_H__ - -#include -#include -#include "mp4lib.h" - -#include "AudCommon.h" -#include "ProcConstants.h" -#include "ProcInFileHandler.h" -//#include "mp4aud.h" -#include "AACConstants.h" - -#include "ProcDecoder.h" - - -class CMP4Parser; - -class CProcMP4InFileHandler: public CProcInFileHandler - { - -public: - - /* - * - * Constructors & destructor - * - */ - - static CProcMP4InFileHandler* NewL(const TDesC& aFileName, RFile* aFileHandle, - CAudClip* aClip, TInt aReadBufferSize, - TInt aTargetSampleRate = 0, - TChannelMode aChannelMode = EAudSingleChannel); - - static CProcMP4InFileHandler* NewLC(const TDesC& aFileName, RFile* aFileHandle, - CAudClip* aClip, TInt aReadBufferSize, - TInt aTargetSampleRate = 0, - TChannelMode aChannelMode = EAudSingleChannel); - virtual ~CProcMP4InFileHandler(); - - // From base class ---------> - - void GetPropertiesL(TAudFileProperties* aProperties); - - /** - * Seeks a certain audio frame for reading - * - * Possible leave codes: - * - * @param aTime time from the beginning of file in milliseconds - * - * @return ETrue if successful - * EFalse if beyond the file - */ - TBool SeekAudioFrame(TInt32 aTime); - - - /** - * Seeks a cut in audio frame for reading - * - * Possible leave codes: - * - * - * @return ETrue if successful - * - */ - TBool SeekCutInFrame(); - - virtual TBool SetNormalizingGainL(const CProcFrameHandler* aFrameHandler); - - // <-------------------------------------- from base class - - /* - * - * Used to retrieve information for frame handler - * - * @param aBytes (output) decoder specific info - * @param aBufferSize maximum allowed aBytes - * - * @return ETrue if successful (memory reserved) - * EFalse if not successful (no memory reserved) - * - * NOTE: The caller is responsible for releasing the memory! - */ - virtual TBool ReadAudioDecoderSpecificInfoL(HBufC8*& aBytes, TInt aBufferSize); - - /* - * Reads the time scale of the MP4 file - * - * @param aTimescale timescale - * - */ - virtual TBool ReadTimeScale(mp4_u32& aTimescale); - - /* - * Reads the audio description of the MP4 file - * - * @param aAudiolength length of the clip - * @param aAudiotype type of the clip - * @param aFramespersample number of frames in sample - * @param aTimescale timescale - * @param aAveragebitrate average bitrate - * - */ - MP4Err ParseRequestAudioDescription(mp4_u32 *aAudiolength, - mp4_u32 *aAudiotype, - mp4_u8 *aFramespersample, - mp4_u32 *aTimescale, - mp4_u32 *aAveragebitrate); - - /* - * - * Returns AAC info - * @param aAACInfo AAC info - * - */ - TBool GetInfoForFrameHandler(TAACFrameHandlerInfo& aAACInfo); - - - - - - -private: - - // constructL - void ConstructL(const TDesC& aFileName, RFile* aFileHandle, CAudClip* aClip, - TInt aReadBufferSize, TInt aTargetSampleRate = 0, - TChannelMode aChannelMode = EAudSingleChannel); - - // c++ construtor - CProcMP4InFileHandler(); - - // gets audio frame info - TBool GetAudioFrameInfoL(TInt& aFrameAmount, TInt& aAverageFrameDuration, TInt& aAverageFrameSize, - TAudFileProperties* aProperties); - - TBool GetEncAudioFrameL(HBufC8*& aFrame, TInt& aSize, TInt32& aTime); - - /* - * Reads one amr frame from iReadBuffer and updates iReadBufferPos - * - * @param aOneAMRFrame amr frame in return - * - * @return ETrue if successful, the caller must release the memory - * EFalse if frame can not be read, no need to release memory - */ - TBool ReadOneAMRFrameL(HBufC8*& aOneAMRFrame); - - TBool ReadOneAWBFrameL(HBufC8*& aOneAWBFrame); - -private: - - // Handle to MP4Lib - MP4Handle iParser; - - // timestamp of a previous frame - TInt32 iLastTimeStamp; - - // information for frame handler - TAACFrameHandlerInfo* iFrameInfo; - - // read buffer - mp4_u8 *iMP4ReadBuffer; - // read buffer size - TInt iMP4ReadBufferSize; - // position of the read buffer - TInt iMP4ReadBufferPos; - - - - -protected: - - - - }; - -#endif