multimediacommscontroller/mmccfilesourcesink/src/mccfilesink.cpp
branchRCL_3
changeset 59 b0e4b01681c5
parent 55 f72c4fccd381
--- a/multimediacommscontroller/mmccfilesourcesink/src/mccfilesink.cpp	Wed Sep 15 12:38:06 2010 +0300
+++ b/multimediacommscontroller/mmccfilesourcesink/src/mccfilesink.cpp	Wed Oct 13 14:59:15 2010 +0300
@@ -33,8 +33,7 @@
 
 const TInt KMccMaxNumTimestamps = 5;
 
-// used for Calculate Average Timestamp
-const TInt KMccDefaultAvgTimestampDiff = 66000;
+const TInt KMccTimestampDifferenceMultiplier = 10;
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -72,8 +71,7 @@
 // -----------------------------------------------------------------------------
 //
 CMccFileSink::CMccFileSink() : 
-    CMccDataSink( KMccFileSinkUid ),
-    iCurrAvgTimestampDifference( KMccDefaultAvgTimestampDiff )
+    CMccDataSink( KMccFileSinkUid )
     {
     iVideoCodec.iFourCC = TFourCC( KMccFourCCIdH263 );
     // FJKI-7J58CB no use case for audio in file, hence removing the audio track capability 
@@ -567,10 +565,6 @@
                
        averageTimeStampDifference = averageTimeStampDifference / ( KMccMaxNumTimestamps - 1 );
        }
-    if ( averageTimeStampDifference > 0 )
-	   {
-	   iCurrAvgTimestampDifference = averageTimeStampDifference;
-       }
     
     if ( aCurrentTimestamp > iPreviousTimestamp )
        {
@@ -580,19 +574,19 @@
            }
        iTimestamps.AppendL( aCurrentTimestamp.Int64() );
        }
-    else if ( aCurrentTimestamp < iPreviousTimestamp )
+    else
        {
-	   TInt64 currDifference = iPreviousTimestamp.Int64() - aCurrentTimestamp.Int64();
-       iAddToTimestamp += ( currDifference + iCurrAvgTimestampDifference );
-       iTimestamps.Reset();
-       iPausedDuration = 0;
+       TInt64 currDifference = iPreviousTimestamp.Int64() - aCurrentTimestamp.Int64();
+       if ( averageTimeStampDifference != 0 && 
+            currDifference > ( averageTimeStampDifference * KMccTimestampDifferenceMultiplier ) )
+           {
+           iAddToTimestamp += ( currDifference + averageTimeStampDifference );
+           iTimestamps.Reset();
+		   iPausedDuration = 0;
            
-       __FILESINK_CONTROLL_INT1("CMccFileSink::TimeToPlay, iAddToTimestamp=", iAddToTimestamp )  
+           __FILESINK_CONTROLL_INT1("CMccFileSink::TimeToPlay, iAddToTimestamp=", iAddToTimestamp )  
+           }
        }
-    else
-        {
-        // NOP
-        }
     }
 
 // -----------------------------------------------------------------------------