imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp
branchRCL_3
changeset 21 6257223ede8a
parent 20 2b4b06654caa
child 22 9d4d3445ce6e
equal deleted inserted replaced
20:2b4b06654caa 21:6257223ede8a
    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();
    95     iDecoder->Convert( &iStatus, * iBitmap );
   103     iDecoder->Convert( &iStatus, * iBitmap );
    96 
   104 
    97     SetActive();  
   105     SetActive();  
    98     
   106     
    99     TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() end" );
   107     TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() end" );
       
   108     OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_DECODEL, "CThumbnailImageDecoderv2::DecodeL - end" );
   100     }
   109     }
   101 
   110 
   102 
   111 
   103 // -----------------------------------------------------------------------------
   112 // -----------------------------------------------------------------------------
   104 // CThumbnailImageDecoder::Release()
   113 // CThumbnailImageDecoder::Release()
   163 // -----------------------------------------------------------------------------
   172 // -----------------------------------------------------------------------------
   164 //
   173 //
   165 void CThumbnailImageDecoderv2::CreateDecoderL()
   174 void CThumbnailImageDecoderv2::CreateDecoderL()
   166     {
   175     {
   167     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() start" );
   176     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() start" );
       
   177     OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - start" );
   168     
   178     
   169     delete iDecoder;
   179     delete iDecoder;
   170     iDecoder = NULL;
   180     iDecoder = NULL;
   171     
   181     
   172     CImageDecoder::TOptions options = ( CImageDecoder::TOptions )( 
   182     CImageDecoder::TOptions options = ( CImageDecoder::TOptions )( 
   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