summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2009-09-20 10:42:13 -0700
committerMarco Nelissen <marcone@google.com>2009-10-06 08:51:16 -0700
commitc39d2e3c012fb96999991e30659a474f9f30f789 (patch)
treef3312cf6fee6b373f0e6486de4013e986eba552d /media/jni
parent52cde7279bad58285704498eea57bdaf9e595b49 (diff)
downloadframeworks_base-c39d2e3c012fb96999991e30659a474f9f30f789.zip
frameworks_base-c39d2e3c012fb96999991e30659a474f9f30f789.tar.gz
frameworks_base-c39d2e3c012fb96999991e30659a474f9f30f789.tar.bz2
Music visualizer support hack.
This currently assumes 44k stereo (won't crash on other formats, but won't give the correct results either), and links statically with libspeex to get FFT data, increasing the size of libmedia by about 45kb.
Diffstat (limited to 'media/jni')
-rw-r--r--media/jni/android_media_MediaPlayer.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaPlayer.cpp b/media/jni/android_media_MediaPlayer.cpp
index df98de5..a4ac6dc 100644
--- a/media/jni/android_media_MediaPlayer.cpp
+++ b/media/jni/android_media_MediaPlayer.cpp
@@ -594,6 +594,18 @@ android_media_MediaPlayer_native_finalize(JNIEnv *env, jobject thiz)
android_media_MediaPlayer_release(env, thiz);
}
+static jint
+android_media_MediaPlayer_snoop(JNIEnv* env, jobject thiz, jobject data, jint kind) {
+ jshort* ar = (jshort*)env->GetPrimitiveArrayCritical((jarray)data, 0);
+ jsize len = env->GetArrayLength((jarray)data);
+ int ret = 0;
+ if (ar) {
+ ret = MediaPlayer::snoop(ar, len, kind);
+ env->ReleasePrimitiveArrayCritical((jarray)data, ar, 0);
+ }
+ return ret;
+}
+
// ----------------------------------------------------------------------------
static JNINativeMethod gMethods[] = {
@@ -624,6 +636,7 @@ static JNINativeMethod gMethods[] = {
{"native_init", "()V", (void *)android_media_MediaPlayer_native_init},
{"native_setup", "(Ljava/lang/Object;)V", (void *)android_media_MediaPlayer_native_setup},
{"native_finalize", "()V", (void *)android_media_MediaPlayer_native_finalize},
+ {"snoop", "([SI)I", (void *)android_media_MediaPlayer_snoop},
};
static const char* const kClassPathName = "android/media/MediaPlayer";