diff -r 951a5db380a0 -r e0b5df5c0969 videoeditorengine/vedengine/inc/vedqualitysettingsapi.inl --- a/videoeditorengine/vedengine/inc/vedqualitysettingsapi.inl Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +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 __VEDQUALITYSETTINGSAPI_INL__ -#define __VEDQUALITYSETTINGSAPI_INL__ - -#include "vedqualitysettingsvariation.h" - - -inline TInt TVideoQualitySelector::NumberOfQualityLevels() - { - return ENumberOfQualitySets; - } - -inline void TVideoQualitySelector::GetVideoQualitySetL( SVideoQualitySet& aSet, TInt aLevel, TBool aAspectRatioWide ) - { - if ( !aAspectRatioWide ) - { - GetVideoQualitySetL( aSet, aLevel ); - } - else - { - // NOT READY - TInt nrOfWideSets = ENumberOfWideQualitySets; - if ( nrOfWideSets == 0 ) - { - User::Leave( KErrNotSupported ); - } - - switch ( aLevel ) - { - case EVideoQualityMMS : - { - aSet = KVideoQualitySetsWide[EQualityLow]; - } - break; - case EVideoQualityNormal : - { - if ( nrOfWideSets > 1 ) - { - aSet = KVideoQualitySetsWide[EQualityMedium]; - } - else - { - aSet = KVideoQualitySetsWide[EQualityLow]; - } - } - break; - case EVideoQualityHigh : - { - if ( nrOfWideSets > 2 ) - { - aSet = KVideoQualitySetsWide[EQualityHigh]; - } - else if ( nrOfWideSets > 1 ) - { - aSet = KVideoQualitySetsWide[EQualityMedium]; - } - else - { - aSet = KVideoQualitySetsWide[EQualityLow]; - } - } - break; - default: - aSet = KVideoQualitySetsWide[EQualityLow]; - } - } - } - - -inline void TVideoQualitySelector::GetVideoQualitySetL( SVideoQualitySet& aSet, TInt aLevel ) - { - - switch ( aLevel ) - { - case EVideoQualityMMS : - { - aSet = KVideoQualitySets[EQualityLow]; - } - break; - case EVideoQualityNormal : - { - aSet = KVideoQualitySets[EQualityMedium]; - } - break; - case EVideoQualityHigh : - { - aSet = KVideoQualitySets[EQualityHigh]; - } - break; - default: - if ( (aLevel > EVideoQualityHigh) || (aLevel < EVideoQualityMin) ) - { - User::Leave( KErrArgument ); - } - TInt moreSetsThanNominal = ENumberOfQualitySets - ENumberOfNominalLevels; - if ( moreSetsThanNominal ) - { - // there are also qualities in-between the nominal levels - if ( aLevel < EVideoQualityMMS ) - { - // even lower than the default MMS; no more than 1 step granularity there (atm) - aSet = KVideoQualitySets[EQualityLegacy]; - } - else if ( aLevel < EQualityMedium ) - { - // between Low and Medium - TInt nrSetsBetweenMediumAndLow = EQualityMedium - EQualityLow - 1; - if ( nrSetsBetweenMediumAndLow > 0 ) - { - // no better granularity yet - aSet = KVideoQualitySets[EQualityMedium-1]; - } - else - { - // there are no specified quality in that range, give medium - aSet = KVideoQualitySets[EQualityMedium]; - } - } - else - { - // between Medium and High - TInt nrSetsBetweenHighAndMedium = EQualityHigh - EQualityMedium - 1; - if ( nrSetsBetweenHighAndMedium > 0 ) - { - // no better granularity yet - aSet = KVideoQualitySets[EQualityHigh-1]; - } - else - { - // there are no specified quality in that range, give medium - aSet = KVideoQualitySets[EQualityMedium]; - } - } - } - else - { - // round to the closest nominal level - aSet = KVideoQualitySets[(aLevel-(EVideoQualityNominalGranularity/2))/EVideoQualityNominalGranularity]; - } - } - } - -inline void TVideoQualitySelector::GetVideoQualitySetL( SVideoQualitySet& aSet, const TSize& aVideoResolution ) - { - // go through the qualities until a match is found. If several matches, pick the 1st one - TInt candidate = -1; - TInt i; - for ( i = ENumberOfQualitySets-1; i >= 0; i-- ) // searches from up to down to find higher quality first - { - if ( (KVideoQualitySets[i].iVideoWidth == aVideoResolution.iWidth) && (KVideoQualitySets[i].iVideoHeight == aVideoResolution.iHeight) ) - { - // we've found a set which matches with the requested size - candidate = i; - if ( (i == EQualityLow) || (i == EQualityMedium) || (i == EQualityHigh) ) - { - // we've found a set which matches also with preferred qualities - break; - } - } - } - if ( candidate >= 0 ) - { - aSet = KVideoQualitySets[candidate]; - } - else - { - User::Leave( KErrNotSupported ); - } - } - -inline void TVideoQualitySelector::GetVideoQualitySetL( SVideoQualitySet& aSet, const TPtrC8& aVideoCodecMimeType ) - { - TPtrC8 settingsMimeType; - - TInt i; - for ( i = ENumberOfQualitySets-1; i >= 0; i-- ) // searches from up to down to find higher quality first - { - settingsMimeType.Set(TPtrC8(KVideoQualitySets[i].iVideoCodecMimeType)); - if ( settingsMimeType.MatchF( (const TDesC8& )aVideoCodecMimeType ) != KErrNotFound ) - { - // found - aSet = KVideoQualitySets[i]; - return; - } - } - User::Leave( KErrNotSupported ); - } - -#endif