videoeditorengine/vedengine/videoprocessor/inc/VedRgb2YuvConverter.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* 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 VIDEOEDITORTESTIMAGECONVERTER_H
#define VIDEOEDITORTESTIMAGECONVERTER_H

// INCLUDE FILES
#include <e32base.h>
#include <gdi.h>

// CLASS FORWARDS
class CFbsBitmap;

// TYPEDEFS
typedef TRgb ( *TVSColorReadFunc ) ( TAny*& );

/**
*  ?one_line_short_description.
*  ?other_description_lines
*
*  @lib ?library
*  @since ?Series60_version
*/
class CVSFbsBitmapYUV420Converter : public CBase
	{
	public:
		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		static CVSFbsBitmapYUV420Converter* NewL( const CFbsBitmap& aBitmap );

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		~CVSFbsBitmapYUV420Converter();

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		void SetSourceL( const CFbsBitmap& aBitmap );

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		void ProcessL();

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		TPtrC8 YUVData() const;

	private: // internal
		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		void ConstructL( const CFbsBitmap& aBitmap );

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		void ReConstructL( const CFbsBitmap& aBitmap );

		/**
        * ?member_description.
        * @since ?Series60_version
        * @param ?arg1 ?description
        * @return ?description
        */
		void DoProcess( TVSColorReadFunc aReadFunction );

	private:
		// ?one_line_short_description_of_data
		TSize iSize;

		// ?one_line_short_description_of_data
		CFbsBitmap* iSource; // owned, duplicate

		// ?one_line_short_description_of_data
		HBufC8* iYUVData; // owned

		// ?one_line_short_description_of_data
		TPtrC8 iY;

		// ?one_line_short_description_of_data
		TPtrC8 iU;
		
		// ?one_line_short_description_of_data
		TPtrC8 iV;
	};

#endif      // CVTIMAGECONVERTER_H  
            
// End of File