File indexing completed on 2024-05-12 05:53:13
0001 #include "gstreamer_android.h" 0002 #include <QAndroidJniEnvironment> 0003 #include <QtAndroid> 0004 #include <gst/gst.h> 0005 0006 extern "C" gboolean gst_qt_android_init(GError **error) 0007 { 0008 QAndroidJniEnvironment jniEnv; 0009 JNIEnv *env = jniEnv; 0010 QAndroidJniObject QJObj = QtAndroid::androidActivity(); 0011 jobject context = QJObj.object<jobject>(); 0012 0013 gst_android_init(jniEnv, NULL, context); 0014 0015 if (env->ExceptionCheck()) { 0016 jclass throwable_class = env->FindClass("java/lang/Throwable"); 0017 jmethodID throwable_to_string_id = env->GetMethodID(throwable_class, "toString", "()Ljava/lang/String;"); 0018 jstring msg_obj = (jstring)env->CallObjectMethod(context, throwable_to_string_id); 0019 const char *msg_str = env->GetStringUTFChars(msg_obj, 0); 0020 0021 g_set_error(error, GST_LIBRARY_ERROR, GST_LIBRARY_ERROR_INIT, "%s", msg_str); 0022 0023 env->ReleaseStringUTFChars(msg_obj, msg_str); 0024 env->DeleteLocalRef(throwable_class); 0025 env->DeleteLocalRef(msg_obj); 0026 0027 return FALSE; 0028 } 0029 0030 return TRUE; 0031 }