From 88f1c64907526c739bda7a61dc2c09a0c5c55f6a Mon Sep 17 00:00:00 2001 From: Googler Date: Wed, 7 May 2025 10:10:26 -0700 Subject: [PATCH] Internal Changes PiperOrigin-RevId: 755903085 --- .../media3/decoder/VideoDecoderOutputBuffer.java | 2 +- libraries/decoder_av1/src/main/jni/gav1_jni.cc | 10 +++++----- libraries/decoder_vp9/src/main/jni/vpx_jni.cc | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/libraries/decoder/src/main/java/androidx/media3/decoder/VideoDecoderOutputBuffer.java b/libraries/decoder/src/main/java/androidx/media3/decoder/VideoDecoderOutputBuffer.java index b277294518..2ecef3e8f1 100644 --- a/libraries/decoder/src/main/java/androidx/media3/decoder/VideoDecoderOutputBuffer.java +++ b/libraries/decoder/src/main/java/androidx/media3/decoder/VideoDecoderOutputBuffer.java @@ -37,7 +37,7 @@ public class VideoDecoderOutputBuffer extends DecoderOutputBuffer { // ) /** Decoder private data. Used from native code. */ - public int decoderPrivate; + public long decoderPrivate; /** Output mode. */ public @C.VideoOutputMode int mode; diff --git a/libraries/decoder_av1/src/main/jni/gav1_jni.cc b/libraries/decoder_av1/src/main/jni/gav1_jni.cc index ff85cae10a..4a7b90f4ea 100644 --- a/libraries/decoder_av1/src/main/jni/gav1_jni.cc +++ b/libraries/decoder_av1/src/main/jni/gav1_jni.cc @@ -553,7 +553,7 @@ DECODER_FUNC(jlong, gav1Init, jint threads) { const jclass outputBufferClass = env->FindClass("androidx/media3/decoder/VideoDecoderOutputBuffer"); context->decoder_private_field = - env->GetFieldID(outputBufferClass, "decoderPrivate", "I"); + env->GetFieldID(outputBufferClass, "decoderPrivate", "J"); context->output_mode_field = env->GetFieldID(outputBufferClass, "mode", "I"); context->data_field = env->GetFieldID(outputBufferClass, "data", "Ljava/nio/ByteBuffer;"); @@ -664,7 +664,7 @@ DECODER_FUNC(jint, gav1GetFrame, jlong jContext, jobject jOutputBuffer, // Exception is thrown in Java when returning from the native call. return kStatusError; } - env->SetIntField(jOutputBuffer, context->decoder_private_field, buffer_id); + env->SetLongField(jOutputBuffer, context->decoder_private_field, buffer_id); } return kStatusOk; @@ -674,7 +674,7 @@ DECODER_FUNC(jint, gav1RenderFrame, jlong jContext, jobject jSurface, jobject jOutputBuffer) { JniContext* const context = reinterpret_cast(jContext); const int buffer_id = - env->GetIntField(jOutputBuffer, context->decoder_private_field); + env->GetLongField(jOutputBuffer, context->decoder_private_field); JniFrameBuffer* const jni_buffer = context->buffer_manager.GetBuffer(buffer_id); @@ -749,8 +749,8 @@ DECODER_FUNC(jint, gav1RenderFrame, jlong jContext, jobject jSurface, DECODER_FUNC(void, gav1ReleaseFrame, jlong jContext, jobject jOutputBuffer) { JniContext* const context = reinterpret_cast(jContext); const int buffer_id = - env->GetIntField(jOutputBuffer, context->decoder_private_field); - env->SetIntField(jOutputBuffer, context->decoder_private_field, -1); + env->GetLongField(jOutputBuffer, context->decoder_private_field); + env->SetLongField(jOutputBuffer, context->decoder_private_field, -1); context->jni_status_code = context->buffer_manager.ReleaseBuffer(buffer_id); if (context->jni_status_code != kJniStatusOk) { LOGE("%s", GetJniErrorMessage(context->jni_status_code)); diff --git a/libraries/decoder_vp9/src/main/jni/vpx_jni.cc b/libraries/decoder_vp9/src/main/jni/vpx_jni.cc index 9e53439006..e983e7ff8b 100644 --- a/libraries/decoder_vp9/src/main/jni/vpx_jni.cc +++ b/libraries/decoder_vp9/src/main/jni/vpx_jni.cc @@ -484,7 +484,7 @@ DECODER_FUNC(jlong, vpxInit, jboolean disableLoopFilter, env->GetFieldID(outputBufferClass, "data", "Ljava/nio/ByteBuffer;"); outputModeField = env->GetFieldID(outputBufferClass, "mode", "I"); decoderPrivateField = - env->GetFieldID(outputBufferClass, "decoderPrivate", "I"); + env->GetFieldID(outputBufferClass, "decoderPrivate", "J"); return reinterpret_cast(context); } @@ -615,8 +615,8 @@ DECODER_FUNC(jint, vpxGetFrame, jlong jContext, jobject jOutputBuffer) { if (env->ExceptionCheck()) { return -1; } - env->SetIntField(jOutputBuffer, decoderPrivateField, - id + kDecoderPrivateBase); + env->SetLongField(jOutputBuffer, decoderPrivateField, + id + kDecoderPrivateBase); } return 0; } @@ -624,7 +624,7 @@ DECODER_FUNC(jint, vpxGetFrame, jlong jContext, jobject jOutputBuffer) { DECODER_FUNC(jint, vpxRenderFrame, jlong jContext, jobject jSurface, jobject jOutputBuffer) { JniCtx* const context = reinterpret_cast(jContext); - const int id = env->GetIntField(jOutputBuffer, decoderPrivateField) - + const int id = env->GetLongField(jOutputBuffer, decoderPrivateField) - kDecoderPrivateBase; JniFrameBuffer* srcBuffer = context->buffer_manager->get_buffer(id); context->acquire_native_window(env, jSurface); @@ -679,9 +679,9 @@ DECODER_FUNC(jint, vpxRenderFrame, jlong jContext, jobject jSurface, DECODER_FUNC(void, vpxReleaseFrame, jlong jContext, jobject jOutputBuffer) { JniCtx* const context = reinterpret_cast(jContext); - const int id = env->GetIntField(jOutputBuffer, decoderPrivateField) - + const int id = env->GetLongField(jOutputBuffer, decoderPrivateField) - kDecoderPrivateBase; - env->SetIntField(jOutputBuffer, decoderPrivateField, -1); + env->SetLongField(jOutputBuffer, decoderPrivateField, -1); context->buffer_manager->release(id); }