videoeditorengine/audioeditorengine/codecs/AWB/src/ProcAWBFrameHandler.cpp
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditorengine/audioeditorengine/codecs/AWB/src/ProcAWBFrameHandler.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +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 "ProcAWBFrameHandler.h"
-#include "ProcFrameHandler.h"
-#include "ProcTools.h"
-#include "q_gain2.h"
-#include "AWBConstants.h"
-
-#include <f32file.h>
-#include <e32math.h>
-
-
-TBool CProcAWBFrameHandler::ManipulateGainL(const HBufC8* aFrameIn, HBufC8*& aFrameOut, TInt8 aGain) 
-    {
-    
-    aFrameOut = HBufC8::NewLC(aFrameIn->Size());
-    aFrameOut->Des().Copy(aFrameIn->Ptr(), aFrameIn->Size());
-
-    aGain = static_cast<TInt8>(aGain/2);
-
-    const TUint8 modeByte = (*aFrameOut)[0];
-    
-    TUint8 toc = modeByte;
-    TUint8 mode = static_cast<TUint8>((toc >> 3) & 0x0F);
-            
-    TInt bitrate = KAWBBitRates[mode];
-    
-    RArray<TInt> gains;
-    CleanupClosePushL(gains);
-    TInt maxGain = 0;
-    GetAWBGainsL(aFrameOut, gains, maxGain);
-
-    TInt gamma10000 = KAwbGain_dB2Gamma[aGain+127];
-
-    TInt a = 0;
-    TInt old_gain = 0;
-    TInt old_pitch = 0;
-    TInt new_gain = 0;
-    TInt8 new_index = 0;
-    TInt bitRateIndex = -1;
-
-    switch (bitrate)
-        {
-
-        case 23850:
-        case 23050:
-        case 19850:
-        case 18250:
-        case 15850:
-        case 14250:
-        case 12650:
-            {
-
-            for (a = 0; a < gains.Count()-1 ; a+=2) 
-                {
-        
-                old_gain = gains[a+1];
-                new_gain = static_cast<TInt>((gamma10000*old_gain)/10000);
-                old_pitch = gains[a];
-
-                new_index = ProcTools::FindNewIndexVQ2(new_gain, old_pitch, 
-                                                    t_qua_gain7b, 
-                                                    2*128);
-
-            
-                bitRateIndex = ProcTools::FindIndex(bitrate, KAWBBitRates, 9);
-
-
-                if        (a == 0) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4], 7);
-                else if (a == 2) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+1], 7);
-                else if (a == 4) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+2], 7);
-                else if (a == 6) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+3], 7);
-                
-            }
-
-    
-
-            break;
-            }
-
-        case 8850:
-        case 6600:
-            {
-            for (a = 0; a < gains.Count()-1 ; a+=2) 
-                {
-        
-                old_gain = gains[a+1];
-                new_gain = static_cast<TInt>((gamma10000*old_gain)/10000);
-                old_pitch = gains[a];
-
-                new_index = ProcTools::FindNewIndexVQ2(new_gain, old_pitch, 
-                                                    t_qua_gain6b, 
-                                                    2*64);
-
-                bitRateIndex = ProcTools::FindIndex(bitrate, KAWBBitRates, 9);
-
-
-                if        (a == 0) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4], 6);
-                else if (a == 2) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+1], 6);
-                else if (a == 4) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+2], 6);
-                else if (a == 6) ProcTools::SetValueToShuffledAWBFrame(new_index, 
-                                                                       aFrameOut, 
-                                                                       bitrate,
-                                                                       KGainPositions[bitRateIndex*4+3], 6);
-                }
-
-            break;
-            }
-        }
-
-    CleanupStack::PopAndDestroy(&gains);
-    CleanupStack::Pop(); // aFrameOut
-    return ETrue;
-    }
-
-TBool CProcAWBFrameHandler::GetGainL(const HBufC8* aFrame, RArray<TInt>& aGains, TInt& aMaxGain) const
-    {
-
-    RArray<TInt> AWBGains;
-    CleanupClosePushL(AWBGains);
-    GetAWBGainsL(aFrame, AWBGains, aMaxGain);
-    
-    for (TInt a = 0; a < AWBGains.Count() ; a++)
-        {
-        if (a%2 == 1)
-            {
-            aGains.Append(AWBGains[a]);
-            }
-
-        }
-    
-    CleanupStack::PopAndDestroy(&AWBGains);
-
-    return ETrue;
-    }
-
-
-TBool CProcAWBFrameHandler::GetNormalizingMargin(const HBufC8* aFrame, TInt8& aMargin) const
-
-    {
-
-    RArray<TInt> gains;
-
-    TInt error = KErrNone;
-    TRAP( error, CleanupClosePushL(gains) );
-    
-    if (error != KErrNone)
-        return EFalse;
-    
-    TInt maxGain;
-    
-    TRAPD(err, GetAWBGainsL(aFrame, gains, maxGain));
-    
-    if (err != KErrNone)
-        {
-        return EFalse;
-        }
-    
-    TInt largestGain = 1;
-
-    for (TInt a = 1 ; a < gains.Count() ; a+=2)
-        {
-        if (gains[a] > largestGain) 
-            {
-            largestGain = gains[a];
-            }
-
-        }
-    TInt gamma10000 = (32767*10000)/largestGain;
-
-
-    CleanupStack::PopAndDestroy(&gains);
-
-    TUint8 newIndex = ProcTools::FindNewIndexSQ(gamma10000, KAwbGain_dB2Gamma, 256);
-
-    TInt8 newGain = static_cast<TInt8>(newIndex-127); 
-
-    if (newGain > 63)
-        {
-        newGain = 63;
-        }
-    else if (newGain < -63)
-        {
-        newGain = -63;
-        }
-
-    aMargin = static_cast<TInt8>(newGain*2);
-    // aMargin is now in dB/2:s
-    return ETrue;
-
-    }
-
-CProcAWBFrameHandler::~CProcAWBFrameHandler() 
-    {
-
-        }
-
-CProcAWBFrameHandler* CProcAWBFrameHandler::NewL() 
-    {
-
-    
-    CProcAWBFrameHandler* self = NewLC();
-    CleanupStack::Pop(self);
-    return self;
-
-    }
-CProcAWBFrameHandler* CProcAWBFrameHandler::NewLC() 
-    {
-
-    CProcAWBFrameHandler* self = new (ELeave) CProcAWBFrameHandler();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-
-    }
-
-void CProcAWBFrameHandler::ConstructL() 
-    {
-
-    }
-
-CProcAWBFrameHandler::CProcAWBFrameHandler()
-    {
-
-    }
- 
-TBool CProcAWBFrameHandler::GetAWBGainsL(const HBufC8* aFrame, 
-                                        RArray<TInt>& aGains, 
-                                        TInt& aMaxGain) const
-
-    {
-
-    const TUint8 modeByte = (*aFrame)[0];
-
-    TUint8 toc = modeByte;
-    TUint8 mode = static_cast<TUint8>((toc >> 3) & 0x0F);
-            
-    TInt bitrate = KAWBBitRates[mode];
-    TInt cbIndex = -1;
-    TInt a = 0;
-
-    switch (bitrate)
-        {
-
-        case 23850:
-            {
-
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate23850*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2]; 
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-
-        case 23050:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate23050*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-            break;
-            }
-        case 19850:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate19850*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-            break;
-            }
-        case 18250:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-            
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate18250*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-            break;
-            }
-        case 15850:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate15850*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-        case 14250:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate14250*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-        case 12650:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate12650*4+a], 7);
-                TInt pitch = t_qua_gain7b[cbIndex*2];
-                TInt gain = t_qua_gain7b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-        case 8850:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate8850*4+a], 6);
-                TInt pitch = t_qua_gain6b[cbIndex*2];
-                TInt gain = t_qua_gain6b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-        case 6600:
-            {
-            for (a = 0 ; a < 4 ; a++)
-                {
-                cbIndex = ProcTools::GetValueFromShuffledAWBFrameL(aFrame, bitrate, 
-                                                                KGainPositions[TAWBBitRate6600*4+a], 6);
-                TInt pitch = t_qua_gain6b[cbIndex*2];
-                TInt gain = t_qua_gain6b[cbIndex*2+1];
-                aGains.Append(pitch);
-                aGains.Append(gain);
-                }
-
-            break;
-            }
-
-        }
-    aMaxGain = 32767;
-    
-    return ETrue;
-
-
-    }
-