MediaCodecInfo.java: Added isFeatureSupported method to CodecCapabilities
Added isFeatureSupported method to CodecCapabilities, so that applications
can query whether codecs support various features. For now
added one video-decoder feature:
FEATURE_AdaptivePlayback
Media playback applications can query it to see if the codec
supports seamless resolution changes during decoding.
Change-Id: I56b2cf1429f39f9b9e0243a990c95e7a64dd7ff7
Signed-off-by: Lajos Molnar <lajos@google.com>
Related-to-bug: 7093648
diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp
index 04430ec..caa594e 100644
--- a/media/jni/android_media_MediaCodecList.cpp
+++ b/media/jni/android_media_MediaCodecList.cpp
@@ -110,10 +110,11 @@
Vector<MediaCodecList::ProfileLevel> profileLevels;
Vector<uint32_t> colorFormats;
+ uint32_t flags;
status_t err =
MediaCodecList::getInstance()->getCodecCapabilities(
- index, typeStr, &profileLevels, &colorFormats);
+ index, typeStr, &profileLevels, &colorFormats, &flags);
env->ReleaseStringUTFChars(type, typeStr);
typeStr = NULL;
@@ -127,6 +128,9 @@
env->FindClass("android/media/MediaCodecInfo$CodecCapabilities");
CHECK(capsClazz != NULL);
+ jfieldID flagsField =
+ env->GetFieldID(capsClazz, "flags", "I");
+
jobject caps = env->AllocObject(capsClazz);
jclass profileLevelClazz =
@@ -163,6 +167,8 @@
env->SetObjectField(caps, profileLevelsField, profileLevelArray);
+ env->SetIntField(caps, flagsField, flags);
+
env->DeleteLocalRef(profileLevelArray);
profileLevelArray = NULL;