Fix for issue : 3439708 Last frame is missing effect

Change-Id: I533695f4154d4ebce4e8f1ff39a622ca4fd62430
diff --git a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
index e7a767a..e6f6052 100755
--- a/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
+++ b/libvideoeditor/lvpp/VideoEditorPreviewController.cpp
@@ -50,6 +50,7 @@
       mOutputVideoWidth(0),

       mOutputVideoHeight(0),

       bStopThreadInProgress(false),

+      mOverlayState(OVERLAY_CLEAR),

       mSemThreadWait(NULL) {

     LOGV("VideoEditorPreviewController");

     mRenderingMode = M4xVSS_kBlackBorders;

@@ -138,6 +139,8 @@
         mTarget = NULL;

     }

 

+    mOverlayState = OVERLAY_CLEAR;

+

     LOGV("~VideoEditorPreviewController returns");

 }

 

@@ -1128,6 +1131,21 @@
                  pController->mJniCookie, MSG_TYPE_PROGRESS_INDICATION,

                  &playedDuration);

 

+            if ((pController->mOverlayState == OVERLAY_UPDATE) &&

+                (pController->mCurrentClipNumber !=

+                (pController->mNumberClipsToPreview-1))) {

+                VideoEditorCurretEditInfo *pEditInfo =

+                    (VideoEditorCurretEditInfo*)M4OSA_malloc(sizeof(VideoEditorCurretEditInfo),

+                    M4VS, (M4OSA_Char*)"Current Edit info");

+                pEditInfo->overlaySettingsIndex = ext2;

+                pEditInfo->clipIndex = pController->mCurrentClipNumber;

+                pController->mOverlayState == OVERLAY_CLEAR;

+                if (pController->mJniCallback != NULL) {

+                        pController->mJniCallback(pController->mJniCookie,

+                            MSG_TYPE_OVERLAY_CLEAR, pEditInfo);

+                }

+                M4OSA_free((M4OSA_MemAddr32)pEditInfo);

+            }

             M4OSA_semaphorePost(pController->mSemThreadWait);

             break;

         }

@@ -1194,9 +1212,11 @@
             LOGV("pController->mCurrentClipNumber = %d",pController->mCurrentClipNumber);

             if (pController->mJniCallback != NULL) {

                 if (ext1 == 1) {

+                    pController->mOverlayState = OVERLAY_UPDATE;

                     pController->mJniCallback(pController->mJniCookie,

                         MSG_TYPE_OVERLAY_UPDATE, pEditInfo);

                 } else {

+                    pController->mOverlayState = OVERLAY_CLEAR;

                     pController->mJniCallback(pController->mJniCookie,

                         MSG_TYPE_OVERLAY_CLEAR, pEditInfo);

                 }