Fix for N_SE-N_SE-40067
authorabhismita ghosh <g.abhismita@samsung.com>
Wed, 5 Jun 2013 14:40:35 +0000 (20:10 +0530)
committerabhismita ghosh <g.abhismita@samsung.com>
Wed, 5 Jun 2013 14:40:35 +0000 (20:10 +0530)
Change-Id: I979d036682f7187c1177965fb2d771900bab82ec

src/VpVideoPlayerPresentationModel.cpp

index a25585a..4d8dbaf 100755 (executable)
@@ -820,6 +820,9 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
        int currentProgressPos = 0;
        DateTime dateTime;
        String currentPlayTime;
+       long playerDuration = 0;
+
+       playerDuration = __pPlayer->GetDuration();
 
        if (timer.GetHashCode() == __pTimer->GetHashCode())
        {
@@ -828,8 +831,10 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
                        dateTime.AddSeconds(__pPlayer->GetPosition() / MILLISECOND);
                        currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
-
+                       if (playerDuration != START_TIME)
+                       {
+                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                       }
                        CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                        __pTimer->Start(PROGRESS_TIMER_DURATION);
@@ -841,7 +846,7 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
 
                msTime = msTime + (TWO_SEC * MILLISECOND);
 
-               if (msTime < __pPlayer->GetDuration())
+               if (msTime < playerDuration)
                {
                        if (__playerSeekCompleted == true)
                        {
@@ -853,8 +858,10 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
                                dateTime.AddSeconds(msTime / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
-
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
                        }
                }
@@ -862,15 +869,17 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
                {
                        if (__playerSeekCompleted == true)
                        {
-                               r = SeekTo(__pPlayer->GetDuration());
+                               r = SeekTo(playerDuration);
                                TryReturnVoid(r == E_SUCCESS, "VideoPlayerPresentationModel::SeekTo() failed:%s", GetErrorMessage(r));
                                __playerSeekCompleted = false;
 
-                               dateTime.AddSeconds(__pPlayer->GetDuration() / MILLISECOND);
+                               dateTime.AddSeconds(playerDuration / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
-
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
                        }
                }
@@ -894,8 +903,10 @@ VideoPlayerPresentationModel::OnTimerExpired(Timer& timer)
                                dateTime.AddSeconds(msTime / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
-
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
                        }
                }
@@ -928,6 +939,7 @@ VideoPlayerPresentationModel::Forward(void)
        int currentProgressPos = 0;
        DateTime dateTime;
        String currentPlayTime;
+       long playerDuration = 0;
 
        AppLogDebug("Forward");
 
@@ -935,11 +947,12 @@ VideoPlayerPresentationModel::Forward(void)
 
        if (playState != PLAYER_STATE_ENDOFCLIP)
        {
+               playerDuration = __pPlayer->GetDuration();
                msTime = __pPlayer->GetPosition();
 
                msTime = msTime + (TEN_SEC * MILLISECOND);
 
-               if (msTime < __pPlayer->GetDuration())
+               if (msTime < playerDuration)
                {
                        if (__playerSeekCompleted == true)
                        {
@@ -949,7 +962,10 @@ VideoPlayerPresentationModel::Forward(void)
                                dateTime.AddSeconds(msTime / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
@@ -960,13 +976,16 @@ VideoPlayerPresentationModel::Forward(void)
                {
                        if (__playerSeekCompleted == true)
                        {
-                               r = SeekTo(__pPlayer->GetDuration());
+                               r = SeekTo(playerDuration);
                                TryReturnVoid(r == E_SUCCESS, "SeekTo() failed:%s", GetErrorMessage(r));
 
-                               dateTime.AddSeconds(__pPlayer->GetDuration() / MILLISECOND);
+                               dateTime.AddSeconds(playerDuration / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
@@ -985,6 +1004,7 @@ VideoPlayerPresentationModel::Rewind(void)
        int currentProgressPos = 0;
        DateTime dateTime;
        String currentPlayTime;
+       long playerDuration = 0;
 
        AppLogDebug("Rewind");
 
@@ -992,6 +1012,7 @@ VideoPlayerPresentationModel::Rewind(void)
 
        if (playState != PLAYER_STATE_ENDOFCLIP)
        {
+               playerDuration = __pPlayer->GetDuration();
                msTime = __pPlayer->GetPosition();
 
                msTime = msTime - (TEN_SEC * MILLISECOND);
@@ -1005,7 +1026,10 @@ VideoPlayerPresentationModel::Rewind(void)
 
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", START_TIME, START_TIME, START_TIME);
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;
@@ -1022,7 +1046,10 @@ VideoPlayerPresentationModel::Rewind(void)
                                dateTime.AddSeconds(msTime / MILLISECOND);
                                currentPlayTime.Format(20, L"%02d:%02d:%02d", dateTime.GetHour(), dateTime.GetMinute(), dateTime.GetSecond());
 
-                               currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (__pPlayer->GetDuration() / MAX_PROGRESS_RANGE));
+                               if (playerDuration != START_TIME)
+                               {
+                                       currentProgressPos = static_cast<int>(__pPlayer->GetPosition() / (playerDuration / MAX_PROGRESS_RANGE));
+                               }
                                CallOnPlayTimeChanged(currentProgressPos, currentPlayTime);
 
                                __playerSeekCompleted = false;