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

Commit 4883125b authored by Chong Zhang's avatar Chong Zhang Committed by Android (Google) Code Review
Browse files

Merge "do not dequeue from native window after we hit fatal error" into mnc-dev

parents bad4358c a89cfb6c
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -236,6 +236,7 @@ private:
    bool mSentFormat;
    bool mSentFormat;
    bool mIsVideo;
    bool mIsVideo;
    bool mIsEncoder;
    bool mIsEncoder;
    bool mFatalError;
    bool mShutdownInProgress;
    bool mShutdownInProgress;
    bool mExplicitShutdown;
    bool mExplicitShutdown;


+9 −0
Original line number Original line Diff line number Diff line
@@ -497,6 +497,7 @@ ACodec::ACodec()
      mSentFormat(false),
      mSentFormat(false),
      mIsVideo(false),
      mIsVideo(false),
      mIsEncoder(false),
      mIsEncoder(false),
      mFatalError(false),
      mShutdownInProgress(false),
      mShutdownInProgress(false),
      mExplicitShutdown(false),
      mExplicitShutdown(false),
      mEncoderDelay(0),
      mEncoderDelay(0),
@@ -1312,6 +1313,11 @@ ACodec::BufferInfo *ACodec::dequeueBufferFromNativeWindow() {
        return NULL;
        return NULL;
    }
    }


    if (mFatalError) {
        ALOGW("not dequeuing from native window due to fatal error");
        return NULL;
    }

    int fenceFd = -1;
    int fenceFd = -1;
    do {
    do {
        status_t err = mNativeWindow->dequeueBuffer(mNativeWindow.get(), &buf, &fenceFd);
        status_t err = mNativeWindow->dequeueBuffer(mNativeWindow.get(), &buf, &fenceFd);
@@ -4460,6 +4466,9 @@ void ACodec::signalError(OMX_ERRORTYPE error, status_t internalError) {
            ALOGW("Invalid OMX error %#x", error);
            ALOGW("Invalid OMX error %#x", error);
        }
        }
    }
    }

    mFatalError = true;

    notify->setInt32("err", internalError);
    notify->setInt32("err", internalError);
    notify->setInt32("actionCode", ACTION_CODE_FATAL); // could translate from OMX error.
    notify->setInt32("actionCode", ACTION_CODE_FATAL); // could translate from OMX error.
    notify->post();
    notify->post();