diff -r f72c4fccd381 -r b0e4b01681c5 multimediacommscontroller/mmccfilesourcesink/src/mccfilesink.cpp --- 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 - } } // -----------------------------------------------------------------------------