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

Commit c86b533e 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 am: 50d0b096 am: 86bbd073

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

Change-Id: I076593827131a1592a2efec203c6e7d39d0074d5
parents f3114ae7 86bbd073
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;