diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/vedtranscoder/inc/ctrscaler.h --- a/videoeditorengine/vedtranscoder/inc/ctrscaler.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +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: -* Resampling framework for YUV 4.2.0. -* -*/ - - - -#ifndef CTRSCALER_H -#define CTRSCALER_H - - -// INCLUDES -#include -#include "ctrcommon.h" - - -// Scaler operations -enum EResamplingOpereation - { - EOperationNone, - EDoubleSize, // Resize to 200% - EUpSampling, // Resize to 101% or more - EOperationCopy, // No resize (100%) - EOperationCopyWithBB, // No resize, add black borders - EDownSampling, // Resize to 99% or less - EHalveSize, // Resize to 50% - EUpDownSampling // Resize with strech - }; - -// Scaler class, supports resampling operations with YUV 4.2.0 format; -NONSHARABLE_CLASS(CTRScaler) : public CBase - { - public: - static CTRScaler* NewL(); - - // Destructor - ~CTRScaler(); - - public: - void Scale(); - - // Sets operations - void SetScalerOptionsL( TPtr8& aSrc, TPtr8& aTrg, TSize& aSrcSize, TSize& aTrgSize ); - - // Checks if aspect ratio is wide - TBool IsWideAspectRatio(TSize aSize); - - // Calculates intermediate resolution for use with black boxing - TBool GetIntermediateResolution(TSize aSrcSize, TSize aTrgSize, TSize& aTargetResolution, TSize& aBlackBoxing); - - // Returns a time estimate of how long it takes to resample a frame - TReal EstimateResampleFrameTime(const TTRVideoFormat& aInput, const TTRVideoFormat& aOutput); - - private: - CTRScaler(); - - // Second phase constructor - void ConstructL(); - - // Resampling operations - void ResampleBilinear(TSize& aSrcSize, TSize& aTrgSize, TSize& aBlackBoxing); - void ResampleHalve(TSize& aSrcSize, TSize& aTrgSize, TSize& aBlackBoxing); - void ResampleDouble(TSize& aSrcSize, TSize& aTrgSize); - - // Called when resizing to less than 50% of the original size - void DoHalveAndBilinearResampleL(); - - // No resampling, copy frame and add black borders. - void CopyWithBlackBoxing(TSize& aSrcSize, TSize& aTrgSize, TSize& aBlackBoxing); - - private: - // Source buffer - TUint8* iSrc; - - // Destination buffer - TUint8* iTrg; - - // Source resolution - TSize iSrcSize; - - // Target resolution - TSize iTrgSize; - - // Resampling operation - TInt iOperation; - - // Trg data size - TUint iTrgDataSize; - - // Initial src ptr - TUint8* iSrcInit; - - // Initial trg ptr - TUint8* iTrgInit; - - // Scale X - TInt iScaleXInt; - - // Scale Y - TInt iScaleYInt; - - TPtr8* iTrgBuffer; - - // For storing width/height of black border area - TSize iBlackBoxing; - - }; - - - - -#endif