vtprotocolplugins/VideoSource/src/cmultiframeprovider.cpp
branchRCL_3
changeset 25 779871d1e4f4
parent 24 f15ac8e65a02
equal deleted inserted replaced
24:f15ac8e65a02 25:779871d1e4f4
    17 
    17 
    18 
    18 
    19 // INCLUDE FILES
    19 // INCLUDE FILES
    20 #include <imageconversion.h>
    20 #include <imageconversion.h>
    21 #include <cvtimageconverter.h>
    21 #include <cvtimageconverter.h>
    22 #include <rphcltserver.h>
    22 #include <RPhCltServer.h>
    23 #include <cphcltimagehandler.h>
    23 #include <CPhCltImageHandler.h>
    24 #include <bautils.h>
    24 #include <bautils.h>
    25 
    25 
    26 #include "cmultiframeprovider.h"
    26 #include "cmultiframeprovider.h"
    27 #include "cmultiframeloopao.h"
    27 #include "cmultiframeloopao.h"
    28 #include "cmultiframedataao.h"
    28 #include "cmultiframedataao.h"
   231             delete iGSBitmap; iGSBitmap = NULL;
   231             delete iGSBitmap; iGSBitmap = NULL;
   232             iGSBitmap = temp;
   232             iGSBitmap = temp;
   233             }
   233             }
   234         iGSImage = ETrue;
   234         iGSImage = ETrue;
   235         iCount = 1;     
   235         iCount = 1;     
   236 		    iActiveWaitInit->InitializeWaiter( &CMultiframeProvider::ConversionFinished );
   236 		    iActiveWaitInit->InitializeWaiter( &ConversionFinished );
   237         iActiveWaitInit->Signal( KErrNone );
   237         iActiveWaitInit->Signal( KErrNone );
   238         }
   238         }
   239     else
   239     else
   240         { // default still image prepared by using file handle
   240         { // default still image prepared by using file handle
   241         InitializeL( NULL );
   241         InitializeL( NULL );
   273     CleanupStack::PushL( tempBitmap );
   273     CleanupStack::PushL( tempBitmap );
   274     iScaled = CVtImageBitmap::NewL( tempBitmap->Handle() );
   274     iScaled = CVtImageBitmap::NewL( tempBitmap->Handle() );
   275     CleanupStack::PopAndDestroy(); // tempBitmap
   275     CleanupStack::PopAndDestroy(); // tempBitmap
   276     tempBitmap = 0;
   276     tempBitmap = 0;
   277 
   277 
   278     iActiveWaitInit->InitializeWaiter( &CMultiframeProvider::BMSScalingFinished );
   278     iActiveWaitInit->InitializeWaiter( &BMSScalingFinished );
   279     iActiveWaitInit->Signal( KErrNone );
   279     iActiveWaitInit->Signal( KErrNone );
   280     __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeBlank() <<"), RThread().Id().operator TUint()));
   280     __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::IniatializeBlank() <<"), RThread().Id().operator TUint()));
   281     }
   281     }
   282  // -----------------------------------------------------------------------------
   282  // -----------------------------------------------------------------------------
   283 // CVSStillImageDataProvider::CreateBlankBitmapL(
   283 // CVSStillImageDataProvider::CreateBlankBitmapL(
   515         }
   515         }
   516     // no harm done if other than this used, handle would already be 0
   516     // no harm done if other than this used, handle would already be 0
   517     iDefaultImageFile.Close(); 
   517     iDefaultImageFile.Close(); 
   518     if ( aError == KErrNone )
   518     if ( aError == KErrNone )
   519         {
   519         {
   520 				iActiveWaitInitScale->InitializeWaiter( &CMultiframeProvider::BMSScalingFinished );
   520 				iActiveWaitInitScale->InitializeWaiter( &BMSScalingFinished );
   521       	if ( iGSImage )
   521       	if ( iGSImage )
   522        			{
   522        			{
   523        			__IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() scale GS "), RThread().Id().operator TUint()));
   523        			__IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ConversionFinished() scale GS "), RThread().Id().operator TUint()));
   524        			iVtImageScalerInit->Scale( *iGSBitmap, *iScaled );
   524        			iVtImageScalerInit->Scale( *iGSBitmap, *iScaled );
   525       			}
   525       			}
   577        			iVtImageScalerInit->Scale( *iConverted, *iScaled );
   577        			iVtImageScalerInit->Scale( *iConverted, *iScaled );
   578       			}
   578       			}
   579         	}
   579         	}
   580     // Allways inform Decoding problems
   580     // Allways inform Decoding problems
   581     else
   581     else
   582        	{
   582         {
   583         iObserver->NotifyImageHandlingError( aError );
   583         iObserver->NotifyImageHandlingError( aError );
   584         delete iTempBM;
   584         delete iTempBM;
   585        	delete iMask;
   585         delete iMask;
   586        	iMask = NULL;
   586         iMask = NULL;
   587        	iTempBM = NULL;
   587         iTempBM = NULL;
   588         // GIF used when error happen
   588         // GIF used when error happen
   589         if ( iCount > 1 )
   589         if ( iCount > 1 )
   590             {
   590             {
   591             iCount = 1;
   591             iCount = 1;
   592             }
   592             }
   684             }
   684             }
   685         else
   685         else
   686             {
   686             {
   687             //ScaleCopy is not running, Jump ScaleCopy
   687             //ScaleCopy is not running, Jump ScaleCopy
   688             __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()jump ScaleCopy>>"), RThread().Id().operator TUint()));
   688             __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::VFScalingReady()jump ScaleCopy>>"), RThread().Id().operator TUint()));
   689             iActiveWaitScale->InitializeWaiter( &CMultiframeProvider::VFRescalingFinished );
   689             iActiveWaitScale->InitializeWaiter( &VFRescalingFinished );
   690             iActiveWaitScale->Signal(KErrNone);
   690             iActiveWaitScale->Signal(KErrNone);
   691             }
   691             }
   692         }
   692         }
   693     else
   693     else
   694         {
   694         {
   727         iWantedVFSize = aSize;
   727         iWantedVFSize = aSize;
   728         }
   728         }
   729     else
   729     else
   730         {
   730         {
   731         __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy(): scaling NOW"), RThread().Id().operator TUint()));
   731         __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy(): scaling NOW"), RThread().Id().operator TUint()));
   732         iActiveWaitScale->InitializeWaiter( &CMultiframeProvider::VFRescalingFinished );
   732         iActiveWaitScale->InitializeWaiter( &VFRescalingFinished );
   733         TInt result( iVFbitmap->Bitmap().Resize( aSize ) );
   733         TInt result( iVFbitmap->Bitmap().Resize( aSize ) );
   734         __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy() result %d <<"), RThread().Id().operator TUint(), result));
   734         __IF_DEBUG(Print(_L("VideoSource [%d]: CMultiframeProvider::ScaleCopy() result %d <<"), RThread().Id().operator TUint(), result));
   735         if ( result != KErrNone )
   735         if ( result != KErrNone )
   736             {
   736             {
   737             iActiveWaitScale->Signal( result );
   737             iActiveWaitScale->Signal( result );
   809 // -----------------------------------------------------------------------------
   809 // -----------------------------------------------------------------------------
   810 //
   810 //
   811 void CMultiframeProvider::ScaleVF( const TSize& aSize )
   811 void CMultiframeProvider::ScaleVF( const TSize& aSize )
   812     {
   812     {
   813     __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScaleVF() >>"), RThread().Id().operator TUint()));
   813     __IF_DEBUG(Print(_L("VideoSource[%d]: CMultiframeProvider::ScaleVF() >>"), RThread().Id().operator TUint()));
   814     iActiveWaitScale->InitializeWaiter( &CMultiframeProvider::VFRescalingFinished );
   814     iActiveWaitScale->InitializeWaiter( &VFRescalingFinished );
   815     TInt result( iVFbitmap->Bitmap().Resize( aSize ) );
   815     TInt result( iVFbitmap->Bitmap().Resize( aSize ) );
   816     ClearVFScalingTargetSize();
   816     ClearVFScalingTargetSize();
   817     if ( result != KErrNone )
   817     if ( result != KErrNone )
   818         {
   818         {
   819         iActiveWaitScale->Signal( result );
   819         iActiveWaitScale->Signal( result );