vtprotocolplugins/DisplaySink/inc/CVtImageConverter.h
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtprotocolplugins/DisplaySink/inc/CVtImageConverter.h	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,638 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "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:
-*
-* Description:    Image conversion library for VideoTelephony.
-*
-*/
-
-
-
-
-
-#ifndef CVTIMAGECONVERTER_H
-#define CVTIMAGECONVERTER_H
-
-// INCLUDE FILES
-
-#include <e32base.h>
-#include <gdi.h>
-
-// CLASS FORWARDS
-
-class CFbsBitmap;
-class CVTYUVFbsBitmapConverter;
-class CVSFbsBitmapIYUVConverter;
-
-// DATA TYPES
-
-typedef TRgb ( *TVSColorReadFunc ) ( TAny*& );
-
-// CLASS DECLARATIONS
-
-/**
-*  Base class for all YUV to CFbsBitmap converters.
-*
-*  @lib VTImageConverter.lib
-*/
-class CVTYUVFbsBitmapConverter : public CBase
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * C++ destructor.
-        */
-        IMPORT_C ~CVTYUVFbsBitmapConverter();
-
-    public: // New functions
-
-        /**
-        * Starts image conversion from YUV to CFbsBitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C virtual void ProcessL();
-
-        /**
-        * Sets size of the source YUV image in pixels. This must be implemented
-        * in derived classes.
-        * @param "aSize" Size of source YUV image in pixels.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void SetSourceSizeL( const TSize& aSize ) = 0;
-
-        /**
-        * Sets source YUV image data. This method must be implemented in derived
-        * classes.
-        * @param "aSourceData" 8-bit descriptor containing the YUV data. As
-        * data is referenced and not copied, given reference must be still
-        * valid when ProcessL() is called.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void SetSourceL( const TDesC8& aSourceData ) = 0;
-
-        /**
-        * Sets size of the source YUV image in pixels and image data.
-        * This method must be implemented in derived classes.
-        * @param "aSize" Size of source YUV image in pixels.
-        * @param "aSourceData" 8-bit descriptor containing the YUV data.
-        * As data is referenced and not copied, given reference must be still
-        * valid when ProcessL() is called.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void SetSourceL(
-            const TSize& aSize,
-            const TDesC8& aSourceData ) = 0;
-
-        /**
-        * Sets destination bitmap into which conversion will be made.
-        * @param "aDestinationBitmap" Reference to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C virtual void SetDestinationL(
-            const CFbsBitmap& aDestinationBitmap );
-
-        /**
-        * Sets destination bitmap into which conversion will be made.
-        * Bitmap is given as handle to existing bitmap.
-        * @param "aHandle" Handle to existing bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C virtual void SetDestinationL( TInt aHandle );
-
-    public: // Functions from base classes
-
-    protected:  // New functions
-
-        /**
-        * Updates iY, iU and iV member variables. Must be implemented in
-        * derived classes.
-        * @param "aSourceData" 8-bit descriptor to source YUV data.
-        */
-        virtual void SetYUVPtrs( const TDesC8& aSourceData ) = 0;
-
-        /**
-        * Second phase constructor.
-        * @param "aBitmapHandle" Handle to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void ConstructL( TInt aBitmapHandle );
-
-        /**
-        * Second phase constructor that will be called when destination is
-        * changed.
-        * @param "aBitmapHandle" Handle to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void ReConstructL( TInt aBitmapHandle );
-
-        /**
-        * Updates internal variables.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        virtual void SizeUpdateL();
-
-        /**
-        * C++ constructor.
-        * @param "aSourceSize" Source size in pixels.
-        */
-        CVTYUVFbsBitmapConverter( const TSize& aSourceSize );
-
-        /**
-        * Returns source size in pixels.
-        * @return Source size in pixels, as constant reference.
-        */
-        inline const TSize& SourceSize() const;
-
-        /**
-        * Returns source size in pixels.
-        * @return Source size in pixels, as reference.
-        */
-        inline TSize& SourceSize();
-
-        /**
-        * Returns destination size in pixels.
-        * @return Destination size in pixels, as constant reference.
-        */
-        inline const TSize& DestinationSize() const;
-
-        /**
-        * Returns destination size in pixels.
-        * @return Destination size in pixels, as reference.
-        */
-        inline TSize& DestinationSize();
-
-        /**
-        * Main process loop for Color4K mode. This must be implemented in
-        * derived classes.
-        * @param "aWriteFunction" Pointer to function that writes one pixel to
-        * destination.
-        */
-        virtual void DoProcess4K() = 0;
-
-        /**
-        * Main process loop for Color64K mode. This must be implemented in
-        * derived classes.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        virtual void DoProcess64K() = 0;
-
-        /**
-        * Main process loop for Color16M mode. This must be implemented in
-        * derived classes.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        virtual void DoProcess16M() = 0;
-
-        /**
-        * Main process loop for Color16MU mode. This must be implemented in
-        * derived classes.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        virtual void DoProcess16MU16MA() = 0;
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-        /**
-        * C++ default constructor.
-        */
-        CVTYUVFbsBitmapConverter();
-
-    private:    // Functions from base classes
-
-    public: // Data
-
-    protected:  // Data
-
-        // Table of coefficients for EColor4K
-        static const TUint8 COFF_TBL_4K[ 80 ];
-
-        // Table of coefficients for EColor64K
-        static const TUint8 COFF_TBL_64K[ 220 ];
-
-        // Table of coefficients for EColor16M
-        static const TUint8 COFF_TBL_16M[ 528 ];
-
-        // Source size in pixels.
-        TSize iSourceSize;
-
-        // Target size in pixels.
-        TSize iDestinationSize;
-
-        // Pointer to destination bitmap.
-        CFbsBitmap* iDestination; // owned, duplicate
-
-        // Pointer descriptor that points to Y data of the YUV image.
-        const TUint8* iY;
-
-        // Pointer descriptor that points to Cr (U) data of the YUV image.
-        const TUint8* iU;
-
-        // Pointer descriptor that points to Cb (V) data of the YUV image.
-        const TUint8* iV;
-
-        // Horizontal skip real value. After every pixel this valus is added
-        // to X index in conversion loop.
-        TReal32 iVSkipReal;
-
-        // Vertical skip real value. After every pixel this valus is added
-        // to Y index in conversion loop.
-        TReal32 iHSkipReal;
-
-    private:    // Data
-    };
-
-/**
-*  Base class for YUV 4:2:0 planar image to CFbsBitmap converters.
-*
-*  @lib VTImageConverter.lib
-*/
-class CVTYUVPlanarFbsBitmapConverter : public CVTYUVFbsBitmapConverter
-    {
-    public: // New functions
-
-    public: // Functions from base classes
-
-        /**
-        * Sets size of the source YUV image in pixels.
-        * @param "aSize" Size of source YUV image in pixels.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C void SetSourceSizeL( const TSize& aSize );
-
-        /**
-        * Sets source YUV image data.
-        * @param "aSourceData" 8-bit descriptor containing the YUV data. As
-        * data is referenced and
-        * not copied, given reference must be still valid when ProcessL() is
-        * called.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C void SetSourceL( const TDesC8& aSourceData );
-
-        /**
-        * Sets size of the source YUV image in pixels and image data. This
-        * method must be
-        * implemented in derived classes.
-        * @param "aSize" Size of source YUV image in pixels.
-        * @param "aSourceData" 8-bit descriptor containing the YUV data. As
-        * data is referenced and
-        * not copied, given reference must be still valid when ProcessL() is
-        * called.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C void SetSourceL(
-            const TSize& aSize,
-            const TDesC8& aSourceData );
-
-    protected:  // Constructors and destructor
-
-        /**
-        * C++ constructor.
-        * @param "aSourceSize" Source size in pixels.
-        */
-        CVTYUVPlanarFbsBitmapConverter( const TSize& aSourceSize );
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-        /**
-        * Main process loop for Color4K mode.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess4K();
-
-        /**
-        * Main process loop for Color4K mode when scaling is not required.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess4KNoScale();
-
-        /**
-        * Main process loop for Color64K mode.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess64K();
-
-        /**
-        * Main process loop for Color64K mode when scaling is not required.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess64KNoScale();
-
-        /**
-        * Main process loop for Color16M mode.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess16M();
-
-        /**
-        * Main process loop for Color16M mode when scaling is not required.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess16MNoScale();
-
-        /**
-        * Main process loop for Color16MU and Color16MA modes.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess16MU16MA();
-
-        /**
-        * Main process loop for Color16MU and Color16MA modes when scaling is
-        * not required.
-        * @param "aWriteFunction" Pointer to function that writes one pixel
-        * to destination.
-        */
-        void DoProcess16MU16MANoScale();
-
-    private:    // New functions
-
-        /**
-        * C++ default constructor.
-        */
-        CVTYUVPlanarFbsBitmapConverter();
-
-    private:    // Functions from base classes
-    };
-
-/**
-*  FourCC IYUV image to CFbsBitmap converter (see IYUV description below).
-*
-*  All Y samples are found first in memory as an array of unsigned char
-*  (possibly with a larger stride for memory alignment), followed immediately
-*  by all Cr (U) samples (with half the stride of the Y lines, and half the
-*  number of lines), then followed immediately by all Cb (V) samples in a
-*  similar fashion.
-*
-*  @lib VTImageConverter.lib
-*/
-class CVTIYUVFbsBitmapConverter : public CVTYUVPlanarFbsBitmapConverter
-    {
-    public: // Constructors and destructor
-
-        /**
-        * Static factory function to create instance of this class.
-        * @param "aSourceSize" Size of source image in pixels.
-        * @param "aDestination" Reference to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to newly created instance.
-        */
-        IMPORT_C static CVTIYUVFbsBitmapConverter* NewL(
-            const TSize& aSourceSize,
-            const CFbsBitmap& aDestination );
-
-        /**
-        * Static factory function to create instance of this class.
-        * @param "aSourceSize" Size of source image in pixels.
-        * @param "aBitmapHandle" Handle to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to newly created instance.
-        */
-        IMPORT_C static CVTIYUVFbsBitmapConverter* NewL(
-            const TSize& aSourceSize,
-            TInt aBitmapHandle );
-
-    public: // New functions
-
-    public: // Functions from base classes
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-    private:    // Functions from base classes
-
-        /**
-        * Updates iY, iU and iV member variables.
-        * @param "aSourceData" 8-bit descriptor to source YUV data.
-        */
-        void SetYUVPtrs( const TDesC8& aSourceData );
-
-    private:    // Constructors and destructor
-
-        /**
-        * C++ destructor.
-        * @param "aSourceSize" Source size in pixels.
-        */
-        CVTIYUVFbsBitmapConverter( const TSize& aSourceSize );
-
-        /**
-        * C++ default constructor.
-        */
-        CVTIYUVFbsBitmapConverter();
-    };
-
-/**
-*  FourCC YV12 image to CFbsBitmap converter (see YV12 description below).
-*
-*  All Y samples are found first in memory as an array of unsigned char
-*  (possibly with a larger stride for memory alignment), followed immediately
-*  by all Cb (V) samples (with half the stride of the Y lines, and half the
-*  number of lines), then followed immediately by all Cr (U) samples in a
-*  similar fashion.
-*
-*  @lib VTImageConverter.lib
-*/
-class CVTYV12FbsBitmapConverter : public CVTYUVPlanarFbsBitmapConverter
-    {
-    public: // Constructors and destructor
-        /**
-        * Static factory function to create instance of this class.
-        * @param "aSourceSize" Size of source image in pixels.
-        * @param "aDestination" Reference to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to newly created instance.
-        */
-        IMPORT_C static CVTYV12FbsBitmapConverter* NewL(
-            const TSize& aSourceSize,
-            const CFbsBitmap& aDestination );
-
-        /**
-        * Static factory function to create instance of this class.
-        * @param "aSourceSize" Size of source image in pixels.
-        * @param "aBitmapHandle" Handle to destination bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to newly created instance.
-        */
-        IMPORT_C static CVTYV12FbsBitmapConverter* NewL(
-            const TSize& aSourceSize,
-            TInt aBitmapHandle );
-
-    public: // New functions
-
-    public: // Functions from base classes
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-    private:    // Functions from base classes
-
-        /**
-        * Updates iY, iU and iV member variables.
-        * @param "aSourceData" 8-bit descriptor to source YUV data.
-        */
-        void SetYUVPtrs( const TDesC8& aSourceData );
-
-    private: // Constructors and destructor
-
-        /**
-        * C++ destructor.
-        * @param "aSourceSize" Source size in pixels.
-        */
-        CVTYV12FbsBitmapConverter( const TSize& aSourceSize );
-
-        /**
-        * C++ default constructor.
-        */
-        CVTYV12FbsBitmapConverter();
-    };
-
-/**
-*  CFbsBitmap to FourCC IYUV image converter (see IYUV description below).
-*
-*  All Y samples are found first in memory as an array of unsigned char
-*  (possibly with a larger stride for memory alignment), followed immediately
-*  by all Cr (U) samples (with half the stride of the Y lines, and half the
-*  number of lines), then followed immediately by all Cb (V) samples in a
-*  similar fashion.
-*
-*  @lib VTImageConverter.lib
-*/
-class CVSFbsBitmapIYUVConverter : public CBase
-    {
-    public: // Constructors and destructor
-
-        /**
-        * Static factory function to create instance of this class.
-        * @param "aBitmap" Reference to source bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        * @return Pointer to newly created instance.
-        */
-        IMPORT_C static CVSFbsBitmapIYUVConverter* NewL(
-            const CFbsBitmap& aBitmap );
-
-        /**
-        * C++ destructor.
-        */
-        IMPORT_C ~CVSFbsBitmapIYUVConverter();
-
-    public: // New functions
-
-        /**
-        * Sets new source bitmap.
-        * @param "aBitmap" Reference to new source bitmap.
-        */
-        IMPORT_C void SetSourceL( const CFbsBitmap& aBitmap );
-
-        /**
-        * Starts image conversion from CFbsBitmap to YUV.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        IMPORT_C void ProcessL();
-
-        /**
-        * After successfull ProcessL() call converted YUV image data can be
-        * fetched using this method.
-        * @return 8-bit pointer descriptor (constant) to YUV image data.
-        */
-        IMPORT_C TPtrC8 YUVData() const;
-
-    public: // Functions from base classes
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // Constructors and destructor
-
-        /**
-        * C++ default constructor.
-        */
-        CVSFbsBitmapIYUVConverter();
-
-        /**
-        * Second phase constructor.
-        * @param "aBitmap" Reference to source bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void ConstructL( const CFbsBitmap& aBitmap );
-
-    private:    // New functions
-
-        /**
-        * Second phase constructor that is called when source is changed.
-        * @param "aBitmap" Reference to source bitmap.
-        * @exception Can leave with one of the system wide error codes.
-        */
-        void ReConstructL( const CFbsBitmap& aBitmap );
-
-        /**
-        * Main process loop.
-        * @param "aReadFunction" Pointer to function that reads one pixel from
-        * source.
-        */
-        void DoProcess( TVSColorReadFunc aReadFunction );
-
-    private:    // Functions from base classes
-
-    public: // Data
-
-    protected:  // Data
-
-    private:    // Data
-
-        // Destination size in pixels.
-        TSize iSize;
-
-        // Pointer to source bitmap.
-        CFbsBitmap* iSource; // owned, duplicate
-
-        // Heap descriptor that contains converted YUV data.
-        HBufC8* iYUVData; // owned
-
-        // Pointer descriptor that points to Y data of the YUV image.
-        TPtrC8 iY;
-
-        // Pointer descriptor that points to Cr (U) data of the YUV image.
-        TPtrC8 iU;
-
-        // Pointer descriptor that points to Cb (V) data of the YUV image.
-        TPtrC8 iV;
-    };
-
-// INLINE METHODS
-#include "cvtimageconverter.inl"
-
-
-#endif // CVTIMAGECONVERTER_H
-
-// End of File
-
-