videoeditorengine/vedengine/videoprocessor/inc/mp4parser.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- a/videoeditorengine/vedengine/videoprocessor/inc/mp4parser.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,304 +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:  
-* Header for mp4parser.cpp.
-*
-*/
-
-
-
-#ifndef __MP4PARSER_H__
-#define __MP4PARSER_H__
-
-//  INCLUDES
-
-#include "Parser.h"
-#include <mp4lib.h>
-
-// CONSTANTS
-// MACROS
-// DATA TYPES
-// FUNCTION PROTOTYPES
-// FORWARD DECLARATIONS
-
-struct TAudioClipParameters; 
-
-// CLASS DECLARATION
-class CMovieProcessorImpl;
-
-/**
-*  MP4 -format parser class
-*  ?other_description_lines
-*/
-class CMP4Parser : public CParser
-{
-	
-public: // Constants
-	
-	enum TFrameType
-	{
-		EFrameTypeNone = 0,
-			EFrameTypeAudio,
-			EFrameTypeVideo
-	};
-		
-public:  // Constructors and destructor
-	
-	/**
-	* C++ default constructor.
-	*/
-	CMP4Parser();
-	
-	/**
-	* Two-phased constructor.
-	*/
-
-	static CMP4Parser* NewL(CMovieProcessorImpl* aProcessor, const TDesC &aFileName);
-	
-    static CMP4Parser* NewL(CMovieProcessorImpl* aProcessor, RFile* aFileHandle);
-	
-	/**
-	* Destructor.
-	*/
-	~CMP4Parser();
-	
-		
-public: // New functions                        
-	
-    /**
-    * Determine if the file/data inserted is in streamable, i.e. interleaved format
-    * @return TBool ETrue if streamable
-	*/	
-	TInt IsStreamable();                
-	
-	/**
-	* Seek to new position in input file 
-	* @param aPositionInMs Position to be seeked to in milliseconds
-	* @param anAudioTimeAfter audio position in milliseconds after seek
-	* @param aVideoTimeAfter video position in milliseconds after seek
-	* @return TInt error code
-	*/	
-	TInt Seek(TUint32 aPositionInMs, TUint32& anAudioTimeAfter, TUint32& aVideoTimeAfter);        
-	
-	/**
-	* Reads information of next available packet in inserted input data
-	* @param aType Frame type
-    * @param aFrameLength Frame length in bytes
-	* @return TInt error code
-	*/
-    TInt GetNextFrameInformation(TFrameType& aType, TUint& aLength, TBool& aIsAvailable);
-		
-    /**
-    * Read a number of frames of requested type from inserted data or file
-    * @param aDstBuffer Destination buffer
-    * @param aType Type of frame(s) to be read        
-    * @param aNumRead Number of frames actually read
-    * @return TInt error code
-    */		
-    TInt ReadFrames(TDes8& aDstBuffer, TFrameType aType, TUint32& aNumRead, TUint32& aTimeStamp);
-	
-    /**
-    * Initializes the module for AMR audio processing
-	* @param aStartPosition Time to start reading from
-    * @param aEndPosition Ending time for reading
-    * @param aCurrentTime How long has audio been processed so far
-    * @param aAudioOffset Offset from the beginning of movie timeline
-    * @param aAudioPending ETrue if audio operation is pending
-    * @param aPendingAudioDuration Duration for pending audio
-    * @param aAudioClipParameters Audio clip parameter structure
-    *
-	* @return Error code
-	*/		        
-    void InitAudioProcessingL(TInt64 aStartPosition, TInt64 aEndPosition, 
-                              TInt64& aCurrentTime, TInt64 aAudioOffset, 
-                              TBool& aAudioPending, TInt64& aPendingAudioDuration);       
-
-	/**
-	* Gets information about video frames
-	* @param aVideoFrameInfoArray Array to store frame properties
-    * @param aStartIndex Index of the first frame to get properties
-	* @param aSizeOfArray Size of aVideoFrameInfoArray
-	* @return TInt error code
-	*/
-	TInt GetVideoFrameProperties(TFrameInfoParameters* aVideoFrameInfoArray,
-			                     TUint32 aStartIndex, TUint32 aSizeOfArray);		                         
-
-	/**
-	*	Obtains the AAC audio decoder specific info for current clip
-	*   @param aBytes -- buffer to be filled with the info	
-	*	@param aBufferSize -- indicating the maximum size to be allocated
-	*/
-	TInt ReadAudioDecoderSpecificInfoL(HBufC8*& aBytes, TInt aBufferSize);
-
-	/**
-	*	Obtains the AAC audio decoder specific info default for 16khz and LC and Single channel
-	*   @param aBytes -- buffer to be filled with the info	
-	*	@param aBufferSize -- indicating the maximum size to be allocated
-	*/
-	TInt SetDefaultAudioDecoderSpecificInfoL(HBufC8*& aBytes, TInt aBufferSize);
-	
-public: // Functions from base classes           
-	
-    /**
-    * From CParser Writes a block of data for parsing        
-    * @param aBlock Block to be written
-    * @return TInt error code
-	*/
-	TInt WriteDataBlock(const TDes8& aBlock);
-	
-	/**
-	* From CParser Parser the stream header.
-	* @param aStreamParameters Common stream parameters	
-	*/
-	TInt ParseHeaderL(CParser::TStreamParameters& aStreamParameters);
-	
-	/**
-	* From CParser Resets parser to initial state.
-	* @return TInt error code
-	*/     
-		
-	TInt Reset();	
-    
-    /**
-	* From CParser Seek to optimal intra before given time
-	*/       
-
-    TInt SeekOptimalIntraFrame(TTimeIntervalMicroSeconds aStartTime, TInt aIndex, TBool aFirstTime); 
-    
-    /**
-	* From CParser 
-	* Gets the number of frames in current clip
-	*/ 
-    TInt GetNumberOfVideoFrames();
-    TInt GetNumberOfFrames();
-
-    /**
-	* From CParser 
-	* Gets the size of video frame at given index
-	*/ 
-    TInt GetVideoFrameSize(TInt aIndex);
-
-    /**
-	* From CParser 
-	* Gets the timestamp of video frame at given index
-	*/ 
-    TInt GetVideoFrameStartTime(TInt aIndex, TInt* iTimeStamp);
-
-    /**
-	* From CParser 
-	* Gets the type of video frame at given index
-	*/ 
-    TInt8 GetVideoFrameType(TInt aIndex);        
-
-    /**
-	* From CParser Parser the stream header.
-	* @param aAudioFrameSize average frame size of audio frame	
-	*/
-	TInt ParseAudioInfo(TInt& aAudioFrameSize);
-
-	TInt GetMP4SpecificSize();  // added for Mpeg-4 Support 
-
-    /**
-	* From CParser Retrieves  average audio bitrate of current clip
-	* @param aBitrate Average bitrate
-    *
-    * @return error code
-	*/
-    TInt GetAudioBitrate(TInt& aBitrate);
-    
-    /**
-	* From CParser Retrieves average video frame rate of current clip
-	* @param aBitrate Average frame rate
-    *
-    * @return error code
-	*/
-    TInt GetVideoFrameRate(TReal& aFrameRate);    
-    
-    /**
-	* From CParser Returns the size of decoder specific info
-	*
-	* @return size in bytes
-	*/
-    TInt GetDecoderSpecificInfoSize();
-    
-    /**
-	* From CParser Reads AVC decoder specific info to buffer
-	* @param aBuf Destination buffer
-	*
-	* @return error code
-	*/
-    TInt ReadAVCDecoderSpecificInfo(TDes8& aBuf);
-    
-    /**
-	* From CParser Returns the duration of video track in milliseconds
-	* @param aDurationInMs Duration
-	*
-	* @return error code
-	*/
-    TInt GetVideoDuration(TInt& aDurationInMs);    
-	
-private:        
-	
-   /**
-    * By default Symbian OS constructor is private.
-	*/
-	void ConstructL(CMovieProcessorImpl* aProcessor, const TDesC &aFileName);	
-	
-	void ConstructL(CMovieProcessorImpl* aProcessor, RFile* aFileHandle);
-	
-private:  // Internal constants
-	
-	// Stream source type
-	enum TStreamSource
-	{
-		ESourceNone = 0, // not set yet
-	    ESourceFile, // reading from a file
-		ESourceUser // user of this object provides data
-	};        
-
-public:
-	
-	
-private:    // Data
-
-    // video processor instance
-    CMovieProcessorImpl *iProcessor;
-        
-	TStreamSource iStreamSource;        
-	
-	mp4_u32 iVideoType;
-	mp4_u32 iAudioType;
-    
-	TUint iBytesRead;
-		
-	// The MP4 parser library handle
-	MP4Handle iMP4Handle;
-	
-	TFrameType iNextFrameType;
-	TUint iNextFrameLength;
-	
-	TBool iFirstRead;
-	TBool iFirstFrameInfo;
-
-    // Max video frame length & AMR sample size, used for sanity checks to avoid crashes in case of corrupted input
-    TInt iMaxVideoFrameLength;
-    TInt iMaxAMRSampleSize;
-
-    };
-		
-#endif      // __MP4PARSER_H__
-		
-		
-// End of File