add missing null pointer check in MediaCodec.release()

When the MediaCodec failed to initialize, the native_codec pointer can
be null and releasing it would cause a SEGFAULT in native code.
This commit is contained in:
Julian Winkler
2024-10-22 18:05:09 +02:00
parent 5eb750b253
commit bcdf3eb3ce

View File

@@ -18,7 +18,6 @@ public class MediaCodec {
private long native_codec;
private boolean outputFormatSet = false;
private MediaFormat mediaFormat;
private boolean isReleased = false;
private Queue<Integer> freeOutputBuffers;
private Queue<Integer> queuedInputBuffers;
@@ -148,8 +147,9 @@ public class MediaCodec {
public void release() {
System.out.println("MediaCodec.release(): codecName=" + codecName);
if (native_codec != 0)
native_release(native_codec);
isReleased = true;
native_codec = 0;
}
@Override
@@ -158,11 +158,9 @@ public class MediaCodec {
try {
super.finalize();
} finally {
if (!isReleased) {
release();
}
}
}
private native long native_constructor(String codecName);
private native void native_configure_audio(long codec, ByteBuffer extradata, int sampleRate, int channelCount);