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

Commit c8c09357 authored by Wonsik Kim's avatar Wonsik Kim Committed by Automerger Merge Worker
Browse files

Merge "RELAND: "media: lazy MediaCodec.release()"" into rvc-dev am: c8a654c2 am: cadc5803

Change-Id: I7d62e33aeccc4903fd3e17bbd140f3238c5b2e15
parents 49eacfb9 cadc5803
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -232,6 +232,13 @@ void JMediaCodec::release() {
    });
}

void JMediaCodec::releaseAsync() {
    if (mCodec != NULL) {
        mCodec->releaseAsync();
    }
    mInitStatus = NO_INIT;
}

JMediaCodec::~JMediaCodec() {
    if (mLooper != NULL) {
        /* MediaCodec and looper should have been released explicitly already
@@ -1114,7 +1121,10 @@ static sp<JMediaCodec> getMediaCodec(JNIEnv *env, jobject thiz) {
}

static void android_media_MediaCodec_release(JNIEnv *env, jobject thiz) {
    setMediaCodec(env, thiz, NULL);
    sp<JMediaCodec> codec = getMediaCodec(env, thiz);
    if (codec != NULL) {
        codec->releaseAsync();
    }
}

static void throwCodecException(JNIEnv *env, status_t err, int32_t actionCode, const char *msg) {
@@ -2889,7 +2899,7 @@ static void android_media_MediaCodec_native_setup(

static void android_media_MediaCodec_native_finalize(
        JNIEnv *env, jobject thiz) {
    android_media_MediaCodec_release(env, thiz);
    setMediaCodec(env, thiz, NULL);
}

// MediaCodec.LinearBlock
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ struct JMediaCodec : public AHandler {

    void registerSelf();
    void release();
    void releaseAsync();

    status_t enableOnFrameRenderedListener(jboolean enable);