videoeditorengine/audioeditorengine/src/ProcVisProcessor.cpp
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 5 4c409de21d23
--- a/videoeditorengine/audioeditorengine/src/ProcVisProcessor.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,464 +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 "ProcVisProcessor.h"
-#include "audconstants.h"
-
-#include "ProcMP4InFileHandler.h"
-#include "ProcADTSInFileHandler.h"
-#include "ProcMP3InFileHandler.h"
-#include "ProcAWBInFileHandler.h"
-#include "ProcWAVInFileHandler.h"
-#include "ProcAMRInFileHandler.h"
-
-
-#include "ProcAMRFrameHandler.h"
-#include "ProcAACFrameHandler.h"
-#include "ProcMP3FrameHandler.h"
-#include "ProcAWBFrameHandler.h"
-#include "ProcWAVFrameHandler.h"
-
-CProcVisProcessor* CProcVisProcessor::NewL()
-    {
-
-
-    CProcVisProcessor* self = new (ELeave) CProcVisProcessor();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-CProcVisProcessor* CProcVisProcessor::NewLC()
-    {
-    CProcVisProcessor* self = new (ELeave) CProcVisProcessor();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-
-CProcVisProcessor::~CProcVisProcessor()
-    {
-
-    if (iVisualization != 0)
-        {
-        delete[] iVisualization;
-        }
-    if (iInFile != 0)
-        {
-        delete iInFile;
-        }
-    if (iFrameHandler != 0)
-        {
-        delete iFrameHandler;
-        }
-
-    }
-
-void CProcVisProcessor::VisualizeClipL(const CAudClipInfo* aClipInfo, TInt aSize)
-    {
-
-        // initialize...
-    iClipInfo = aClipInfo;
-    iVisualizationSize = aSize;
-    iVisualization = new (ELeave) TInt8[iVisualizationSize];
-    
-
-    if (aClipInfo->Properties().iFileFormat == EAudFormatAMR) 
-        {
-        CProcInFileHandler* inFileHandler = CProcAMRInFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 2048);
-        iInFile = inFileHandler;
-        iFrameHandler = CProcAMRFrameHandler::NewL();
-        TAudFileProperties properties;
-        inFileHandler->GetPropertiesL(&properties);
-        inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatAMRWB) 
-        {
-        CProcInFileHandler* inFileHandler = CProcAWBInFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 2048);
-        iInFile = inFileHandler;
-        iFrameHandler = CProcAWBFrameHandler::NewL();
-        TAudFileProperties properties;
-        inFileHandler->GetPropertiesL(&properties);
-        inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatMP3) 
-        {
-        CProcInFileHandler* inFileHandler = CProcMP3InFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 2048);
-        iInFile = inFileHandler;
-        iFrameHandler = CProcMP3FrameHandler::NewL();
-        TAudFileProperties properties;
-        inFileHandler->GetPropertiesL(&properties);
-        inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatWAV) 
-        {
-        CProcInFileHandler* inFileHandler = CProcWAVInFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 8192);
-        iInFile = inFileHandler;
-        TAudFileProperties properties;
-        inFileHandler->GetPropertiesL(&properties);
-        inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-        iFrameHandler = CProcWAVFrameHandler::NewL(properties.iNumberOfBitsPerSample);
-        }
-    
-
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatMP4 &&                                                           
-            aClipInfo->Properties().iAudioType == EAudAAC_MPEG4)
-        {
-
-        CProcInFileHandler* inFileHandler = CProcMP4InFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 8192);
-
-        iInFile = inFileHandler;
-        TAudFileProperties properties;
-        
-        inFileHandler->GetPropertiesL(&properties);
-        
-        inFileHandler->SetPropertiesL(properties);
-        //inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-
-        TAACFrameHandlerInfo frameInfo;
-        CProcMP4InFileHandler* MP4inFileHandler = static_cast<CProcMP4InFileHandler*>(inFileHandler);
-        MP4inFileHandler->GetInfoForFrameHandler(frameInfo);
-        
-        iFrameHandler = CProcAACFrameHandler::NewL(frameInfo);    
-
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatMP4 &&
-            (aClipInfo->Properties().iAudioType == EAudAMR))
-        {
-
-        CProcInFileHandler* inFileHandler = CProcMP4InFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 8092);
-
-        iInFile = inFileHandler;
-        TAudFileProperties properties;
-        
-        inFileHandler->GetPropertiesL(&properties);
-        
-        inFileHandler->SetPropertiesL(properties);
-        //inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-
-        iFrameHandler = CProcAMRFrameHandler::NewL();    
-
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatMP4 &&
-            (aClipInfo->Properties().iAudioType == EAudAMRWB))
-        {
-
-        CProcInFileHandler* inFileHandler = CProcMP4InFileHandler::NewL(aClipInfo->FileName(), 
-                                                                        aClipInfo->FileHandle(), 
-                                                                        0, 8092);
-
-        iInFile = inFileHandler;
-        TAudFileProperties properties;
-        
-        inFileHandler->GetPropertiesL(&properties);
-        
-        inFileHandler->SetPropertiesL(properties);
-        //inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-
-        iFrameHandler = CProcAWBFrameHandler::NewL();    
-
-        }
-    else if (aClipInfo->Properties().iFileFormat == EAudFormatAAC_ADTS &&
-            aClipInfo->Properties().iAudioType == EAudAAC_MPEG4
-            )
-        {
-
-        CProcInFileHandler* inFileHandler = CProcADTSInFileHandler::NewL(aClipInfo->FileName(), 
-                                                                         aClipInfo->FileHandle(), 
-                                                                        0, 8092);
-
-
-
-        iInFile = inFileHandler;
-        TAudFileProperties properties;
-        
-        inFileHandler->GetPropertiesL(&properties);
-        
-        inFileHandler->SetPropertiesL(properties);
-        iFrameAmount = properties.iFrameCount;
-        inFileHandler->SeekAudioFrame(0);
-
-        TAACFrameHandlerInfo frameInfo;
-        CProcADTSInFileHandler* ADTSinFileHandler = static_cast<CProcADTSInFileHandler*>(inFileHandler);
-        ADTSinFileHandler->GetInfoForFrameHandler(frameInfo);
-        
-        iFrameHandler = CProcAACFrameHandler::NewL(frameInfo);    
-
-        }
-
-
-    }
-
-TBool CProcVisProcessor::VisualizeClipPieceL(TInt &aProgress)
-    {
-
-    if (iInFile == 0)
-        return ETrue;
-    
-    if (iVisualizationPos >= iVisualizationSize) 
-    {
-        if (iInFile != 0)
-        {
-            delete iInFile;
-            iInFile = 0;
-        }
-        
-        if (iFrameHandler != 0)
-        {
-            delete iFrameHandler;
-            iFrameHandler = 0;
-        }
-        return ETrue;
-    }
-    
-    HBufC8* point = 0;
-    TInt siz;
-    TInt32 tim = 0;
-    
-    RArray<TInt> gains;
-    
-    TAudType audType = iClipInfo->Properties().iAudioType;
-    
-    
-    TInt maxGain = 0;
-    TInt gainAmount = 0;
-    TInt divider = 0;
-    for (TInt b = 0 ; b < 2 ; b++)
-    {
-        gains.Reset();
-        
-        
-        TBool decReq = iInFile->DecodingRequired();
-        iInFile->SetDecodingRequired(EFalse);
-        TBool tmp = EFalse;
-        
-        if (!iInFile->GetAudioFrameL(point, siz, tim, tmp)) 
-        {
-            iInFile->SetDecodingRequired(decReq);
-            
-            delete iInFile;
-            iInFile = 0;
-            delete iFrameHandler;
-            iFrameHandler = 0;
-            return ETrue;
-            
-        }
-        iInFile->SetDecodingRequired(decReq);
-        CleanupStack::PushL(point);
-        
-        iFramesProcessed++;
-        if (siz > 0) 
-        {
-            
-            
-            iFrameHandler->GetGainL(point, gains, maxGain);
-            
-            if (point != NULL) 
-            {
-                CleanupStack::PopAndDestroy(point);
-            }
-            
-            
-            if (audType == EAudAMR || audType == EAudAMRWB)
-            {
-                
-                for (TInt c = 0 ; c < gains.Count() ; c++)
-                {
-                    if (gains[c] > gainAmount)
-                    {
-                        gainAmount = gains[c];
-                    }
-                    
-                    //gainAmount+=gains[c];
-                }
-            }
-            else if (audType == EAudAAC_MPEG4)
-            {
-                for (TInt c = 0 ; c < gains.Count() ; c++)
-                {
-                    if (gains[c] > gainAmount)
-                    {
-                        gainAmount = gains[c];
-                    }
-                    
-                    //gainAmount+=gains[c];
-                }
-            }        
-            else if (audType == EAudMP3)
-            {
-                for (TInt c = 0 ; c < gains.Count() ; c++)
-                {
-                    
-                    gainAmount+=gains[c];
-                    divider++;
-                }
-                //gainAmount /= gains.Count();
-            }
-            else if (audType == EAudWAV)
-                {
-                for (TInt c = 0 ; c < gains.Count() ; c++)
-                    {
-                    
-                    gainAmount+=gains[c];
-                    divider++;
-                    }
-                //gainAmount /= gains.Count();
-                }
-            
-        }
-        
-        else 
-        {
-            CleanupStack::PopAndDestroy(point);
-            // silent frame
-            gains.Append(0);
-            gains.Append(0);
-            maxGain = 1;
-        }
-    }
-    
-    
-    if (audType == EAudMP3 && divider > 0) gainAmount/= divider;
-    if (audType == EAudWAV && divider > 0) gainAmount/= divider;
-    
-    
-    
-    iVisualizationProcessed = (iFramesProcessed*KAedMaxVisualizationResolution)/iFrameAmount;
-    
-    
-    while (iVisualizationWritten <= iVisualizationProcessed)
-    {
-        if (iVisualizationPos >= iVisualizationSize)
-        {
-            break;
-        }
-        
-        if (audType == EAudAAC_MPEG4)
-        {
-            
-            TReal ga(gainAmount-100);
-            TReal exponent= ga/36;
-            TReal visResult(0);
-            Math::Pow(visResult, 10, exponent);
-            
-            TInt16 visR = 0;
-            TInt err = Math::Int(visR, visResult);
-            
-            if (visR > 127) visR = 127;
-            
-            if (err == KErrNone)
-            {
-                iVisualization[iVisualizationPos] = static_cast<TInt8>(visR);
-            }
-            else
-            {
-                iVisualization[iVisualizationPos] = 0;
-                
-            }
-            
-        }
-        else 
-        {
-            TInt visValue = (127*gainAmount)/maxGain;
-            
-            if (visValue < 0)
-                {
-                visValue = 0;
-                }
-            else if (visValue > KMaxTInt8)
-                {
-                visValue = KMaxTInt8;
-                }
-        
-            iVisualization[iVisualizationPos] = static_cast<TInt8>(visValue);
-        }
-        iVisualizationPos++;
-        iVisualizationWritten = (KAedMaxVisualizationResolution*iVisualizationPos)/iVisualizationSize;
-    }
-    
-    
-    gains.Reset();
-    aProgress = iVisualizationWritten/(KAedMaxVisualizationResolution/100); // convert resolution to percentages
-    return EFalse;
-
-
-    }
-
-void CProcVisProcessor::GetFinalVisualizationL(TInt8*& aVisualization, TInt& aSize)
-    {
-
-    if (iVisualization == 0)
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    aVisualization = new (ELeave) TInt8[iVisualizationSize];
-    
-    for (TInt a = 0 ; a < iVisualizationSize ; a++)
-        {
-        aVisualization[a] = iVisualization[a];
-        }
-    aSize = iVisualizationSize;
-
-    delete[] iVisualization;
-    iVisualization = 0;
-
-    }
-
-
-void CProcVisProcessor::ConstructL()
-    {
-
-    }
-
-CProcVisProcessor::CProcVisProcessor()
-    {
-
-    }
-