Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c32d4c16 authored by Dheeraj Sharma's avatar Dheeraj Sharma Committed by Android (Google) Code Review
Browse files

Merge "Fix for issue : 3439708 Last frame is missing effect"

parents 5d5aed9d 4f4efef8
Loading
Loading
Loading
Loading
+3 −14
Original line number Original line Diff line number Diff line
@@ -808,10 +808,7 @@ void PreviewPlayer::onVideoEvent() {
                finishSeekIfNecessary(-1);
                finishSeekIfNecessary(-1);
                LOGV("PreviewPlayer: onVideoEvent EOS reached.");
                LOGV("PreviewPlayer: onVideoEvent EOS reached.");
                mFlags |= VIDEO_AT_EOS;
                mFlags |= VIDEO_AT_EOS;
                if (mOverlayUpdateEventPosted) {
                mOverlayUpdateEventPosted = false;
                mOverlayUpdateEventPosted = false;
                    postOverlayUpdateEvent_l();
                }
                postStreamDoneEvent_l(err);
                postStreamDoneEvent_l(err);
                return;
                return;
            }
            }
@@ -937,10 +934,7 @@ void PreviewPlayer::onVideoEvent() {
        mFlags |= VIDEO_AT_EOS;
        mFlags |= VIDEO_AT_EOS;
        mFlags |= AUDIO_AT_EOS;
        mFlags |= AUDIO_AT_EOS;
        LOGV("PreviewPlayer: onVideoEvent timeUs > mPlayEndTime; send EOS..");
        LOGV("PreviewPlayer: onVideoEvent timeUs > mPlayEndTime; send EOS..");
        if (mOverlayUpdateEventPosted) {
        mOverlayUpdateEventPosted = false;
        mOverlayUpdateEventPosted = false;
            postOverlayUpdateEvent_l();
        }
        postStreamDoneEvent_l(ERROR_END_OF_STREAM);
        postStreamDoneEvent_l(ERROR_END_OF_STREAM);
        return;
        return;
    }
    }
@@ -961,7 +955,6 @@ void PreviewPlayer::onVideoEvent() {
            ((mEffectsSettings[i].uiStartTime+mEffectsSettings[i].uiDuration) >=
            ((mEffectsSettings[i].uiStartTime+mEffectsSettings[i].uiDuration) >=
             (((timeUs+mDecVideoTsStoryBoard)/1000)-mPlayBeginTimeMsec))
             (((timeUs+mDecVideoTsStoryBoard)/1000)-mPlayBeginTimeMsec))
              && (mEffectsSettings[i].uiDuration != 0)) {
              && (mEffectsSettings[i].uiDuration != 0)) {

            setVideoPostProcessingNode(
            setVideoPostProcessingNode(
             mEffectsSettings[i].VideoEffectType, TRUE);
             mEffectsSettings[i].VideoEffectType, TRUE);
        }
        }
