|
1 // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // |
|
15 |
|
16 |
|
17 /** |
|
18 @file |
|
19 @internalComponent |
|
20 */ |
|
21 |
|
22 #include "omxilmmbuffer.h" |
|
23 |
|
24 EXPORT_C COmxILMMBuffer* COmxILMMBuffer::NewL(const RChunk& aChunk) |
|
25 { |
|
26 COmxILMMBuffer* self = new (ELeave) COmxILMMBuffer(aChunk); |
|
27 return self; |
|
28 } |
|
29 |
|
30 EXPORT_C COmxILMMBuffer* COmxILMMBuffer::CreateL(const COmxILMMBuffer& aCamBuf) |
|
31 { |
|
32 COmxILMMBuffer* self = new (ELeave) COmxILMMBuffer(aCamBuf); |
|
33 return self; |
|
34 } |
|
35 |
|
36 EXPORT_C COmxILMMBuffer::~COmxILMMBuffer() |
|
37 { |
|
38 iArrayOffsets.Close(); |
|
39 } |
|
40 |
|
41 COmxILMMBuffer::COmxILMMBuffer(const RChunk& aChunk) |
|
42 : iChunk(const_cast<RChunk&>(aChunk)), |
|
43 iChunkOwnerThreadId(RThread().Id()) |
|
44 { |
|
45 // reset offsets |
|
46 iArrayOffsets.Reset(); |
|
47 } |
|
48 |
|
49 COmxILMMBuffer::COmxILMMBuffer(const COmxILMMBuffer& aCamBuf) |
|
50 : iSurfaceId(aCamBuf.iSurfaceId), |
|
51 iSurfaceInfo(aCamBuf.iSurfaceInfo), |
|
52 iChunk(aCamBuf.iChunk), |
|
53 iChunkOwnerThreadId(aCamBuf.iChunkOwnerThreadId) |
|
54 { |
|
55 // reset offsets |
|
56 iArrayOffsets.Reset(); |
|
57 |
|
58 // deep copy |
|
59 for (TInt i = 0 ; i < aCamBuf.iArrayOffsets.Count() ; i++) |
|
60 { |
|
61 iArrayOffsets.Append(aCamBuf.iArrayOffsets[i]); |
|
62 } |
|
63 } |
|
64 |
|
65 EXPORT_C RChunk& COmxILMMBuffer::Chunk() |
|
66 { |
|
67 return iChunk; |
|
68 } |
|
69 |
|
70 EXPORT_C TSurfaceId& COmxILMMBuffer::SurfaceId() |
|
71 { |
|
72 return iSurfaceId; |
|
73 } |
|
74 |
|
75 EXPORT_C TThreadId& COmxILMMBuffer::ChunkOwnerThreadId() |
|
76 { |
|
77 return iChunkOwnerThreadId; |
|
78 } |
|
79 |
|
80 EXPORT_C RSurfaceManager::TSurfaceInfoV01& COmxILMMBuffer::SurfaceInfoV01() |
|
81 { |
|
82 return iSurfaceInfo; |
|
83 } |
|
84 |
|
85 //EXPORT_C void COmxILMMBuffer::SetChunk(RChunk* aChunk) {iChunk = *aChunk;} |
|
86 //EXPORT_C void COmxILMMBuffer::SetSurfaceId(TSurfaceId* aSurfaceId) {iSurfaceId = &aSurfacdId;} |
|
87 |
|
88 EXPORT_C TInt COmxILMMBuffer::BytesPerPixel(OMX_COLOR_FORMATTYPE aPixelFormat) |
|
89 { |
|
90 switch (aPixelFormat) |
|
91 { |
|
92 //fall through |
|
93 |
|
94 //case EUidPixelFormatRGB_565: |
|
95 case OMX_COLOR_Format16bitRGB565: |
|
96 //case EUidPixelFormatBGR_565: |
|
97 case OMX_COLOR_Format16bitBGR565: |
|
98 //case EUidPixelFormatARGB_1555: |
|
99 case OMX_COLOR_Format16bitARGB1555: |
|
100 //case EUidPixelFormatXRGB_1555: |
|
101 //case EUidPixelFormatARGB_4444: |
|
102 case OMX_COLOR_Format16bitARGB4444: |
|
103 //case EUidPixelFormatARGB_8332: |
|
104 case OMX_COLOR_Format8bitRGB332: |
|
105 //case EUidPixelFormatBGRX_5551: |
|
106 //case EUidPixelFormatBGRA_5551: |
|
107 //case EUidPixelFormatBGRA_4444: |
|
108 //case EUidPixelFormatBGRX_4444: |
|
109 //case EUidPixelFormatAP_88: |
|
110 //case EUidPixelFormatXRGB_4444: |
|
111 //case EUidPixelFormatXBGR_4444: |
|
112 //case EUidPixelFormatYUV_422Interleaved: |
|
113 //case EUidPixelFormatYUV_422Planar: |
|
114 case OMX_COLOR_FormatYUV422Planar: |
|
115 //case EUidPixelFormatYUV_422Reversed: |
|
116 case OMX_COLOR_FormatYCrYCb: |
|
117 //case EUidPixelFormatYUV_422SemiPlanar: |
|
118 case OMX_COLOR_FormatYUV422SemiPlanar: |
|
119 //case EUidPixelFormatYUV_422InterleavedReversed: |
|
120 //case EUidPixelFormatYYUV_422Interleaved: |
|
121 case OMX_COLOR_FormatCbYCrY: |
|
122 case OMX_COLOR_FormatYCbYCr: |
|
123 case OMX_COLOR_FormatRawBayer10bit: |
|
124 { |
|
125 return 2; |
|
126 } |
|
127 |
|
128 //fall through |
|
129 //case EUidPixelFormatXRGB_8888: |
|
130 //case EUidPixelFormatBGRX_8888: |
|
131 //case EUidPixelFormatXBGR_8888: |
|
132 //case EUidPixelFormatBGRA_8888: |
|
133 case OMX_COLOR_Format32bitBGRA8888: |
|
134 //case EUidPixelFormatARGB_8888: |
|
135 case OMX_COLOR_Format32bitARGB8888: |
|
136 //case EUidPixelFormatABGR_8888: |
|
137 //case EUidPixelFormatARGB_8888_PRE: |
|
138 //case EUidPixelFormatABGR_8888_PRE: |
|
139 //case EUidPixelFormatBGRA_8888_PRE: |
|
140 //case EUidPixelFormatARGB_2101010: |
|
141 //case EUidPixelFormatABGR_2101010: |
|
142 { |
|
143 return 4; |
|
144 } |
|
145 |
|
146 //fall through |
|
147 //case EUidPixelFormatBGR_888: |
|
148 case OMX_COLOR_Format24bitBGR888: |
|
149 //case EUidPixelFormatRGB_888: |
|
150 case OMX_COLOR_Format24bitRGB888: |
|
151 { |
|
152 return 3; |
|
153 } |
|
154 |
|
155 default: |
|
156 return 0; |
|
157 } |
|
158 } |
|
159 |
|
160 EXPORT_C TInt COmxILMMBuffer::BytesPerPixel(TUidPixelFormat aPixelFormat) |
|
161 { |
|
162 switch (aPixelFormat) |
|
163 { |
|
164 //fall through |
|
165 |
|
166 case EUidPixelFormatRGB_565: |
|
167 case EUidPixelFormatBGR_565: |
|
168 case EUidPixelFormatARGB_1555: |
|
169 case EUidPixelFormatXRGB_1555: |
|
170 case EUidPixelFormatARGB_4444: |
|
171 case EUidPixelFormatARGB_8332: |
|
172 case EUidPixelFormatBGRX_5551: |
|
173 case EUidPixelFormatBGRA_5551: |
|
174 case EUidPixelFormatBGRA_4444: |
|
175 case EUidPixelFormatBGRX_4444: |
|
176 case EUidPixelFormatAP_88: |
|
177 case EUidPixelFormatXRGB_4444: |
|
178 case EUidPixelFormatXBGR_4444: |
|
179 case EUidPixelFormatYUV_422Interleaved: |
|
180 case EUidPixelFormatYUV_422Planar: |
|
181 case EUidPixelFormatYUV_422Reversed: |
|
182 case EUidPixelFormatYUV_422SemiPlanar: |
|
183 case EUidPixelFormatYUV_422InterleavedReversed: |
|
184 case EUidPixelFormatRawBayer10bit: |
|
185 { |
|
186 return 2; |
|
187 } |
|
188 |
|
189 //fall through |
|
190 case EUidPixelFormatXRGB_8888: |
|
191 case EUidPixelFormatBGRX_8888: |
|
192 case EUidPixelFormatXBGR_8888: |
|
193 case EUidPixelFormatBGRA_8888: |
|
194 case EUidPixelFormatARGB_8888: |
|
195 case EUidPixelFormatABGR_8888: |
|
196 case EUidPixelFormatARGB_8888_PRE: |
|
197 case EUidPixelFormatABGR_8888_PRE: |
|
198 case EUidPixelFormatBGRA_8888_PRE: |
|
199 case EUidPixelFormatARGB_2101010: |
|
200 case EUidPixelFormatABGR_2101010: |
|
201 { |
|
202 return 4; |
|
203 } |
|
204 |
|
205 //fall through |
|
206 case EUidPixelFormatBGR_888: |
|
207 case EUidPixelFormatRGB_888: |
|
208 { |
|
209 return 3; |
|
210 } |
|
211 |
|
212 default: |
|
213 return 0; |
|
214 } |
|
215 } |
|
216 |
|
217 EXPORT_C RArray<TInt>& COmxILMMBuffer::OffsetInfoArray() |
|
218 { |
|
219 return iArrayOffsets; |
|
220 } |