--- a/videoeditorengine/audioeditorengine/src/ProcProcessAO.cpp Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,332 +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:
-*
-*/
-
-
-
-#include "ProcProcessAO.h"
-#include "AudCommon.h"
-#include "AudPanic.h"
-#include "audconstants.h"
-
-
-
-
-TBool CProcProcess::StartSyncProcessingL(const CAudSong* aSong, TBool aGetTimeEstimation)
- {
-
- iSong = aSong;
-
- if (iEncoder != 0)
- {
- delete iEncoder;
- iEncoder = 0;
- }
- iEncoder = CProcEncoder::NewL();
- iEncoder->InitL(iSong->OutputFileProperties().iAudioType,
- iSong->OutputFileProperties().iSamplingRate,
- iSong->OutputFileProperties().iChannelMode,
- iSong->OutputFileProperties().iBitrate );
-
-
- if (iAMRBuf)
- {
- delete iAMRBuf;
- iAMRBuf = 0;
-
- }
- // buffer for extra AMR-frames
- iAMRBuf = HBufC8::NewL(KAedMaxAMRFrameLength);
-
- if (iDecBuffer)
- {
- delete iDecBuffer;
- iDecBuffer = 0;
-
- }
-
- iDecBuffer = HBufC8::NewL(KAedMaxFeedBufferSize);
-
- TInt rawFrameSize = KAedSizeAMRBuffer;
- if (aSong->OutputFileProperties().iSamplingRate == KAedSampleRate8kHz)
- {
- rawFrameSize = KAedSizeAMRBuffer;
- }
- else
- {
- rawFrameSize = KAedSizeAACBuffer;
- if ( aSong->OutputFileProperties().iChannelMode == EAudStereo )
- {
- rawFrameSize *= 2;
- }
- }
-
-
- CAudProcessorImpl* processorImpl = CAudProcessorImpl::NewLC();
-
- processorImpl->ProcessSongL(aSong, rawFrameSize, aGetTimeEstimation);
-
- CleanupStack::Pop(processorImpl);
- iProcessorImpl = processorImpl;
-
-
- return ETrue;
-
- }
-
-TBool CProcProcess::ProcessSyncPieceL(HBufC8*& aFrame, TInt& aProgress,
- TTimeIntervalMicroSeconds& aDuration)
- {
-
- // first check if we have frames left from the previous encoding
-
- if (iAMRBuf->Length() > 0)
- {
- // we do have some frames left
-
- TInt frLen = ProcTools::GetNextAMRFrameLength(iAMRBuf, 0);
-
- if (frLen > iAMRBuf->Length())
- {
- // something has gone wrong, we don't have a proper AMR frame in the buffer
- User::Leave(KErrGeneral);
- }
-
- aFrame = HBufC8::NewL(frLen);
- aFrame->Des().Append(iAMRBuf->Left(frLen));
- iAMRBuf->Des().Delete(0, frLen);
-
- aDuration = KAedAMRFrameDuration;
- iProgress = aProgress;
-
- return EFalse;
- }
-
- iDecBuffer->Des().Delete(0, iDecBuffer->Size());
-
- HBufC8* frame = 0;
-
- TBool rawFrame = EFalse;
-
- TInt outDurationMilli = 0;
-
- TBool ret = iProcessorImpl->ProcessSyncPieceL(frame, aProgress, aDuration, rawFrame);
- iProgress = aProgress;
-
- if (!rawFrame)
- {
-
- // frame already in compressed domain, no need for encoding
- if (ret || frame == 0)
- {
-
- iTimeEstimate = iProcessorImpl->GetFinalTimeEstimate();
-
- aFrame = frame;
- // no more frames left -> processing ready
- delete iProcessorImpl;
- iProcessorImpl = 0;
- delete iDecBuffer;
- iDecBuffer = 0;
- return ETrue;
- }
- else
- {
- aFrame = frame;
- return EFalse;
- }
-
- }
- else
- {
- // frame needs to be encoded
- if (ret || frame == 0)
- {
-
- iTimeEstimate = iProcessorImpl->GetFinalTimeEstimate();
- // no more frames left -> processing ready
- delete iProcessorImpl;
- iProcessorImpl = 0;
- delete iDecBuffer;
- iDecBuffer = 0;
- return ETrue;
- }
-
-
- // feed encoder until we have something in the output buffer
-
-
- iEncoder->FillEncBufferL(*frame, iDecBuffer, outDurationMilli);
-
- delete frame;
- frame = 0;
-
- while (iDecBuffer->Size() == 0)
- {
-
- // we need more input for encoder
-
- TTimeIntervalMicroSeconds dur;
- ret = iProcessorImpl->ProcessSyncPieceL(frame, aProgress, dur, rawFrame);
-
- if (!ret)
- {
-
- }
- else
- {
-
- // no more frames left -> processing ready
-
-
- iTimeEstimate = iProcessorImpl->GetFinalTimeEstimate();
- delete iProcessorImpl;
- iProcessorImpl = 0;
- delete iDecBuffer;
- iDecBuffer = 0;
- return ETrue;
- }
-
-
-
- iProgress = aProgress;
-
- if (ret)
- {
-
- // no more frames left -> processing ready
-
- iTimeEstimate = iProcessorImpl->GetFinalTimeEstimate();
- delete iProcessorImpl;
- iProcessorImpl = 0;
- delete iDecBuffer;
- iDecBuffer = 0;
- return ETrue;
- }
-
- if (!rawFrame)
- {
-
- // we got encoded frame -> return it
- aFrame = frame;
- return EFalse;
- }
-
- // we should now have a raw frame in aFrame -> feed the encoder
-
- aDuration = aDuration.Int64() + dur.Int64();
-
- iEncoder->FillEncBufferL(*frame, iDecBuffer, outDurationMilli);
- delete frame;
- frame = 0;
-
- }
-
- }
-
- // read the encoded frame to aFrame
-
- TInt frameLen = 0;
- if (iEncoder->DestAudType() == EAudAMR)
- {
- frameLen = ProcTools::GetNextAMRFrameLength(iDecBuffer, 0);
- }
-
- if (frameLen < iDecBuffer->Length() && iEncoder->DestAudType() == EAudAMR)
- {
-
- // we got more than one AMR frame, return the first now
- // and the second when this function is called next time
- aFrame = HBufC8::NewL(frameLen);
- aFrame->Des().Append(iDecBuffer->Des().Left(frameLen));
-
- if ( (iDecBuffer->Length() + iAMRBuf->Length() - frameLen) > iAMRBuf->Des().MaxLength())
- {
- // if the temporary storage is too small, we need more space for it
- iAMRBuf = iAMRBuf->ReAlloc(iDecBuffer->Length() + iAMRBuf->Length() - frameLen);
- }
-
- iAMRBuf->Des().Append(iDecBuffer->Right(iDecBuffer->Length() - frameLen));
-
- }
- else
- {
-
- aFrame = HBufC8::NewL(iDecBuffer->Size());
- aFrame->Des().Append(iDecBuffer->Des());
-
- }
-
- iDecBuffer->Des().Delete(0, iDecBuffer->Size());
-
- aDuration = outDurationMilli*1000;
-
- return EFalse;
-
- }
-
-TInt64 CProcProcess::GetFinalTimeEstimate() const
- {
-
- return iTimeEstimate;
-
- }
-
-
-CProcProcess* CProcProcess::NewL()
- {
-
-
- CProcProcess* self = new (ELeave) CProcProcess();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
- return self;
- }
-
-CProcProcess::~CProcProcess()
- {
-
- if (iProcessorImpl != 0)
- {
- delete iProcessorImpl;
- iProcessorImpl = 0;
- }
-
- delete iEncoder;
-
- delete iDecBuffer;
- iDecBuffer = 0;
-
- delete iAMRBuf;
-
-
- }
-
-
-void CProcProcess::ConstructL()
- {
-
-
- }
-
-CProcProcess::CProcProcess() : iProcessorImpl(0), iSong(0)
- {
-
- }
-
-