diff options
author | Elliott Hughes <enh@google.com> | 2014-06-12 00:06:20 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-06-12 00:06:20 +0000 |
commit | b952587184572070805243e6f8380ceb769f441c (patch) | |
tree | 88ee4a6b4bbf03d271d83a80479b043e4f9deb87 /media | |
parent | f5030ecbca4f8dc217204d96d3f0a3511acf49ac (diff) | |
parent | 8525fe8d0a5a886704307055ef211fc911997783 (diff) | |
download | frameworks_base-b952587184572070805243e6f8380ceb769f441c.zip frameworks_base-b952587184572070805243e6f8380ceb769f441c.tar.gz frameworks_base-b952587184572070805243e6f8380ceb769f441c.tar.bz2 |
am 8525fe8d: am 1a3908e9: Merge "Switch to a type-safe album art interface."
* commit '8525fe8d0a5a886704307055ef211fc911997783':
Switch to a type-safe album art interface.
Diffstat (limited to 'media')
-rw-r--r-- | media/jni/android_media_MediaMetadataRetriever.cpp | 13 | ||||
-rw-r--r-- | media/jni/android_media_MediaScanner.cpp | 11 |
2 files changed, 10 insertions, 14 deletions
diff --git a/media/jni/android_media_MediaMetadataRetriever.cpp b/media/jni/android_media_MediaMetadataRetriever.cpp index c2694f1..0e34789 100644 --- a/media/jni/android_media_MediaMetadataRetriever.cpp +++ b/media/jni/android_media_MediaMetadataRetriever.cpp @@ -23,6 +23,7 @@ #include <utils/threads.h> #include <core/SkBitmap.h> #include <media/mediametadataretriever.h> +#include <media/mediascanner.h> #include <private/media/VideoFrame.h> #include "jni.h" @@ -326,17 +327,13 @@ static jbyteArray android_media_MediaMetadataRetriever_getEmbeddedPicture( return NULL; } - unsigned int len = mediaAlbumArt->mSize; - char* data = (char*) mediaAlbumArt + sizeof(MediaAlbumArt); - jbyteArray array = env->NewByteArray(len); + jbyteArray array = env->NewByteArray(mediaAlbumArt->size()); if (!array) { // OutOfMemoryError exception has already been thrown. ALOGE("getEmbeddedPicture: OutOfMemoryError is thrown."); } else { - jbyte* bytes = env->GetByteArrayElements(array, NULL); - if (bytes != NULL) { - memcpy(bytes, data, len); - env->ReleaseByteArrayElements(array, bytes, 0); - } + const jbyte* data = + reinterpret_cast<const jbyte*>(mediaAlbumArt->data()); + env->SetByteArrayRegion(array, 0, mediaAlbumArt->size(), data); } // No need to delete mediaAlbumArt here diff --git a/media/jni/android_media_MediaScanner.cpp b/media/jni/android_media_MediaScanner.cpp index b520440..321c2e3 100644 --- a/media/jni/android_media_MediaScanner.cpp +++ b/media/jni/android_media_MediaScanner.cpp @@ -348,17 +348,16 @@ android_media_MediaScanner_extractAlbumArt( } int fd = jniGetFDFromFileDescriptor(env, fileDescriptor); - MediaAlbumArt* mediaAlbumArt = - reinterpret_cast<MediaAlbumArt*>(mp->extractAlbumArt(fd)); + MediaAlbumArt* mediaAlbumArt = mp->extractAlbumArt(fd); if (mediaAlbumArt == NULL) { return NULL; } - jbyteArray array = env->NewByteArray(mediaAlbumArt->mSize); + jbyteArray array = env->NewByteArray(mediaAlbumArt->size()); if (array != NULL) { - jbyte* bytes = env->GetByteArrayElements(array, NULL); - memcpy(bytes, &mediaAlbumArt->mData[0], mediaAlbumArt->mSize); - env->ReleaseByteArrayElements(array, bytes, 0); + const jbyte* data = + reinterpret_cast<const jbyte*>(mediaAlbumArt->data()); + env->SetByteArrayRegion(array, 0, mediaAlbumArt->size(), data); } done: |