|
1 /* |
|
2 * Copyright (c) 2010 Ixonos Plc. |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of the "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - Initial contribution |
|
11 * |
|
12 * Contributors: |
|
13 * Ixonos Plc |
|
14 * |
|
15 * Description: |
|
16 * YUV to EColor16M colorspace converter concrete classes. |
|
17 * |
|
18 */ |
|
19 |
|
20 |
|
21 |
|
22 #ifndef __YUV2RGB24_H__ |
|
23 #define __YUV2RGB24_H__ |
|
24 |
|
25 |
|
26 // INCLUDES |
|
27 |
|
28 #ifndef __YUVCONVERTER_H__ |
|
29 #include "yuvconverter.h" |
|
30 #endif |
|
31 |
|
32 |
|
33 // CLASS DEFINITIONS |
|
34 |
|
35 // Normal YUV to Rgb24 |
|
36 class CYuv2Rgb24 : public CYuvConverter |
|
37 { |
|
38 public: // CYuvConverter methods |
|
39 // Constructors & destructor |
|
40 CYuv2Rgb24(); |
|
41 ~CYuv2Rgb24(); |
|
42 void ConstructL(TUint aWidth, TUint aHeight, TUint aMaxWidth, TUint aMaxHeight); |
|
43 |
|
44 void SetGamma(TInt aGamma); |
|
45 void SetBrightnessContrast(TInt aBCIndex); |
|
46 void Convert(const TUint8 *aYBuf, const TUint8 *aUBuf, |
|
47 const TUint8 *aVBuf, |
|
48 TUint aBufWidth, TUint aBufHeight, |
|
49 TUint8 *aTarget, TUint aTargetScanlineLength); |
|
50 |
|
51 protected: // Data |
|
52 enum |
|
53 { |
|
54 ESaturateOffset = 276, // saturation table offset |
|
55 ESaturateLength = 561+ESaturateOffset // table length |
|
56 }; |
|
57 TUint8 *iRgbLookupTable; // RGB clamp/gamma lookup table |
|
58 TUint iWidth, iHeight, iCropWidth, iCropHeight; |
|
59 TInt iGamma; |
|
60 TInt iBrightnessContrast; |
|
61 }; |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 #endif // __YUV2RGB24_H__ |
|
67 |
|
68 // End of File |