videoeditorengine/vedengine/videoprocessor/inc/movieprocessor.h
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditorengine/vedengine/videoprocessor/inc/movieprocessor.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +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:  
-* Movie processor interface class.
-*
-*/
-
-
-
-#ifndef __MOVIEPROCESSOR_H__
-#define __MOVIEPROCESSOR_H__
-
-
-#include <e32base.h>
-#include <e32std.h>
-#include <gdi.h>
-
-#include "VedCommon.h"
-
-/*
- * Forward declarations.
- */
-
-class CVedMovie;
-class CVedMovieImp;
-class CVedAudioClip;
-class TVedVideoFrameInfo;
-class TVideoProcessorAudioData;
-class CMovieProcessorImpl;
-
-class MVedMovieProcessingObserver;
-
-/**
- * Movie processor.
- */
-class CMovieProcessor : public CBase
-	{
-public:
-
-	/** 
-	 * Constructors for instantiating new movie processors.
-	 * Should reserve as little resources as possible at this point.
-	 */
-	static CMovieProcessor* NewL();
-	static CMovieProcessor* NewLC();
-
-	/** 
-	 * Destructor can be called at any time (i.e., also in the middle of a processing operation).
-	 * Should release all allocated resources, including releasing all allocated memory and 
-	 * *deleting* all output files that are currently being processed but not yet completed.
-	 */
-	virtual ~CMovieProcessor();
-
-    /**
-	 * Read the header from the specified video clip file and return its properties.
-	 * The file should be opened with EFileShareReadersOnly share mode.
-	 *
-	 * Possible leave codes:
-	 *	- <code>KErrNoMemory</code> if memory allocation fails
-	 *	- <code>KErrNotFound</code> if there is no file with the specified name
-	 *    in the specified directory (but the directory exists)
-	 *	- <code>KErrPathNotFound</code> if the specified directory
-	 *    does not exist
-	 *	- <code>KErrUnknown</code> if the specified file is of unknown format
-	 *
-	 * @param aFileName             name of the file to read
-	 * @aFileHandle                 handle of the file to read
-	 * @param aVideoFormat          for returning the video format
-	 * @param aVideoType            for returning the video type
-	 * @param aResolution           for returning the resolution
-	 * @param aAudioType            for returning the audio type
-	 * @param aDuration             for returning the duration
-	 * @param aVideoFrameCount      for returning the number of video frames
-	 * @param aSamplingRate			for returning the sampling rate
-	 * @param aChannelMode			for returning the channel mode	 
-	 */
-	void GetVideoClipPropertiesL(const TDesC& aFileName,
-	                             RFile* aFileHandle,
-		                         TVedVideoFormat& aFormat,
-								 TVedVideoType& aVideoType, 
-								 TSize& aResolution,
-								 TVedAudioType& aAudioType, 
-								 TTimeIntervalMicroSeconds& aDuration,
-								 TInt& aVideoFrameCount,
-								 TInt& aSamplingRate, 
-								 TVedAudioChannelMode& aChannelMode);
-	
-    /**
-	 * Read video frame information from the specified video clip file and fills array of info for 
-     * all frames in video.The file should be opened with EFileShareReadersOnly share mode. Video processor 
-	 * should not free the video frame info array after it has passed it on as a return value 
-	 * of this function. Returned array should be allocated with User::AllocL() and should be 
-	 * freed by the caller of this method with User::Free(). 
-	 *
-	 * Possible leave codes:
-	 *	- <code>KErrNoMemory</code> if memory allocation fails
-	 *	- <code>KErrNotFound</code> if there is no file with the specified name
-	 *    in the specified directory (but the directory exists)
-	 *	- <code>KErrPathNotFound</code> if the specified directory
-	 *    does not exist
-	 *	- <code>KErrUnknown</code> if the specified file is of unknown format
-	 *
-	 * @param aFileName             name of the file to read
-	 * @param aFileHandle            handle of the file to read
-	 * @param aVideoFrameInfoArray  Array for video frame parameters
-	 */
-    void GenerateVideoFrameInfoArrayL(const TDesC& aFileName, RFile* aFileHandle, TVedVideoFrameInfo*& aVideoFrameInfoArray);
-
-    /**
-	 * Returns an estimate of the total size of the specified movie.
-     * 
-	 * @return  size estimate in bytes
-	 */
-    TInt GetMovieSizeEstimateL(const CVedMovie* aMovie);
-
-	/**
-     * Calculate movie size estimate for MMS
-     *          
-     * @param aMovie			Movie object 
-     * @param aTargetSize		Maximum size allowed
-     * @param aStartTime		Time of the first frame included in the MMS output
-     * @param aEndTime			Time of the last frame included in the MMS output
-     * @return Error code
-     */
-    TInt GetMovieSizeEstimateForMMSL(const CVedMovie* aMovie, TInt aTargetSize, 
-		TTimeIntervalMicroSeconds aStartTime, TTimeIntervalMicroSeconds& aEndTime);
-
-	/**
-	 * Do all initializations necessary to start generating a thumbnail, e.g. open files, 
-	 * allocate memory. The video clip file should be opened with EFileShareReadersOnly 
-	 * share mode. The thumbnail should be scaled to the specified resolution and 
-	 * converted to the specified display mode. If this method leaves, destructor should be called to free 
-	 * allocated resources.
-	 * 
-	 * Possible leave codes:
-	 *	- <code>KErrNoMemory</code> if memory allocation fails
-	 *	- <code>KErrNotFound</code> if there is no file with the specified name
-	 *    in the specified directory (but the directory exists)
-	 *	- <code>KErrPathNotFound</code> if the specified directory
-	 *    does not exist
-	 *	- <code>KErrUnknown</code> if the specified file is of unknown format
-	 *  - <code>KErrNotSupported</code> if the specified combination of parameters
-	 *                                  is not supported
-	 *
-	 * @param aFileName  name of the file to generate thumbnail from
-	 * @param aFileHandle handle of the file to generate thumbnail from
-   * @param aIndex       Frame index for selecting the thumbnail frame
-   *                     -1 means the best thumbnail is retrieved
- 	 * @param aResolution  resolution of the desired thumbnail bitmap, or
-	 *                     <code>NULL</code> if the thumbnail should be
-	 *                     in the original resolution
-	 * @param aDisplayMode desired display mode; or <code>ENone</code> if 
-	 *                     any display mode is acceptable
-	 * @param aEnhance	   apply image enhancement algorithms to improve
-	 *                     thumbnail quality; note that this may considerably
-	 *                     increase the processing time needed to prepare
-	 *                     the thumbnail
-	 */
-	void StartThumbL(const TDesC& aFileName, RFile* aFileHandle, TInt aIndex, TSize aResolution, 
-		TDisplayMode aDisplayMode, TBool aEnhance);	
-	
-     /**
-	 * Starts thumbnail generation. Thumbnail generation is an asynchronous operation,
-	 * and its completion is informed to the caller via Active object request completion;
-	 * the iStatus member of the caller is passed as a parameter to this method.
-	 *
-	 * This method may leave if an error occurs in initiating the thumbnail generation.	
-	 * If this method leaves, destructor should be called to free allocated resources.	
-	 * 
-	 * @param aStatus     Reference to caller's iStatus member variable
-	 * @param aFactor     Pointer to a TVedTranscodeFactor structure, which is updated by this method
-	 *
-	 * @return  
-	 *          
-	 */
-	void ProcessThumbL(TRequestStatus &aStatus, TVedTranscodeFactor* aFactor);
-	
-	/** 
-	 * Method for retrieving the completed thumbnail bitmap.
-	 * 
-	 * Video processor should not free the CFbsBitmap instance after it has passed it on 
-	 * as a return value of this function 
-	 *	 
-	 */
-	void FetchThumb(CFbsBitmap*& aThumb);
-
-	/**
-	 * Do all initializations necessary to start processing a movie, e.g. open files and
-	 * allocate memory. After initialization, processing is started and the observer
-     * is notified. The source video and audio files should be opened with 
-	 * EFileShareReadersOnly share mode. If this method leaves, destructor should be called 
-	 * to free allocated resources.
-	 *
-	 * Possible leave codes:
-	 *  .
-	 *
-	 * @param aMovie     movie to process
-	 * @param aFilename  output file name
-	 * @param aFilename  output file handle
-	 */
-	void StartMovieL(CVedMovieImp* aMovie, const TDesC& aFileName, RFile* aFileHandle,
-	                 MVedMovieProcessingObserver *aObserver);
-    
-    /**
-	 * Cancels the processing of a movie. The processor is reseted to an idle state.
-	 * The user must call StartMovieL again after this to start processing again.	      
-	 *
-	 * Possible leave codes:
-	 *  .
-	 *
-	 */
-    void CancelProcessingL();
-    
-    /**
-     * Sets the maximum size for the movie
-     * 
-     * @param aLimit Maximum size in bytes
-     */
-    void SetMovieSizeLimit(TInt aLimit);
-
-
-protected:
-	CMovieProcessor();
-
-	void ConstructL();
-
-private:
-	TInt iThumbProgress;
-	TInt iMovieProgress;
-    RPointerArray<TVideoProcessorAudioData> iAudioDataArray;
-	CMovieProcessorImpl* iMovieProcessor;
-	};
-
-
-#endif // __MEDIAPROCESSOR_H__
-