implement release() methods in MediaCodec and related classes

This commit is contained in:
Julian Winkler
2024-02-17 15:17:37 +01:00
parent 5dfadc9c59
commit b7f06e41c1
7 changed files with 39 additions and 0 deletions

View File

@@ -248,3 +248,9 @@ JNIEXPORT void JNICALL Java_android_media_AudioTrack_native_1pause(JNIEnv *env,
snd_pcm_t *pcm_handle = _PTR(_GET_LONG_FIELD(this, "pcm_handle"));
snd_pcm_pause(pcm_handle, TRUE);
}
JNIEXPORT void JNICALL Java_android_media_AudioTrack_native_1release(JNIEnv *env, jobject this)
{
snd_pcm_t *pcm_handle = _PTR(_GET_LONG_FIELD(this, "pcm_handle"));
snd_pcm_close(pcm_handle);
}

View File

@@ -53,6 +53,14 @@ JNIEXPORT void JNICALL Java_android_media_AudioTrack_native_1pause
JNIEXPORT jint JNICALL Java_android_media_AudioTrack_native_1write
(JNIEnv *, jobject, jbyteArray, jint, jint);
/*
* Class: android_media_AudioTrack
* Method: native_release
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_android_media_AudioTrack_native_1release
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif

View File

@@ -63,6 +63,14 @@ JNIEXPORT jint JNICALL Java_android_media_MediaCodec_native_1dequeueOutputBuffer
JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1releaseOutputBuffer
(JNIEnv *, jobject, jlong, jobject, jboolean);
/*
* Class: android_media_MediaCodec
* Method: native_release
* Signature: (J)V
*/
JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1release
(JNIEnv *, jobject, jlong);
#ifdef __cplusplus
}
#endif

View File

@@ -481,3 +481,10 @@ JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1releaseOutputBuffer
g_idle_add(render_frame, data);
}
}
JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1release(JNIEnv *env, jobject this, jlong codec)
{
struct ATL_codec_context *ctx = _PTR(codec);
avcodec_free_context(&ctx->codec);
free(ctx);
}