videoeditor_plat/video_editor_engine_api/inc/VedVideoClipInfo.h
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditor_plat/video_editor_engine_api/inc/VedVideoClipInfo.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,396 +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 __VEDVIDEOCLIPINFO_H__
-#define __VEDVIDEOCLIPINFO_H__
-
-#include "VedCommon.h"
-
-#include <gdi.h>
-
-#define KFrameIndexBestThumb (-1) // search for best possible thumbnail from video
-
-/*
- *  Forward declarations.
- */
-class CFbsBitmap;  
-class CVedVideoClipInfo;
-class CVedVideoClipGenerator;
-
-/**
- * Observer for notifying that video clip info
- * is ready for reading.
- *
- * @see  CVedVideoClipInfo
- */
-class MVedVideoClipInfoObserver 
-    {
-public:
-    /**
-     * Called to notify that video clip info is ready
-     * for reading.
-     *
-     * Possible error codes:
-     *  - <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 aInfo   video clip info
-     * @param aError  <code>KErrNone</code> if info is ready
-     *                for reading; one of the system wide
-     *                error codes if reading file failed
-     */
-    virtual void NotifyVideoClipInfoReady(CVedVideoClipInfo& aInfo, 
-                                          TInt aError) = 0;
-    };
-
-
-/**
- * Observer for notifying that video clip frame has been completed.
- *
- * @see  CVedVideoClipInfo
- */
-class MVedVideoClipFrameObserver
-    {
-public:
-    /**
-     * Called to notify that video clip frame has been completed. 
-     * 
-     * @param aInfo   video clip info
-     * @param aError  <code>KErrNone</code> if frame was
-     *                completed successfully; one of the system wide
-     *                error codes if generating frame failed
-     * @param aFrame  pointer to frame if it was completed successfully;
-     *                <code>NULL</code> if generating frame failed
-     */
-    virtual void NotifyVideoClipFrameCompleted(CVedVideoClipInfo& aInfo, 
-                                               TInt aError, 
-                                               CFbsBitmap* aFrame) = 0;
-    };
-
-/**
- * Utility class for getting information about video clip files.
- */
-class CVedVideoClipInfo : public CBase
-    {
-public:
-
-    /* Constructors & destructor. */
-
-    /**
-     * Constructs a new CVedVideoClipInfo object to get information
-     * about the specified video clip file. The specified observer
-     * is notified when info is ready for reading. This method
-     * may leave if no resources are available to construct 
-     * a new object.
-     * The file will be opened in EFileShareReadersOnly mode by default, 
-     * and the same mode should be used by the client too if it need to open
-     * the file at the same time.
-     * 
-     * Possible leave codes:
-     *  - <code>KErrNoMemory</code> if memory allocation fails
-     *
-     * @param aFileName  name of video clip file
-     * @param aObserver  observer to notify when info is ready for reading
-     *
-     * @return  pointer to a new CVedVideoClipInfo instance
-     */
-    IMPORT_C static CVedVideoClipInfo* NewL(const TDesC& aFileName,
-                                            MVedVideoClipInfoObserver& aObserver);
-
-    /**
-     * Constructs a new CVedVideoClipInfo object to get information
-     * about the specified video clip file. The constructed object
-     * is left in the cleanup stack. The specified observer
-     * is notified when info is ready for reading. This method
-     * may leave if no resources are available to construct a new
-     * object.
-     * The file will be opened in EFileShareReadersOnly mode by default, 
-     * and the same mode should be used by the client too if it need to open
-     * the file at the same time.
-     * 
-     * Possible leave codes:
-     *  - <code>KErrNoMemory</code> if memory allocation fails
-     *
-     * @param aFileName  name of video clip file
-     * @param aObserver  observer to notify when info is ready for reading
-     *
-     * @return  pointer to a new CVedVideoClipInfo instance
-     */
-    IMPORT_C static CVedVideoClipInfo* NewLC(const TDesC& aFileName,
-                                             MVedVideoClipInfoObserver& aObserver);
-
-    /* General property methods. */
-
-
-    /**
-     * Returns a descriptive name for the clip. Panics if info is not yet
-     * ready for reading.
-     *
-     * @return  descriptive name of the clip
-     */
-    virtual TPtrC DescriptiveName() const = 0;
-
-    /**
-     * Returns the file name of the clip. Panics if there is no file 
-     * associated with this clip or info is not yet ready for reading.
-     * 
-     * @return  file name of the clip
-     */
-    virtual TPtrC FileName() const = 0;
-
-    /**
-     * Returns the generator of the clip. Panics if there is no video clip
-     * generator associated with the clip or info is not yet ready for reading.
-     *
-     * @return  generator of the clip
-     */
-    virtual CVedVideoClipGenerator* Generator() const = 0;
-
-    /**
-     * Returns the class of the clip.
-     *
-     * @return  class of the clip
-     */
-    virtual TVedVideoClipClass Class() const = 0;
-
-    /**
-     * Returns the video format of the clip. Panics if there is no file 
-     * associated with this clip or info is not yet ready for reading.
-     * 
-     * @return  video format of the clip
-     */
-    virtual TVedVideoFormat Format() const = 0;
-
-    /**
-     * Returns the video type of the clip. Panics if there is no file 
-     * associated with this clip or info is not yet ready for reading.
-     * 
-     * @return  video type of the clip
-     */
-    virtual TVedVideoType VideoType() const = 0;
-
-    /**
-     * Returns the resolution of the clip. Panics if info
-     * is not yet ready for reading.
-     * 
-     * @return  resolution of the clip
-     */
-    virtual TSize Resolution() const = 0;
-
-    /**
-     * Returns whether this video clip has an audio track or not.
-     * Panics if info is not yet ready for reading.  
-     *
-     * @return  <code>ETrue</code> if clip has an audio track;
-     *          <code>EFalse</code> otherwise
-     */
-    virtual TBool HasAudio() const = 0;
-
-    /**
-     * Returns the audio type of the clip audio track. Panics if there is no file 
-     * associated with this clip or info is not yet ready for reading.
-     * 
-     * @return  audio type of the clip audio track
-     */
-    virtual TVedAudioType AudioType() const = 0;
-
-    /**
-     * Returns the channel mode of the audio if applicable.
-     *
-     * @return  channel mode
-     */
-    virtual TVedAudioChannelMode AudioChannelMode() const = 0;
-
-    /**
-     * Returns the sampling rate in kilohertz.
-     *
-     * @return  sampling rate
-     */
-    virtual TInt AudioSamplingRate() const = 0;
-
-    /**
-     * Returns the duration of the clip in microseconds. Panics if info
-     * is not yet ready for reading.
-     * 
-     * @return  duration of the clip
-     */
-    virtual TTimeIntervalMicroSeconds Duration() const = 0;
-
-
-    /* Video frame property methods. */
-
-    /**
-     * Returns the number of video frames in this clip. Panics if info
-     * is not yet ready for reading.
-     * 
-     * @return  number of video frames in this clip
-     */
-    virtual TInt VideoFrameCount() const = 0;
-    
-    /** 
-     * Returns the start time of the video frame at the specified index. 
-     * Panics if info is not yet ready for reading or the index is illegal.
-     *
-     * @param aIndex  index
-     *
-     * @return  start time of the video frame at the specified index in microseconds
-     */ 
-    virtual TTimeIntervalMicroSeconds VideoFrameStartTimeL(TInt aIndex) = 0;
-
-    /** 
-     * Returns the end time of the video frame at the specified index. 
-     * Panics if info is not yet ready for reading or the index is illegal.
-     *
-     * @param aIndex  index
-     *
-     * @return  end time of the video frame at the specified index in microseconds
-     */ 
-    virtual TTimeIntervalMicroSeconds VideoFrameEndTimeL(TInt aIndex) = 0;
-
-    /** 
-     * Returns the duration of the video frame at the specified index. 
-     * Panics if info is not yet ready for reading or the index is illegal.
-     *
-     * @param aIndex  index
-     *
-     * @return  duration of the video frame at the specified index in microseconds
-     */ 
-    virtual TTimeIntervalMicroSeconds VideoFrameDurationL(TInt aIndex) = 0;
-
-    /** 
-     * Returns the size of the video frame at the specified index. 
-     * Panics if there is no file associated with this clip, or info is not 
-     * yet ready for reading, or the index is illegal.
-     *
-     * @param aIndex  index
-     *
-     * @return  size of the video frame at the specified index in bytes
-     */ 
-    virtual TInt VideoFrameSizeL(TInt aIndex) = 0;
-
-    /** 
-     * Returns whether the video frame at the specified index is an intra
-     * frame or not. Panics if info is not yet ready for reading or 
-     * the index is illegal.
-     *
-     * @param aIndex  index
-     *
-     * @return  <code>ETrue</code>, if the video frame at the specified index is an
-     *          intra frame; <code>EFalse</code>, otherwise
-     */ 
-    virtual TBool VideoFrameIsIntraL(TInt aIndex) = 0;
-
-    /**
-     * Returns the video frame index at the specified time. Panics if info is not yet 
-     * ready for reading or the time is illegal.
-     *
-     * @param aTime  time
-     *
-     * @return  video frame index at the specified time
-     */
-    virtual TInt GetVideoFrameIndexL(TTimeIntervalMicroSeconds aTime) = 0;
-
-
-    /* Frame methods. */
-
-    /**
-     * Generates a bitmap of the given frame from video clip.
-     * The frame bitmap is scaled to the specified resolution and converted
-     * to the specified display mode. This method is asynchronous. The frame
-     * is generated in background and the observer is notified when the frame
-     * is complete. This method panics if info is not yet ready for reading or 
-     * the resolution is illegal.
-     * 
-     * Possible leave codes:
-     *  - <code>KErrNoMemory</code> if memory allocation fails
-     *  - <code>KErrNotSupported</code>, if the specified combination of 
-     *                                   parameters is not supported
-     *
-     * @param aObserver    observer to be notified when the frame is completed
-     * @param aIndex       index of frame, or KFrameIndexBestThumb to look for
-     *                     most suitable thumbnail frame.
-     * @param aResolution  resolution of the desired frame bitmap, or
-     *                     <code>NULL</code> if the frame 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
-     *                     frame quality; note that this may considerably
-     *                     increase the processing time needed to prepare
-     *                     the frame
-     * @param aPriority    priority of the frame generation
-     */
-    virtual void GetFrameL(MVedVideoClipFrameObserver& aObserver,
-                            TInt aIndex = KFrameIndexBestThumb,
-                            TSize* const aResolution = 0,
-                            TDisplayMode aDisplayMode = ENone,
-                            TBool aEnhance = EFalse,
-                            TInt aPriority = CActive::EPriorityIdle) = 0;
-    
-    /**
-     * Cancels frame generation. If no frame is currently being 
-     * generated, the function does nothing.
-     */
-    virtual void CancelFrame() = 0;
-
-    /**
-     * Sets the transcode factor.
-     *
-     * @param aFactor  transcode factor
-     */
-    virtual void SetTranscodeFactor(TVedTranscodeFactor aFactor) = 0;
-
-    /**
-     * Returns the transcode factor.
-     *
-     * @return  transcode factor.
-     */
-    virtual TVedTranscodeFactor TranscodeFactor() = 0;
-
-    /**
-     * Returns whether video clip is MMSCompatible.
-     *
-     * @return  ETrue if compatible with MMS
-     */
-    virtual TBool IsMMSCompatible() = 0;
-    
-    IMPORT_C static CVedVideoClipInfo* NewL(RFile* aFileHandle,
-                                            MVedVideoClipInfoObserver& aObserver);
-                                            
-    IMPORT_C static CVedVideoClipInfo* NewLC(RFile* aFileHandle,
-                                             MVedVideoClipInfoObserver& aObserver);
-                                             
-     /**
-     * Returns the file name of the clip. Panics if there is no file 
-     * associated with this clip or info is not yet ready for reading.
-     * 
-     * @return  file name of the clip
-     */
-    virtual RFile* FileHandle() const = 0;
-    
-    };
-
-
-
-#endif // __VEDVIDEOCLIPINFO_H__
-