summaryrefslogtreecommitdiff
path: root/tutorials/android-tutorial-1/jni/tutorial-1.c
diff options
context:
space:
mode:
Diffstat (limited to 'tutorials/android-tutorial-1/jni/tutorial-1.c')
-rw-r--r--tutorials/android-tutorial-1/jni/tutorial-1.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/tutorials/android-tutorial-1/jni/tutorial-1.c b/tutorials/android-tutorial-1/jni/tutorial-1.c
new file mode 100644
index 0000000..1599489
--- /dev/null
+++ b/tutorials/android-tutorial-1/jni/tutorial-1.c
@@ -0,0 +1,31 @@
+#include <string.h>
+#include <jni.h>
+#include <android/log.h>
+#include <gst/gst.h>
+
+/*
+ * Java Bindings
+ */
+static jstring gst_native_get_gstreamer_info (JNIEnv* env, jobject thiz) {
+ char *version_utf8 = gst_version_string();
+ jstring *version_jstring = (*env)->NewStringUTF(env, version_utf8);
+ g_free (version_utf8);
+ return version_jstring;
+}
+
+static JNINativeMethod native_methods[] = {
+ { "nativeGetGStreamerInfo", "()Ljava/lang/String;", (void *) gst_native_get_gstreamer_info}
+};
+
+jint JNI_OnLoad(JavaVM *vm, void *reserved) {
+ JNIEnv *env = NULL;
+
+ if ((*vm)->GetEnv(vm, (void**) &env, JNI_VERSION_1_4) != JNI_OK) {
+ __android_log_print (ANDROID_LOG_ERROR, "tutorial-1", "Could not retrieve JNIEnv");
+ return 0;
+ }
+ jclass klass = (*env)->FindClass (env, "org/freedesktop/gstreamer/tutorials/tutorial_1/Tutorial1");
+ (*env)->RegisterNatives (env, klass, native_methods, G_N_ELEMENTS(native_methods));
+
+ return JNI_VERSION_1_4;
+}