diff options
| author | Marco Nelissen <marcone@google.com> | 2009-09-20 10:42:13 -0700 |
|---|---|---|
| committer | Marco Nelissen <marcone@google.com> | 2009-10-06 08:51:16 -0700 |
| commit | c39d2e3c012fb96999991e30659a474f9f30f789 (patch) | |
| tree | f3312cf6fee6b373f0e6486de4013e986eba552d /media/jni | |
| parent | 52cde7279bad58285704498eea57bdaf9e595b49 (diff) | |
| download | frameworks_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.cpp | 13 |
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"; |
