You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
implement release() methods in MediaCodec and related classes
This commit is contained in:
@@ -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_t *pcm_handle = _PTR(_GET_LONG_FIELD(this, "pcm_handle"));
|
||||||
snd_pcm_pause(pcm_handle, TRUE);
|
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);
|
||||||
|
}
|
||||||
|
|||||||
@@ -53,6 +53,14 @@ JNIEXPORT void JNICALL Java_android_media_AudioTrack_native_1pause
|
|||||||
JNIEXPORT jint JNICALL Java_android_media_AudioTrack_native_1write
|
JNIEXPORT jint JNICALL Java_android_media_AudioTrack_native_1write
|
||||||
(JNIEnv *, jobject, jbyteArray, jint, jint);
|
(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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -63,6 +63,14 @@ JNIEXPORT jint JNICALL Java_android_media_MediaCodec_native_1dequeueOutputBuffer
|
|||||||
JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1releaseOutputBuffer
|
JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1releaseOutputBuffer
|
||||||
(JNIEnv *, jobject, jlong, jobject, jboolean);
|
(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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -481,3 +481,10 @@ JNIEXPORT void JNICALL Java_android_media_MediaCodec_native_1releaseOutputBuffer
|
|||||||
g_idle_add(render_frame, data);
|
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);
|
||||||
|
}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ public class AudioTrack {
|
|||||||
|
|
||||||
public void release() {
|
public void release() {
|
||||||
System.out.println("calling release(), how did this not get reported before DIDREEEEEEEEEEEEEEEEEEEEEEEEE\n");
|
System.out.println("calling release(), how did this not get reported before DIDREEEEEEEEEEEEEEEEEEEEEEEEE\n");
|
||||||
|
native_release();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getState() {
|
public int getState() {
|
||||||
@@ -136,4 +137,5 @@ public class AudioTrack {
|
|||||||
public native void native_play();
|
public native void native_play();
|
||||||
public native void native_pause();
|
public native void native_pause();
|
||||||
private native int native_write(byte[] audioData, int offsetInBytes, int sizeInBytes);
|
private native int native_write(byte[] audioData, int offsetInBytes, int sizeInBytes);
|
||||||
|
public native void native_release();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -128,6 +128,11 @@ public class MediaCodec {
|
|||||||
System.out.println("MediaCodec.setVideoScalingMode(" + mode + "): codecName=" + codecName);
|
System.out.println("MediaCodec.setVideoScalingMode(" + mode + "): codecName=" + codecName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void release() {
|
||||||
|
System.out.println("MediaCodec.release(): codecName=" + codecName);
|
||||||
|
native_release(native_codec);
|
||||||
|
}
|
||||||
|
|
||||||
private native long native_constructor(String codecName);
|
private native long native_constructor(String codecName);
|
||||||
private native void native_configure_audio(long codec, ByteBuffer extradata, int sampleRate, int channelCount);
|
private native void native_configure_audio(long codec, ByteBuffer extradata, int sampleRate, int channelCount);
|
||||||
private native void native_configure_video(long codec, ByteBuffer csd0, ByteBuffer csd1, Surface surface);
|
private native void native_configure_video(long codec, ByteBuffer csd0, ByteBuffer csd1, Surface surface);
|
||||||
@@ -135,6 +140,7 @@ public class MediaCodec {
|
|||||||
private native int native_queueInputBuffer(long codec, ByteBuffer buffer, long presentationTimeUs);
|
private native int native_queueInputBuffer(long codec, ByteBuffer buffer, long presentationTimeUs);
|
||||||
private native int native_dequeueOutputBuffer(long codec, ByteBuffer buffer, BufferInfo info);
|
private native int native_dequeueOutputBuffer(long codec, ByteBuffer buffer, BufferInfo info);
|
||||||
private native void native_releaseOutputBuffer(long codec, ByteBuffer buffer, boolean render);
|
private native void native_releaseOutputBuffer(long codec, ByteBuffer buffer, boolean render);
|
||||||
|
private native void native_release(long codec);
|
||||||
|
|
||||||
public static final class CryptoInfo {}
|
public static final class CryptoInfo {}
|
||||||
|
|
||||||
|
|||||||
@@ -39,4 +39,6 @@ public class MediaSession {
|
|||||||
public void setMetadata(MediaMetadata metadata) {}
|
public void setMetadata(MediaMetadata metadata) {}
|
||||||
|
|
||||||
public void setQueue(List<QueueItem> queue) {}
|
public void setQueue(List<QueueItem> queue) {}
|
||||||
|
|
||||||
|
public void release() {}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user