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

@@ -92,6 +92,7 @@ public class AudioTrack {
public void release() {
System.out.println("calling release(), how did this not get reported before DIDREEEEEEEEEEEEEEEEEEEEEEEEE\n");
native_release();
}
public int getState() {
@@ -136,4 +137,5 @@ public class AudioTrack {
public native void native_play();
public native void native_pause();
private native int native_write(byte[] audioData, int offsetInBytes, int sizeInBytes);
public native void native_release();
}

View File

@@ -128,6 +128,11 @@ public class MediaCodec {
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 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);
@@ -135,6 +140,7 @@ public class MediaCodec {
private native int native_queueInputBuffer(long codec, ByteBuffer buffer, long presentationTimeUs);
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_release(long codec);
public static final class CryptoInfo {}

View File

@@ -39,4 +39,6 @@ public class MediaSession {
public void setMetadata(MediaMetadata metadata) {}
public void setQueue(List<QueueItem> queue) {}
public void release() {}
}