@@ -975,7 +968,6 @@ void PreviewPlayer::onVideoEvent() {
    if (mCurrentVideoEffect & VIDEO_EFFECT_FRAMING) {
    if (mCurrentVideoEffect & VIDEO_EFFECT_FRAMING) {
        mCurrentVideoEffect &= ~VIDEO_EFFECT_FRAMING; //never apply framing here.
        mCurrentVideoEffect &= ~VIDEO_EFFECT_FRAMING; //never apply framing here.
        if (!mOverlayUpdateEventPosted) {
        if (!mOverlayUpdateEventPosted) {

            // Find the effect in effectSettings array
            // Find the effect in effectSettings array
            int index;
            int index;
            for (index = 0; index < mNumberEffects; index++) {
            for (index = 0; index < mNumberEffects; index++) {
@@ -1058,10 +1050,7 @@ void PreviewPlayer::onVideoEvent() {
        LOGV("PreviewPlayer: onVideoEvent EOS.");
        LOGV("PreviewPlayer: onVideoEvent EOS.");
        mFlags |= VIDEO_AT_EOS;
        mFlags |= VIDEO_AT_EOS;
        mFlags |= AUDIO_AT_EOS;
        mFlags |= AUDIO_AT_EOS;
        if (mOverlayUpdateEventPosted) {
        mOverlayUpdateEventPosted = false;
        mOverlayUpdateEventPosted = false;
            postOverlayUpdateEvent_l();
        }
        postStreamDoneEvent_l(ERROR_END_OF_STREAM);
        postStreamDoneEvent_l(ERROR_END_OF_STREAM);
    }
    }
    else {
    else {
+20 −0
Original line number Original line Diff line number Diff line
@@ -50,6 +50,7 @@ VideoEditorPreviewController::VideoEditorPreviewController()
      mOutputVideoWidth(0),
      mOutputVideoWidth(0),
      mOutputVideoHeight(0),
      mOutputVideoHeight(0),
      bStopThreadInProgress(false),
      bStopThreadInProgress(false),
      mOverlayState(OVERLAY_CLEAR),
      mSemThreadWait(NULL) {
      mSemThreadWait(NULL) {
    LOGV("VideoEditorPreviewController");
    LOGV("VideoEditorPreviewController");
    mRenderingMode = M4xVSS_kBlackBorders;
    mRenderingMode = M4xVSS_kBlackBorders;
@@ -138,6 +139,8 @@ VideoEditorPreviewController::~VideoEditorPreviewController() {
        mTarget = NULL;
        mTarget = NULL;
    }
    }


    mOverlayState = OVERLAY_CLEAR;

    LOGV("~VideoEditorPreviewController returns");
    LOGV("~VideoEditorPreviewController returns");
}
}


@@ -1128,6 +1131,21 @@ void VideoEditorPreviewController::notify(
                 pController->mJniCookie, MSG_TYPE_PROGRESS_INDICATION,
                 pController->mJniCookie, MSG_TYPE_PROGRESS_INDICATION,
                 &playedDuration);
                 &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);
            M4OSA_semaphorePost(pController->mSemThreadWait);
            break;
            break;
        }
        }
@@ -1194,9 +1212,11 @@ void VideoEditorPreviewController::notify(
            LOGV("pController->mCurrentClipNumber = %d",pController->mCurrentClipNumber);
            LOGV("pController->mCurrentClipNumber = %d",pController->mCurrentClipNumber);
            if (pController->mJniCallback != NULL) {
            if (pController->mJniCallback != NULL) {
                if (ext1 == 1) {
                if (ext1 == 1) {
                    pController->mOverlayState = OVERLAY_UPDATE;
                    pController->mJniCallback(pController->mJniCookie,
                    pController->mJniCallback(pController->mJniCookie,
                        MSG_TYPE_OVERLAY_UPDATE, pEditInfo);
                        MSG_TYPE_OVERLAY_UPDATE, pEditInfo);
                } else {
                } else {
                    pController->mOverlayState = OVERLAY_CLEAR;
                    pController->mJniCallback(pController->mJniCookie,
                    pController->mJniCallback(pController->mJniCookie,
                        MSG_TYPE_OVERLAY_CLEAR, pEditInfo);
                        MSG_TYPE_OVERLAY_CLEAR, pEditInfo);
                }
                }
+5 −0
Original line number Original line Diff line number Diff line
@@ -51,6 +51,10 @@ typedef enum {
    VePlayerAutoStop
    VePlayerAutoStop
} VePlayerState;
} VePlayerState;


typedef enum {
    OVERLAY_UPDATE = 0,
    OVERLAY_CLEAR
} OverlayState;


// Callback mechanism from PreviewController to Jni  */
// Callback mechanism from PreviewController to Jni  */
typedef void (*jni_progress_callback_fct)(void* cookie, M4OSA_UInt32 msgType, void *argc);
typedef void (*jni_progress_callback_fct)(void* cookie, M4OSA_UInt32 msgType, void *argc);
@@ -117,6 +121,7 @@ private:
    M4OSA_UInt32 mFirstPreviewClipBeginTime;
    M4OSA_UInt32 mFirstPreviewClipBeginTime;
    M4OSA_UInt32 mLastPreviewClipEndTime;
    M4OSA_UInt32 mLastPreviewClipEndTime;
    M4OSA_UInt32 mVideoStoryBoardTimeMsUptoFirstPreviewClip;
    M4OSA_UInt32 mVideoStoryBoardTimeMsUptoFirstPreviewClip;
    OverlayState mOverlayState;


    M4xVSS_MediaRendering mRenderingMode;
    M4xVSS_MediaRendering mRenderingMode;
    uint32_t mOutputVideoWidth;
    uint32_t mOutputVideoWidth;