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

Commit 56b350ea authored by Marco Nelissen's avatar Marco Nelissen Committed by Android Git Automerger
Browse files

am 111333ea: Merge "handle error during flush in MediaPlayer.reset()" into lmp-dev

* commit '111333ea':
  handle error during flush in MediaPlayer.reset()
parents d05795e5 111333ea
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -803,6 +803,14 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
                    err = UNKNOWN_ERROR;
                }
                mRenderer->queueEOS(audio, err);
                if (audio && mFlushingAudio != NONE) {
                    mAudioDecoder.clear();
                    mFlushingAudio = SHUT_DOWN;
                } else if (!audio && mFlushingVideo != NONE){
                    mVideoDecoder.clear();
                    mFlushingVideo = SHUT_DOWN;
                }
                finishFlushIfPossible();
            } else if (what == Decoder::kWhatDrainThisBuffer) {
                renderBuffer(audio, msg);
            } else {
+2 −2
Original line number Diff line number Diff line
@@ -44,11 +44,11 @@ NuPlayer::Decoder::Decoder(
    // Every decoder has its own looper because MediaCodec operations
    // are blocking, but NuPlayer needs asynchronous operations.
    mDecoderLooper = new ALooper;
    mDecoderLooper->setName("NuPlayerDecoder");
    mDecoderLooper->setName("NPDecoder");
    mDecoderLooper->start(false, false, ANDROID_PRIORITY_AUDIO);

    mCodecLooper = new ALooper;
    mCodecLooper->setName("NuPlayerDecoder-MC");
    mCodecLooper->setName("NPDecoder-CL");
    mCodecLooper->start(false, false, ANDROID_PRIORITY_AUDIO);
}

+8 −3
Original line number Diff line number Diff line
@@ -716,7 +716,8 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {
                    CHECK(msg->findInt32("err", &err));
                    CHECK(msg->findInt32("actionCode", &actionCode));

                    ALOGE("Codec reported err %#x, actionCode %d", err, actionCode);
                    ALOGE("Codec reported err %#x, actionCode %d, while in state %d",
                            err, actionCode, mState);
                    if (err == DEAD_OBJECT) {
                        mFlags |= kFlagSawMediaServerDie;
                    }
@@ -767,8 +768,12 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {

                        case FLUSHING:
                        {
                            if (actionCode == ACTION_CODE_FATAL) {
                                setState(UNINITIALIZED);
                            } else {
                                setState(
                                        (mFlags & kFlagIsAsync) ? FLUSHED : STARTED);
                            }
                            break;
                        }