diff -r fcaf4606ba4e -r 9d4397b300d1 mmaudio_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp --- a/mmaudio_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp Thu Oct 07 23:44:30 2010 +0100 +++ b/mmaudio_pub/drm_audio_player_api/tsrc/DRMAudioPlay/src/DRMAudioPlay_core.cpp Mon Oct 18 12:47:26 2010 +0100 @@ -655,6 +655,11 @@ TTimeIntervalMicroSeconds ExpectedDuration = TTimeIntervalMicroSeconds(I64INT(sndPlayer->GetDuration().Int64()) - I64INT(Position.Int64())); iLogger->Log(_L("ExpectedDuration: %d") ,ExpectedDuration.Int64() ); + + //if total duration less than the setposition value, set the expected duration to zero + //to handle test cases with setposition > total duration. + if(ExpectedDuration.Int64() < 0) + ExpectedDuration = TTimeIntervalMicroSeconds(I64INT(0)); if ( Abs(ExpectedDuration.Int64() - PerceivedDuration.Int64()) > ErrorRange.Int64() ) { //Durations too different