videoeditorengine/vedtranscoder/inc/ctrvideodecoderclient.h
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditorengine/vedtranscoder/inc/ctrvideodecoderclient.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,388 +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:  
-* Video decoder client.
-*
-*/
-
-
-
-#ifndef CTRVIDEODECODERCLIENT_H
-#define CTRVIDEODECODERCLIENT_H
-
-// INCLUDES
-#include <e32base.h>
-#include <devvideoplay.h>
-#include <devvideobase.h>
-#include <devvideostandardcustominterfaces.h>
-
-#include "ctrcommon.h"
-
-
-// FORWARD DECLARATIONS
-class MTRDevVideoClientObserver;
-class CCMRMediaBuffer;
-
-
-/**
-*  Video decoder client
-*  @lib TRANSCODER.LIB
-*/
-NONSHARABLE_CLASS(CTRVideoDecoderClient) : public CBase, public MMMFDevVideoPlayObserver, public MMmfVideoResourceObserver
-
-    {
-    public: // Constuctor / destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTRVideoDecoderClient* NewL(MTRDevVideoClientObserver& aObserver);
-
-        /**
-        * Destructor.
-        */
-        ~CTRVideoDecoderClient();
-
-        // Information methods
-        /**
-        * Checks codec support by MIME type
-        * @param aFormat MIME type
-        * @param aShortFormat MIME type (short version)
-        * @param aUid Uid of the codec to check
-        * @param aFallbackUid Fallback Uid incase the first one is not found
-        * @return TBool value: ETrue - givemn MIME type is supported; EFalse - no support; 
-        */
-        TBool SupportsCodec(const TDesC8& aFormat, const TDesC8& aShortFormat, TInt aUid, TInt aFallbackUid);
-
-        /**
-        * Gets codec info
-        * @param none
-        * @return none
-        */
-        void GetCodecInfoL();
-
-        /**
-        * Sets codec parameters
-        * @param aCodecType Codec type
-        * @param aCodecLevel Codec level
-        * @param aInputFormat Input video format
-        * @param aOutputFormat Output video format
-        * @return none
-        */
-        void SetCodecParametersL(TInt aCodecType, TInt aCodecLevel, const TTRVideoFormat& aInputFormat, 
-                                 const TTRVideoFormat& aOutputFormat);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Notifies the client that one or more new empty input buffers are available
-        * @param none
-        * @return none
-        */
-        void MdvpoNewBuffers();
-
-        /**
-        * From MMMFDevVideoPlayObserver. Returns a used input video picture back to the caller
-        * @param aPicture Video picture
-        * @return none
-        */
-        void MdvpoReturnPicture(TVideoPicture *aPicture);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Delivers supplemental information from a coded data unit
-        * @param aData Data, aTimestamp TimeStamp info, aPictureId Picture Id
-        * @return none
-        */
-        void MdvpoSupplementalInformation(const TDesC8 &aData, const TTimeIntervalMicroSeconds &aTimestamp, 
-                                          const TPictureId &aPictureId);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Back channel information from the decoder, indicating a picture loss 
-        * without specifying the lost picture
-        * @param none
-        * @return none
-        */
-        void MdvpoPictureLoss();
-
-        /**
-        * From MMMFDevVideoPlayObserver. Back channel information from the decoder, indicating the pictures that have been lost
-        * @param aPictures Array with picture Ids
-        * @return none
-        */
-        void MdvpoPictureLoss(const TArray< TPictureId > &aPictures);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Back channel information from the decoder, indicating the loss of consecutive 
-        * macroblocks in raster scan order
-        * @param aFirstMacroblock First macroblock, aNumMacroblocks, Number of macroblocks, aPicture PictureId
-        * @return none
-        */
-        void MdvpoSliceLoss(TUint aFirstMacroblock, TUint aNumMacroblocks, const TPictureId &aPicture);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Back channel information from the decoder, indicating a reference picture 
-        * selection request
-        * @param aSelectionData Selection data
-        * @return none
-        */
-        void MdvpoReferencePictureSelection(const TDesC8 &aSelectionData);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Called when a timed snapshot request has been completed
-        * @param aError Error, aPictureData Picture data, aPresentationTimestamp Presentation timestamp, aPictureId picture Id
-        * @return
-        */
-        void MdvpoTimedSnapshotComplete(TInt aError, TPictureData *aPictureData, 
-                                        const TTimeIntervalMicroSeconds &aPresentationTimestamp, const TPictureId &aPictureId);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Notifies the client that one or more new output pictures are available
-        * @param none
-        * @return none
-        */
-        void MdvpoNewPictures();
-
-        /**
-        * From MMMFDevVideoPlayObserver. Reports a fatal decoding or playback error
-        * @param aError Rin-time error
-        * @return none
-        */
-        void MdvpoFatalError(TInt aError);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Reports that DevVideoPlay initialization has completed
-        * @param aError Init error status
-        * @return none
-        */
-        void MdvpoInitComplete(TInt aError);
-
-        /**
-        * From MMMFDevVideoPlayObserver. Reports that the input video stream end has been reached and all pictures 
-        * have been processed
-        * @param none
-        * @return none
-        */
-        void MdvpoStreamEnd();
-
-        /**
-        * Returns used videopicture
-        * @param aPicture Video picture
-        * @return none
-        */
-        void ReturnPicture(TVideoPicture* aPicture);
-
-        /**
-        * Starts decoding
-        * @param none
-        * @return none
-        */
-        void StartL();
-
-        /**
-        * Stops decoding synchronously
-        * @param none
-        * @return none
-        */
-        void StopL();
-
-        /**
-        * Stops decoding asynchronously
-        * @param none
-        * @return none
-        */
-        void AsyncStopL();
-
-        /**
-        * Pauses decoding
-        * @param none
-        * @return none
-        */
-        void Pause();
-        
-        /**
-        * Resumes decoding
-        * @param none
-        * @return none
-        */
-        void ResumeL();
-        
-        /**
-        * Checks codec info
-        * @param aUid Decoder Uid
-        * @return TBool ETrue - accelerated codec; EFalse - non-accelerated codec
-        */
-        TBool CheckCodecInfoL(TUid aUid);
-
-        /**
-        * Initialize decoder client
-        * @param none
-        * @return none
-        */
-        void InitializeL();
-
-        /**
-        * Select decoder
-        * @param none
-        * @return none
-        */
-        void SelectDecoderL();
-
-        /**
-        * Send buffer
-        * @param aBuffer Media buffer
-        * @return none
-        */
-        void SendBufferL(CCMRMediaBuffer* aBuffer);
-
-        /**
-        * Write coded buffer
-        * @param aBuffer Media buffer
-        * @return none
-        */
-        void WriteCodedBufferL(CCMRMediaBuffer* aBuffer);
-
-        /**
-        * Returns a time estimate on long it takes to decode one frame with the current settings
-        * @param aInput Input video format
-        * @param aCodecType EH263 or EMpeg4
-        * @return TReal time estimate in seconds
-        */
-        TReal EstimateDecodeFrameTimeL(const TTRVideoFormat& aInput, TInt aCodecType);
-        
-        /**
-        * Checks if decoder supports scaling and enables scaling if supported.
-        * Disables scaling if aInputSize is equal to aOutputSize or scaling is not supported.
-        * @param aInputSize Source picture size
-        * @param aOutputSize Decoded picture size
-        * @return TBool ETrue if scaling is supported, EFalse otherwise
-        */
-        TBool SetDecoderScaling(TSize& aInputSize, TSize& aOutputSize);
-        
-        /**
-        * Enable / Disable resource observer
-        * @param aEnable ETrue: Observer is enabled, EFalse observer is disabled
-        * @return none
-        */
-        void EnableResourceObserver(TBool aEnable);
-        
-        /**
-        * From MMmfVideoResourceObserver. Indicates that a media device has lost its resources
-        * @param aMediaDevice UID for the media device that lost resources
-        * @return none
-        */
-        void MmvroResourcesLost(TUid aMediaDevice);
-        
-        /**
-        * From MMmfVideoResourceObserver. Indicates that a media device has regained its resources
-        * @param aMediaDevice UID for the media device that regained resources
-        * @return none
-        */
-        void MmvroResourcesRestored(TUid aMediaDevice);
-
-    private:
-        /**
-        * C++ default constructor.
-        */
-        CTRVideoDecoderClient(MTRDevVideoClientObserver& aObserver);
-
-        /**
-        * Symbian 2nd phase constructor, can leave
-        */
-        void ConstructL();
-
-    private:
-        // Observer
-        MTRDevVideoClientObserver& iObserver;
-
-        // DevVideoPlay
-        CMMFDevVideoPlay* iDevVideoPlay;
-
-        // Decoder mime type
-        TBuf8<256> iMimeType;
-        
-        // Short version mime type
-        TBuf8<256> iShortMimeType;
-
-        // Uncompressed format
-        TUncompressedVideoFormat iUncompressedFormat;
-
-        // Compressed format
-        CCompressedVideoFormat* iCompresedFormat;
-
-        // HwDevice Uid
-        THwDeviceId iHwDeviceId;
-
-        // Video coded input buffer
-        TVideoInputBuffer* iInputBuffer;
-
-        // Decoded picture
-        TVideoPicture* iDecodedPicture;
-
-        // Uid of the selected codec
-        TUid iUid;
-        
-        // Fallback codec to use if the first one doesn't work
-        TUid iFallbackUid;
-
-        // Coded buffer
-        CCMRMediaBuffer* iCodedBuffer;
-        
-        // Codec type
-        TInt iCodecType;
-
-        // Codec level
-        TInt iCodecLevel;
-
-        // Buffer options
-        CMMFDevVideoPlay::TBufferOptions iBufferOptions;
-
-        // Fatal error code
-        TInt iFatalError;
-        
-        // Input format
-        TTRVideoFormat iInputFormat;
-
-        // Output format
-        TTRVideoFormat iOutputFormat;
-        
-        // Data unit type
-        TVideoDataUnitType iDataUnitType;
-        
-        // Stop
-        TBool iStop;
-        
-        // Pause
-        TBool iPause;
-        
-        // Last ts
-        TTimeIntervalMicroSeconds iLastTimestamp;
-        
-        // If selected decoder is accelerated or not
-        TBool iAcceleratedCodecSelected;
-        
-        // If scaling is used or not
-        TBool iScalingInUse;
-        
-        // Decoded picture size if scaling is used
-        TSize iScaledOutputSize;
-        
-        // If deblocking should be used when scaling
-        TBool iScalingWithDeblocking;
-
-        // Video resource handler custom interface
-        MMmfVideoResourceHandler* iVideoResourceHandlerCI;
-    };
-
-
-
-#endif  // CTRVIDEODECODERCLIENT_H