diff -r 000000000000 -r 951a5db380a0 videoeditorengine/vedengine/src/VedVideoClipGenerator.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoeditorengine/vedengine/src/VedVideoClipGenerator.cpp Fri Jan 29 14:08:33 2010 +0200 @@ -0,0 +1,162 @@ +/* +* 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: +* +*/ + + + +#include "VedVideoClipGenerator.h" +#include "VedMovieImp.h" +#include "VedVideoClip.h" +#include + +EXPORT_C CVedVideoClipGenerator::CVedVideoClipGenerator() + : iVideoClip(0), iIsOwnedByVideoClip(EFalse), iMaximumFramerate(KVEdMaxFrameRate) + { + } + + +EXPORT_C CVedVideoClipGenerator::~CVedVideoClipGenerator() + { + } + + +EXPORT_C TBool CVedVideoClipGenerator::IsInserted() const + { + return (iVideoClip != 0); + } + + +EXPORT_C CVedMovie* CVedVideoClipGenerator::Movie() const + { + __ASSERT_ALWAYS(iVideoClip != 0, + TVedPanic::Panic(TVedPanic::EVideoClipGeneratorNotInserted)); + + return iVideoClip->Movie(); + } + + +EXPORT_C TInt CVedVideoClipGenerator::VideoClipIndex() const + { + __ASSERT_ALWAYS(iVideoClip != 0, + TVedPanic::Panic(TVedPanic::EVideoClipGeneratorNotInserted)); + + return iVideoClip->Index(); + } + + +EXPORT_C TBool CVedVideoClipGenerator::IsOwnedByVideoClip() const + { + __ASSERT_ALWAYS(iVideoClip != 0, + TVedPanic::Panic(TVedPanic::EVideoClipGeneratorNotInserted)); + + return iIsOwnedByVideoClip; + } + + +void CVedVideoClipGenerator::SetVideoClip(CVedVideoClip& aVideoClip, + TBool aIsOwnedByVideoClip) + { + __ASSERT_ALWAYS(iVideoClip == 0, + TVedPanic::Panic(TVedPanic::EVideoClipGeneratorAlreadyInserted)); + + iVideoClip = &aVideoClip; + iIsOwnedByVideoClip = aIsOwnedByVideoClip; + } + + +EXPORT_C void CVedVideoClipGenerator::ReportDurationChanged() const + { + if (iVideoClip != 0) + { + iVideoClip->Movie()->RecalculateVideoClipTimings(iVideoClip); + iVideoClip->Movie()->FireVideoClipTimingsChanged(iVideoClip->Movie(), iVideoClip); + } + } + + +EXPORT_C void CVedVideoClipGenerator::ReportSettingsChanged() const + { + if (iVideoClip != 0) + { + iVideoClip->Movie()->FireVideoClipGeneratorSettingsChanged(iVideoClip->Movie(), iVideoClip); + } + } + +EXPORT_C void CVedVideoClipGenerator::ReportDescriptiveNameChanged() const + { + if (iVideoClip != 0) + { + iVideoClip->Movie()->FireVideoClipDescriptiveNameChanged(iVideoClip->Movie(), iVideoClip); + } + } + +EXPORT_C TInt CVedVideoClipGenerator::CalculateFrameComplexityFactor(CFbsBitmap* /*aFrame*/) const + { + RDebug::Print(_L("CVedVideoClipGenerator::CalculateFrameComplexityFactor IN")); + + return 10; + + // Disabled since the calculation takes too long and is not very accurate + /*if ( !aFrame ) + { + return 0; + } + + TInt height = aFrame->SizeInPixels().iHeight; + TInt width = aFrame->SizeInPixels().iWidth; + TInt numberOfPixels = height * width; + + TInt mean = 0; + + TInt y; + TInt x; + + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + TRgb color; + TPoint point(x, y); + aFrame->GetPixel(color, point); + mean += color.Green(); + } + } + mean = (TInt)((TReal)mean/(TReal)numberOfPixels + 0.5); + + TInt moment = 0; + TInt tmp; + for (y = 0; y < height; y++) + { + for (x = 0; x < width; x++) + { + TRgb color; + TPoint point(x, y); + aFrame->GetPixel(color, point); + tmp = color.Green() - mean; + if (tmp<0) + tmp = -tmp; + moment += tmp; + } + } + moment = (TInt)((TReal)moment/(TReal)numberOfPixels + 0.5); + moment *= 10; + + RDebug::Print(_L("CVedVideoClipGenerator::CalculateFrameComplexityFactor returning moment: %d"), moment); + return moment;*/ + } + +// End of file