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

Commit 27362395 authored by Jon Larimer's avatar Jon Larimer Committed by Android Git Automerger
Browse files

am 2ed42aea: Merge "do not dequeue from native window after we hit fatal error...

am 2ed42aea: Merge "do not dequeue from native window after we hit fatal error -- DO NOT MERGE" into klp-dev

* commit '2ed42aea':
  do not dequeue from native window after we hit fatal error -- DO NOT MERGE
parents 6035c811 2ed42aea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -188,6 +188,7 @@ private:
    bool mSentFormat;
    bool mIsEncoder;
    bool mUseMetadataOnEncoderOutput;
    bool mFatalError;
    bool mShutdownInProgress;
    bool mIsConfiguredForAdaptivePlayback;

+10 −0
Original line number Diff line number Diff line
@@ -364,6 +364,7 @@ ACodec::ACodec()
      mSentFormat(false),
      mIsEncoder(false),
      mUseMetadataOnEncoderOutput(false),
      mFatalError(false),
      mShutdownInProgress(false),
      mIsConfiguredForAdaptivePlayback(false),
      mEncoderDelay(0),
@@ -814,6 +815,12 @@ ACodec::BufferInfo *ACodec::dequeueBufferFromNativeWindow() {
    ANativeWindowBuffer *buf;
    int fenceFd = -1;
    CHECK(mNativeWindow.get() != NULL);

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

    if (native_window_dequeue_buffer_and_wait(mNativeWindow.get(), &buf) != 0) {
        ALOGE("dequeueBuffer failed.");
        return NULL;
@@ -2763,6 +2770,9 @@ void ACodec::signalError(OMX_ERRORTYPE error, status_t internalError) {
    sp<AMessage> notify = mNotify->dup();
    notify->setInt32("what", ACodec::kWhatError);
    notify->setInt32("omx-error", error);

    mFatalError = true;

    notify->setInt32("err", internalError);
    notify->post();
}