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

Commit e703e82d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "media: further resource cleanup for async release" into rvc-dev am:...

Merge "media: further resource cleanup for async release" into rvc-dev am: 275248dd am: 46bc5d07

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11795061

Change-Id: I632524226be2159e81f8badf107fa2f0d3fe2f4b
parents 468d4182 46bc5d07
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -233,10 +233,12 @@ void JMediaCodec::release() {
}

void JMediaCodec::releaseAsync() {
    std::call_once(mAsyncReleaseFlag, [this] {
        if (mCodec != NULL) {
        mCodec->releaseAsync();
            mCodec->releaseAsync(new AMessage(kWhatAsyncReleaseComplete, this));
        }
        mInitStatus = NO_INIT;
    });
}

JMediaCodec::~JMediaCodec() {
@@ -1084,6 +1086,12 @@ void JMediaCodec::onMessageReceived(const sp<AMessage> &msg) {
            handleFrameRenderedNotification(msg);
            break;
        }
        case kWhatAsyncReleaseComplete:
        {
            mCodec.clear();
            mLooper->stop();
            break;
        }
        default:
            TRESPASS();
    }
+2 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ private:
    enum {
        kWhatCallbackNotify,
        kWhatFrameRendered,
        kWhatAsyncReleaseComplete,
    };

    jclass mClass;
@@ -185,6 +186,7 @@ private:
    bool mGraphicOutput{false};
    bool mHasCryptoOrDescrambler{false};
    std::once_flag mReleaseFlag;
    std::once_flag mAsyncReleaseFlag;

    sp<AMessage> mCallbackNotification;
    sp<AMessage> mOnFrameRenderedNotification;