]> git.sesse.net Git - vlc/commitdiff
mediacodec: add more safety checks when trying to get codec capabilities
authorFelix Abecassis <felix.abecassis@gmail.com>
Wed, 19 Feb 2014 15:39:19 +0000 (16:39 +0100)
committerJean-Baptiste Kempf <jb@videolan.org>
Wed, 19 Feb 2014 15:42:24 +0000 (16:42 +0100)
Signed-off-by: Jean-Baptiste Kempf <jb@videolan.org>
modules/codec/omxil/android_mediacodec.c

index 330997dbb9beee6c685f1c7ec8f2032eaba1db0c..8fa68fa7ab8793f3610488b18df6bd7cf24521cf 100644 (file)
@@ -310,8 +310,13 @@ static int OpenDecoder(vlc_object_t *p_this)
 
         jobject codec_capabilities = (*env)->CallObjectMethod(env, info, p_sys->get_capabilities_for_type,
                                                               (*env)->NewStringUTF(env, mime));
-        jobject profile_levels = (*env)->GetObjectField(env, codec_capabilities, p_sys->profile_levels_field);
-        int profile_levels_len = profile_levels ? (*env)->GetArrayLength(env, profile_levels) : 0;
+        jobject profile_levels = NULL;
+        int profile_levels_len = 0;
+        if (codec_capabilities) {
+            profile_levels = (*env)->GetObjectField(env, codec_capabilities, p_sys->profile_levels_field);
+            if (profile_levels)
+                profile_levels_len = (*env)->GetArrayLength(env, profile_levels);
+        }
         msg_Dbg(p_dec, "Number of profile levels: %d", profile_levels_len);
 
         jobject types = (*env)->CallObjectMethod(env, info, p_sys->get_supported_types);