diff options
| author | 2012-04-11 16:40:56 -0700 | |
|---|---|---|
| committer | 2012-04-11 16:40:56 -0700 | |
| commit | 30ff5aecd751a2d5d6722c9ae96204eda2c3cbc4 (patch) | |
| tree | 9c85f9654d01246f2e0ee780a02687b1d5fc361c | |
| parent | f44098713f9ba40fb429fc1cfb5dc19447209710 (diff) | |
| parent | 0041b5c561a48ed8f63c4fe8ae3bff5196f68d0f (diff) | |
Merge "Fix thumbnail generation failure"
| -rw-r--r-- | media/java/android/media/MediaMetadataRetriever.java | 20 | ||||
| -rw-r--r-- | media/jni/android_media_MediaMetadataRetriever.cpp | 9 |
2 files changed, 19 insertions, 10 deletions
diff --git a/media/java/android/media/MediaMetadataRetriever.java b/media/java/android/media/MediaMetadataRetriever.java index 11ecd1f98e4e..aef631f6c22b 100644 --- a/media/java/android/media/MediaMetadataRetriever.java +++ b/media/java/android/media/MediaMetadataRetriever.java @@ -23,6 +23,7 @@ import android.graphics.Bitmap; import android.net.Uri; import java.io.FileDescriptor; +import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; @@ -57,7 +58,24 @@ public class MediaMetadataRetriever * @param path The path of the input media file. * @throws IllegalArgumentException If the path is invalid. */ - public native void setDataSource(String path) throws IllegalArgumentException; + public void setDataSource(String path) throws IllegalArgumentException { + FileInputStream is = null; + try { + is = new FileInputStream(path); + FileDescriptor fd = is.getFD(); + setDataSource(fd, 0, 0x7ffffffffffffffL); + } catch (FileNotFoundException fileEx) { + throw new IllegalArgumentException(); + } catch (IOException ioEx) { + throw new IllegalArgumentException(); + } + + try { + if (is != null) { + is.close(); + } + } catch (Exception e) {} + } /** * Sets the data source (URI) to use. Call this diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp index 0dc3b65f7137..297dadfe3dd4 100644 --- a/media/jni/android_media_MediaMetadataRetriever.cpp +++ b/media/jni/android_media_MediaMetadataRetriever.cpp @@ -131,13 +131,6 @@ android_media_MediaMetadataRetriever_setDataSourceAndHeaders( "setDataSource failed"); } - -static void android_media_MediaMetadataRetriever_setDataSource( - JNIEnv *env, jobject thiz, jstring path) { - android_media_MediaMetadataRetriever_setDataSourceAndHeaders( - env, thiz, path, NULL, NULL); -} - static void android_media_MediaMetadataRetriever_setDataSourceFD(JNIEnv *env, jobject thiz, jobject fileDescriptor, jlong offset, jlong length) { ALOGV("setDataSource"); @@ -447,8 +440,6 @@ static void android_media_MediaMetadataRetriever_native_setup(JNIEnv *env, jobje // JNI mapping between Java methods and native methods static JNINativeMethod nativeMethods[] = { - {"setDataSource", "(Ljava/lang/String;)V", (void *)android_media_MediaMetadataRetriever_setDataSource}, - { "_setDataSource", "(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V", |