24 #include <IclExtJpegApi.h> |
24 #include <IclExtJpegApi.h> |
25 #include "thumbnailimagedecoderv2.h" |
25 #include "thumbnailimagedecoderv2.h" |
26 #include "thumbnaillog.h" |
26 #include "thumbnaillog.h" |
27 #include "thumbnailpanic.h" |
27 #include "thumbnailpanic.h" |
28 #include "thumbnailmanagerconstants.h" |
28 #include "thumbnailmanagerconstants.h" |
|
29 #include "OstTraceDefinitions.h" |
|
30 #ifdef OST_TRACE_COMPILER_IN_USE |
|
31 #include "thumbnailimagedecoderv2Traces.h" |
|
32 #endif |
|
33 |
29 |
34 |
30 // ============================ MEMBER FUNCTIONS =============================== |
35 // ============================ MEMBER FUNCTIONS =============================== |
31 //------------------------------------------------------------------------ |
36 //------------------------------------------------------------------------ |
32 // CThumbnailImageDecoder::CThumbnailImageDecoder() |
37 // CThumbnailImageDecoder::CThumbnailImageDecoder() |
33 // C++ default constructor can NOT contain any code, that might leave. |
38 // C++ default constructor can NOT contain any code, that might leave. |
57 // ----------------------------------------------------------------------------- |
62 // ----------------------------------------------------------------------------- |
58 // |
63 // |
59 void CThumbnailImageDecoderv2::CreateL(TDesC8& aBuffer, MThumbnailProviderObserver& aObserver) |
64 void CThumbnailImageDecoderv2::CreateL(TDesC8& aBuffer, MThumbnailProviderObserver& aObserver) |
60 { |
65 { |
61 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() start" ); |
66 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() start" ); |
|
67 OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_CREATEL, "CThumbnailImageDecoderv2::CreateL - start" ); |
62 |
68 |
63 iBuffer = &aBuffer; |
69 iBuffer = &aBuffer; |
64 iObserver = &aObserver; |
70 iObserver = &aObserver; |
65 |
71 |
66 CreateDecoderL(); |
72 CreateDecoderL(); |
67 |
73 |
68 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() end" ); |
74 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() end" ); |
|
75 OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_CREATEL, "CThumbnailImageDecoderv2::CreateL - end" ); |
69 } |
76 } |
70 |
77 |
71 // ----------------------------------------------------------------------------- |
78 // ----------------------------------------------------------------------------- |
72 // CThumbnailImageDecoder::DecodeL() |
79 // CThumbnailImageDecoder::DecodeL() |
73 // Decode the thumbnail image |
80 // Decode the thumbnail image |
74 // ----------------------------------------------------------------------------- |
81 // ----------------------------------------------------------------------------- |
75 // |
82 // |
76 void CThumbnailImageDecoderv2::DecodeL( ) |
83 void CThumbnailImageDecoderv2::DecodeL( ) |
77 { |
84 { |
78 TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() start" ); |
85 TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() start" ); |
|
86 OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_DECODEL, "CThumbnailImageDecoderv2::DecodeL - start" ); |
79 |
87 |
80 // Create the bitmap |
88 // Create the bitmap |
81 if ( !iBitmap ) |
89 if ( !iBitmap ) |
82 { |
90 { |
83 iBitmap = new( ELeave )CFbsBitmap(); |
91 iBitmap = new( ELeave )CFbsBitmap(); |
176 CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options )); |
186 CExtJpegDecoder::EHwImplementation, iFs, *iBuffer, options )); |
177 |
187 |
178 if ( decErr != KErrNone ) |
188 if ( decErr != KErrNone ) |
179 { |
189 { |
180 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder failed = %d", decErr ); |
190 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder failed = %d", decErr ); |
|
191 OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - HW CExtJpegDecoder failed;decErr=%d", decErr ); |
181 TRAP( decErr, iDecoder = CExtJpegDecoder::DataNewL( |
192 TRAP( decErr, iDecoder = CExtJpegDecoder::DataNewL( |
182 CExtJpegDecoder::ESwImplementation, iFs, *iBuffer, options )); |
193 CExtJpegDecoder::ESwImplementation, iFs, *iBuffer, options )); |
183 |
194 |
184 if ( decErr != KErrNone ) |
195 if ( decErr != KErrNone ) |
185 { |
196 { |
186 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr); |
197 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr); |
|
198 OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - SW CExtJpegDecoder failed;decErr=%d", decErr ); |
187 LeaveIfCorruptL( decErr ); |
199 LeaveIfCorruptL( decErr ); |
188 |
200 |
189 TRAP( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, KJpegMime(), options ) ); |
201 TRAP( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, KJpegMime(), options ) ); |
190 |
202 |
191 if ( decErr != KErrNone ) |
203 if ( decErr != KErrNone ) |
192 { |
204 { |
193 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder failed %d", decErr); |
205 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder failed %d", decErr); |
|
206 OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder failed;decErr=%d", decErr ); |
194 LeaveIfCorruptL( decErr ); |
207 LeaveIfCorruptL( decErr ); |
195 |
208 |
196 // don't force any mime type |
209 // don't force any mime type |
197 TRAPD( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, options ) ); |
210 TRAPD( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, options ) ); |
198 if ( decErr != KErrNone ) |
211 if ( decErr != KErrNone ) |
199 { |
212 { |
200 TN_DEBUG2( "CThumbnailImageDecoderv2::CImageDecoder() - CImageDecoder no mime error %d", decErr ); |
213 TN_DEBUG2( "CThumbnailImageDecoderv2::CImageDecoder() - CImageDecoder no mime error %d", decErr ); |
|
214 OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder no mime error;decErr=%d", decErr ); |
201 User::Leave( decErr ); |
215 User::Leave( decErr ); |
202 } |
216 } |
203 } |
217 } |
204 |
218 |
205 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder created" ); |
219 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder created" ); |
|
220 OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder created" ); |
206 } |
221 } |
207 else |
222 else |
208 { |
223 { |
209 TN_DEBUG1( "CThumbnailImageDecoderv2:CreateDecoderL() - SW CExtJpegDecoder created" ); |
224 TN_DEBUG1( "CThumbnailImageDecoderv2:CreateDecoderL() - SW CExtJpegDecoder created" ); |
|
225 OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - SW CExtJpegDecoder created" ); |
210 } |
226 } |
211 } |
227 } |
212 else |
228 else |
213 { |
229 { |
214 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder created" ); |
230 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder created" ); |
|
231 OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - HW CExtJpegDecoder created" ); |
215 } |
232 } |
216 |
233 |
217 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() end" ); |
234 TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() end" ); |
|
235 OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - end" ); |
218 } |
236 } |
219 |
237 |
220 // ----------------------------------------------------------------------------- |
238 // ----------------------------------------------------------------------------- |
221 // CThumbnailImageDecoderv2::LeaveIfCorruptL() |
239 // CThumbnailImageDecoderv2::LeaveIfCorruptL() |
222 // Leave if image is corrupted |
240 // Leave if image is corrupted |