videoeditorengine/vedengine/videoprocessor/src/Yuv2rgb16.cpp
changeset 9 d87d32eab1a9
parent 0 951a5db380a0
--- a/videoeditorengine/vedengine/videoprocessor/src/Yuv2rgb16.cpp	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +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:  
-* Implementation of class CYuv2Rgb16.
-* YUV to EColor64K colorspace converter concrete classes.
-*
-*/
-
-
-
-#include "yuv2rgb16.h"
-
-// ---------------------------------------------------------
-// CYuv2Rgb16::CYuv2Rgb16()
-// Standard C++ constructor.
-// ---------------------------------------------------------
-//
-CYuv2Rgb16::CYuv2Rgb16()
-{
-    iWidth = iHeight = 0;
-}
-
-// ---------------------------------------------------------
-// CYuv2Rgb16::~CYuv2Rgb16()
-// Destructor
-// ---------------------------------------------------------
-//
-CYuv2Rgb16::~CYuv2Rgb16()
-{
-}
-
-
-// ---------------------------------------------------------
-// CYuv2Rgb16::ConstructL()
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------
-//
-void CYuv2Rgb16::ConstructL(TUint aWidth, TUint aHeight, TUint /*aMaxWidth*/, TUint /*aMaxHeight*/)
-{
-    iWidth = aWidth;
-    iHeight = aHeight;
-}
-
-// ---------------------------------------------------------
-// CYuv2Rgb16::Convert()
-// Converts a YUV frame to a EColor64K frame
-// ---------------------------------------------------------
-//
-void CYuv2Rgb16::Convert(const TUint8 *aYBuf, const TUint8 *aUBuf,
-                         const TUint8 *aVBuf,
-                         TUint aBufWidth, TUint aBufHeight,
-                         TUint8 *aTarget, TUint aTargetScanlineLength)
-{
-
-
-    TUint cols;
-    TUint rows = iHeight;       
-    
-    __ASSERT_ALWAYS((aBufWidth >= iWidth) && (aBufHeight >= iHeight),
-        User::Invariant());
-        
-    // Convert all rows, two at a time
-    while ( rows )  
-    {
-        // Convert all pixels in this row, two at a time
-        cols = iWidth;
-        
-        TUint8* target1 = aTarget;
-        TUint8* target2 = aTarget + aTargetScanlineLength;
-        const TUint8* YPtr1 = aYBuf;  
-        const TUint8* YPtr2 = aYBuf + aBufWidth;        
-        const TUint8* UPtr = aUBuf;
-        const TUint8* VPtr = aVBuf;
-
-        TUint    y, u, v;
-        TInt rDiff, gDiff, bDiff;
-        TInt     r, g, b;
-       
-        while ( cols )
-        {
-            y = *(YPtr1)++;
-            u = *(UPtr)++ - 128;
-            v = *(VPtr)++ - 128;
-
-            rDiff = UvToRDiff(v, u);
-            gDiff = UvToGDiff(v, u);
-            bDiff = UvToBDiff(v, u);
-
-            // Convert upper left pixel            
-            r = (TInt)y + rDiff;
-            r = r<0 ? 0 : r>255 ? 0xF800 : (r<<8)&0xF800;
-            g = (TInt)y - gDiff;
-            g = g<0 ? 0 : g>255 ? 0x07E0 : (g<<3)&0x07E0;
-            b = (TInt)y + bDiff;
-            b = b<0 ? 0 : b>255 ? 0x001F : (b>>3)&0x001F;
-
-            // Write the pixel in RGB format
-            *(TUint16*)target1 = (TUint16)(r | g | b);
-            target1 += 2;
-
-            // Convert upper right pixel
-            y = *(YPtr1)++;
-
-            r = (TInt)y + rDiff;
-            r = r<0 ? 0 : r>255 ? 0xF800 : (r<<8)&0xF800;
-            g = (TInt)y - gDiff;
-            g = g<0 ? 0 : g>255 ? 0x07E0 : (g<<3)&0x07E0;
-            b = (TInt)y + bDiff;
-            b = b<0 ? 0 : b>255 ? 0x001F : (b>>3)&0x001F;
-
-            *(TUint16*)target1 = (TUint16)(r | g | b);
-            target1 += 2;
-
-            // Convert lower left pixel
-            y = *(YPtr2)++;
-
-            r = (TInt)y + rDiff;
-            r = r<0 ? 0 : r>255 ? 0xF800 : (r<<8)&0xF800;
-            g = (TInt)y - gDiff;
-            g = g<0 ? 0 : g>255 ? 0x07E0 : (g<<3)&0x07E0;
-            b = (TInt)y + bDiff;
-            b = b<0 ? 0 : b>255 ? 0x001F : (b>>3)&0x001F;
-
-            *(TUint16*)target2 = (TUint16)(r | g | b);
-            target2 += 2;
-                
-            // Convert lower right pixel
-            y = *(YPtr2)++;
-
-            r = (TInt)y + rDiff;
-            r = r<0 ? 0 : r>255 ? 0xF800 : (r<<8)&0xF800;
-            g = (TInt)y - gDiff;
-            g = g<0 ? 0 : g>255 ? 0x07E0 : (g<<3)&0x07E0;
-            b = (TInt)y + bDiff;
-            b = b<0 ? 0 : b>255 ? 0x001F : (b>>3)&0x001F;
-
-            *(TUint16*)target2 = (TUint16)(r | g | b);
-            target2 += 2;
-
-            // Next two pixels                                   
-            cols -= 2;
-        }
-        
-        // Next rows
-        rows -= 2;
-        aYBuf += 2*aBufWidth;
-        aUBuf += aBufWidth/2;
-        aVBuf += aBufWidth/2;
-        aTarget += 2*aTargetScanlineLength;
-    }
-}