From e7473877d5bde3da9e8d8bbb4e838b68cd5e019b Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Tue, 5 Feb 2019 18:54:27 -0800 Subject: media: retain codec name for MediaCodec.getCodecInfo Bug: 123962331 Change-Id: I4d349d673fcb62888681c96e7df325fa9e4b3b37 --- media/jni/android_media_MediaCodec.cpp | 7 +++++-- media/jni/android_media_MediaCodec.h | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 406f9dd94bb4..f07f1e8fb62b 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -153,8 +153,12 @@ JMediaCodec::JMediaCodec( if (nameIsType) { mCodec = MediaCodec::CreateByType(mLooper, name, encoder, &mInitStatus); + if (mCodec == nullptr || mCodec->getName(&mNameAtCreation) != OK) { + mNameAtCreation = "(null)"; + } } else { mCodec = MediaCodec::CreateByComponentName(mLooper, name, &mInitStatus); + mNameAtCreation = name; } CHECK((mCodec != NULL) != (mInitStatus != OK)); } @@ -699,9 +703,8 @@ status_t JMediaCodec::getCodecInfo(JNIEnv *env, jobject *codecInfoObject) const return err; } - // TODO: get alias ScopedLocalRef nameObject(env, - env->NewStringUTF(codecInfo->getCodecName())); + env->NewStringUTF(mNameAtCreation.c_str())); ScopedLocalRef canonicalNameObject(env, env->NewStringUTF(codecInfo->getCodecName())); diff --git a/media/jni/android_media_MediaCodec.h b/media/jni/android_media_MediaCodec.h index 0a53f1a0e268..de08550fa3db 100644 --- a/media/jni/android_media_MediaCodec.h +++ b/media/jni/android_media_MediaCodec.h @@ -155,6 +155,7 @@ private: sp mLooper; sp mCodec; + AString mNameAtCreation; sp mCallbackNotification; sp mOnFrameRenderedNotification; -- cgit v1.2.3-59-g8ed1b