Merge "media: fix OutputFrame.getFormat()" into rvc-dev
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index 362dfa0..947cfc0 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -735,14 +735,19 @@
}
}
- jobject format;
- err = getOutputFormat(env, index, &format);
+ jobject formatMap;
+ err = getOutputFormat(env, index, &formatMap);
if (err != OK) {
return err;
}
- env->SetObjectField(frame, gFields.outputFrameFormatID, format);
- env->DeleteLocalRef(format);
- format = nullptr;
+ ScopedLocalRef<jclass> mediaFormatClass{env, env->FindClass("android/media/MediaFormat")};
+ ScopedLocalRef<jobject> format{env, env->NewObject(
+ mediaFormatClass.get(),
+ env->GetMethodID(mediaFormatClass.get(), "<init>", "(Ljava/util/Map;)V"),
+ formatMap)};
+ env->SetObjectField(frame, gFields.outputFrameFormatID, format.get());
+ env->DeleteLocalRef(formatMap);
+ formatMap = nullptr;
sp<RefBase> obj;
if (buffer->meta()->findObject("changedKeys", &obj) && obj) {