diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-04-17 22:07:04 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-04-17 22:07:04 +0000 |
commit | 28ea0461c10c1fad92295f191c636a3550394f10 (patch) | |
tree | beedb7e9aadf0854d6fd91b8464411de0026c152 /media/jni/android_media_MediaCodec.cpp | |
parent | c7cd73aa001f0a721b841b72d545505d6bbdc062 (diff) | |
parent | bedf6bac626a367ca7bd35c9f4ffc325bd4aeac5 (diff) |
Merge "media: fix OutputFrame.getFormat()" into rvc-dev
Diffstat (limited to 'media/jni/android_media_MediaCodec.cpp')
-rw-r--r-- | media/jni/android_media_MediaCodec.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 362dfa0c88f4..947cfc038b7f 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -735,14 +735,19 @@ status_t JMediaCodec::getOutputFrame( } } - 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) { |