videoeditorengine/audioeditorengine/src/ProcProcessAO.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- 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)
-    {
-
-    }
-    
-