camcordermmfplugin/filecomposer/Src/CamC3GPDataSinkImp.cpp
changeset 15 50d5061ee01e
parent 14 34024902876b
child 16 130a995b5096
equal deleted inserted replaced
14:34024902876b 15:50d5061ee01e
    35 #ifdef _DEBUG
    35 #ifdef _DEBUG
    36 #include <e32svr.h>
    36 #include <e32svr.h>
    37 #define PRINT(x) RDebug::Print x
    37 #define PRINT(x) RDebug::Print x
    38 #else
    38 #else
    39 #define PRINT(x)
    39 #define PRINT(x)
       
    40 #endif
       
    41 
       
    42 #include "OstTraceDefinitions.h"
       
    43 #ifdef OST_TRACE_COMPILER_IN_USE
       
    44 #include "CamC3GPDataSinkImpTraces.h"
    40 #endif
    45 #endif
    41 
    46 
    42 // CONSTANTS
    47 // CONSTANTS
    43 const TUint   KVideoAverageBitRate   = 48000;     // Default average bitrate for video
    48 const TUint   KVideoAverageBitRate   = 48000;     // Default average bitrate for video
    44 const TUint   KVideoMaxBitRate       = 64000;     // Default maximum bitrate for video
    49 const TUint   KVideoMaxBitRate       = 64000;     // Default maximum bitrate for video
    94 // Sink destructor.
    99 // Sink destructor.
    95 // -----------------------------------------------------------------------------
   100 // -----------------------------------------------------------------------------
    96 //
   101 //
    97 CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp(void)
   102 CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp(void)
    98     {
   103     {
       
   104     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_CCAMC3GPDATASINKIMP, "e_CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp 1" );
    99     PRINT(_L("CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp enter"));
   105     PRINT(_L("CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp enter"));
   100 
   106 
   101     if ( iFileName != KNullDesC )
   107     if ( iFileName != KNullDesC )
   102         {
   108         {
   103         // we need to try to stop sink
   109         // we need to try to stop sink
   137         iDeleteFileQueue->ResetAndDestroy();
   143         iDeleteFileQueue->ResetAndDestroy();
   138         }
   144         }
   139     delete iDeleteFileQueue;
   145     delete iDeleteFileQueue;
   140     iDeleteFileQueue = 0;
   146     iDeleteFileQueue = 0;
   141     PRINT(_L("CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp exit"));
   147     PRINT(_L("CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp exit"));
       
   148     OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_CCAMC3GPDATASINKIMP, "e_CCamC3GPDataSinkImp::~CCamC3GPDataSinkImp 0" );
   142     }
   149     }
   143 
   150 
   144 
   151 
   145 // -----------------------------------------------------------------------------
   152 // -----------------------------------------------------------------------------
   146 // CCamC3GPDataSinkImp::ConstructL
   153 // CCamC3GPDataSinkImp::ConstructL
   148 // Symbian 2nd phase constructor.
   155 // Symbian 2nd phase constructor.
   149 // -----------------------------------------------------------------------------
   156 // -----------------------------------------------------------------------------
   150 //
   157 //
   151 void CCamC3GPDataSinkImp::ConstructL(M3GPDataSinkObserver *aObserver)
   158 void CCamC3GPDataSinkImp::ConstructL(M3GPDataSinkObserver *aObserver)
   152 	{
   159 	{
       
   160     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_CONSTRUCTL, "e_CCamC3GPDataSinkImp::ConstructL 1" );
   153     PRINT(_L("CCamC3GPDataSinkImp::ConstructL enter"));
   161     PRINT(_L("CCamC3GPDataSinkImp::ConstructL enter"));
   154     iObserver = aObserver;
   162     iObserver = aObserver;
   155 
   163 
   156     iVideoBuffer = new (ELeave) TUint8[KVideoBufferSize];
   164     iVideoBuffer = new (ELeave) TUint8[KVideoBufferSize];
   157     iVideoBufferSize = KVideoBufferSize;
   165     iVideoBufferSize = KVideoBufferSize;
   207 
   215 
   208     // Idle priority Active object for async video temp file deletion
   216     // Idle priority Active object for async video temp file deletion
   209     iIdleDelete = CIdle::NewL( CActive::EPriorityIdle );
   217     iIdleDelete = CIdle::NewL( CActive::EPriorityIdle );
   210 
   218 
   211     PRINT(_L("CCamC3GPDataSinkImp::ConstructL exit"));
   219     PRINT(_L("CCamC3GPDataSinkImp::ConstructL exit"));
       
   220 	OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_CONSTRUCTL, "e_CCamC3GPDataSinkImp::ConstructL 0" );
   212 	}
   221 	}
   213 
   222 
   214 // -----------------------------------------------------------------------------
   223 // -----------------------------------------------------------------------------
   215 // CCamC3GPDataSinkImp::OpenFileL
   224 // CCamC3GPDataSinkImp::OpenFileL
   216 //
   225 //
   236 //
   245 //
   237 void CCamC3GPDataSinkImp::OpenFileL(TFileName aFileName, TFourCC aAudioCodecType, const TDesC8& aVideoCodecType, TCamCSinkFileFormat aFileFormat)
   246 void CCamC3GPDataSinkImp::OpenFileL(TFileName aFileName, TFourCC aAudioCodecType, const TDesC8& aVideoCodecType, TCamCSinkFileFormat aFileFormat)
   238     {
   247     {
   239     MP4Err    error;
   248     MP4Err    error;
   240 
   249 
       
   250     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_OPENFILEL, "e_CCamC3GPDataSinkImp::OpenFileL 1" );
   241     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL TFileName enter")));
   251     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL TFileName enter")));
   242 
   252 
   243     if (iMP4Handle)
   253     if (iMP4Handle)
   244         {
   254         {
   245         User::Leave(KErrGeneral);
   255         User::Leave(KErrGeneral);
   259     iDiskFull = EFalse;
   269     iDiskFull = EFalse;
   260     iTmpFileName = KTmpFileName;
   270     iTmpFileName = KTmpFileName;
   261     iFileName = aFileName;
   271     iFileName = aFileName;
   262     TInt errorcode;
   272     TInt errorcode;
   263 
   273 
       
   274     OstTrace0( CAMERASRV_PERFORMANCE, DUP2_CCAMC3GPDATASINKIMP_OPENFILEL, "e_CCamC3GPDataSinkImp::OpenFileL_create_temp_files 1" );
   264     if (!iFS) // Don't allocate new file server, if there is one already
   275     if (!iFS) // Don't allocate new file server, if there is one already
   265         {
   276         {
   266         iFS = new (ELeave) RFs;
   277         iFS = new (ELeave) RFs;
   267 
   278 
   268         errorcode = iFS->Connect();
   279         errorcode = iFS->Connect();
   348         	User::Leave(errorcode);
   359         	User::Leave(errorcode);
   349         	}
   360         	}
   350         }
   361         }
   351 
   362 
   352     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL Temp files cleared")));
   363     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL Temp files cleared")));
       
   364     OstTrace0( CAMERASRV_PERFORMANCE, DUP3_CCAMC3GPDATASINKIMP_OPENFILEL, "e_CCamC3GPDataSinkImp::OpenFileL_create_temp_files 0" );
   353 
   365 
   354     // Find used audio codec
   366     // Find used audio codec
   355     if ( ( aAudioCodecType == TFourCC(KCMRFourCCIdAMRNB) ) ) // AMR-NB
   367     if ( ( aAudioCodecType == TFourCC(KCMRFourCCIdAMRNB) ) ) // AMR-NB
   356         {
   368         {
   357         iFileCodecType |= MP4_TYPE_AMR_NB;
   369         iFileCodecType |= MP4_TYPE_AMR_NB;
   727         {
   739         {
   728         PRINT((_L("CCamC3GPDataSinkImp::OpenFileL Setting async file remover handler FAILED")));
   740         PRINT((_L("CCamC3GPDataSinkImp::OpenFileL Setting async file remover handler FAILED")));
   729         }
   741         }
   730 
   742 
   731     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL exit")));
   743     PRINT((_L("CCamC3GPDataSinkImp::OpenFileL exit")));
       
   744     OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_OPENFILEL, "e_CCamC3GPDataSinkImp::OpenFileL 0" );
   732     }
   745     }
   733 
   746 
   734 
   747 
   735 // -----------------------------------------------------------------------------
   748 // -----------------------------------------------------------------------------
   736 // CCamC3GPDataSinkImp::SetSizeLimit
   749 // CCamC3GPDataSinkImp::SetSizeLimit
   987 //
  1000 //
   988 void CCamC3GPDataSinkImp::SinkStopL()
  1001 void CCamC3GPDataSinkImp::SinkStopL()
   989     {
  1002     {
   990     MP4Err  error;
  1003     MP4Err  error;
   991 
  1004 
       
  1005     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_SINKSTOPL, "e_CCamC3GPDataSinkImp::SinkStopL 1" );
   992     PRINT((_L("CCamC3GPDataSinkImp::SinkStopL enter")));
  1006     PRINT((_L("CCamC3GPDataSinkImp::SinkStopL enter")));
   993 
  1007 
   994     if (!iMP4Handle)
  1008     if (!iMP4Handle)
   995         {
  1009         {
       
  1010         OstTrace0( CAMERASRV_PERFORMANCE, DUP2_CCAMC3GPDATASINKIMP_SINKSTOPL, "e_CCamC3GPDataSinkImp::SinkStopL 0" );
   996         return;
  1011         return;
   997         }
  1012         }
   998 
  1013 
   999     if (iVideoFrameDuration) // Write remaining video frame to disk
  1014     if (iVideoFrameDuration) // Write remaining video frame to disk
  1000         {
  1015         {
  1108         iAvailableSpaceAtStart = volumeinfo.iFree - (TInt64)(KDiskSafetyLimit+iCriticalDiskVal);
  1123         iAvailableSpaceAtStart = volumeinfo.iFree - (TInt64)(KDiskSafetyLimit+iCriticalDiskVal);
  1109         PRINT((_L("CCamC3GPDataSinkImp::SinkStopL() updating available diskspace - done")));
  1124         PRINT((_L("CCamC3GPDataSinkImp::SinkStopL() updating available diskspace - done")));
  1110         }
  1125         }
  1111 
  1126 
  1112     PRINT((_L("CCamC3GPDataSinkImp::SinkStopL exit")));
  1127     PRINT((_L("CCamC3GPDataSinkImp::SinkStopL exit")));
       
  1128     OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_SINKSTOPL, "e_CCamC3GPDataSinkImp::SinkStopL 0" );
  1113     }
  1129     }
  1114 
  1130 
  1115 
  1131 
  1116 // -----------------------------------------------------------------------------
  1132 // -----------------------------------------------------------------------------
  1117 // CCamC3GPDataSinkImp::WriteBuffer
  1133 // CCamC3GPDataSinkImp::WriteBuffer
  2212 // CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName
  2228 // CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName
  2213 // -----------------------------------------------------------------------------
  2229 // -----------------------------------------------------------------------------
  2214 //
  2230 //
  2215 void CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName( MP4FileName tempFileName )
  2231 void CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName( MP4FileName tempFileName )
  2216     {
  2232     {
       
  2233     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_M3GPMP4LIBDELETETEMPFILENAME, "e_CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName 1" );
  2217     PRINT((_L("CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName entering")));
  2234     PRINT((_L("CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName entering")));
  2218     MP4FileName* tempFileNamePtr = NULL;
  2235     MP4FileName* tempFileNamePtr = NULL;
  2219     TInt result = KErrNoMemory;
  2236     TInt result = KErrNoMemory;
  2220 
  2237 
  2221     // Add image to the queue.
  2238     // Add image to the queue.
  2252                 }
  2269                 }
  2253             }
  2270             }
  2254         }
  2271         }
  2255 
  2272 
  2256     PRINT((_L("CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName exiting")));
  2273     PRINT((_L("CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName exiting")));
       
  2274     OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_M3GPMP4LIBDELETETEMPFILENAME, "e_CCamC3GPDataSinkImp::M3GPMP4LibDeleteTempFileName 0" );
  2257     }
  2275     }
  2258 
  2276 
  2259 
  2277 
  2260 // ---------------------------------------------------------------------------
  2278 // ---------------------------------------------------------------------------
  2261 // CCamC3GPDataSinkImp::IdleDelete
  2279 // CCamC3GPDataSinkImp::IdleDelete
  2271 // CCamC3GPDataSinkImp::DoIdleDelete
  2289 // CCamC3GPDataSinkImp::DoIdleDelete
  2272 // ---------------------------------------------------------------------------
  2290 // ---------------------------------------------------------------------------
  2273 //
  2291 //
  2274 TInt CCamC3GPDataSinkImp::DoIdleDelete()
  2292 TInt CCamC3GPDataSinkImp::DoIdleDelete()
  2275     {
  2293     {
       
  2294     OstTrace0( CAMERASRV_PERFORMANCE, CCAMC3GPDATASINKIMP_DOIDLEDELETE, "e_CCamC3GPDataSinkImp::DoIdleDelete 1" );
  2276     PRINT((_L("CCamC3GPDataSinkImp::DoIdleDelete() in")));
  2295     PRINT((_L("CCamC3GPDataSinkImp::DoIdleDelete() in")));
  2277     TInt err = KErrNone;
  2296     TInt err = KErrNone;
  2278     MP4FileName tempFileName;
  2297     MP4FileName tempFileName;
  2279     TInt filesLeft = EFalse;
  2298     TInt filesLeft = EFalse;
  2280 
  2299 
  2302             filesLeft = ETrue;
  2321             filesLeft = ETrue;
  2303             }
  2322             }
  2304         }
  2323         }
  2305 
  2324 
  2306     PRINT((_L("CCamC3GPDataSinkImp::DoIdleDelete() out")));
  2325     PRINT((_L("CCamC3GPDataSinkImp::DoIdleDelete() out")));
       
  2326     OstTrace0( CAMERASRV_PERFORMANCE, DUP1_CCAMC3GPDATASINKIMP_DOIDLEDELETE, "e_CCamC3GPDataSinkImp::DoIdleDelete 0" );
  2307     return ( filesLeft );
  2327     return ( filesLeft );
  2308     }
  2328     }
  2309 
  2329 
  2310 
  2330 
  2311 //  End of File
  2331 //  End of File