summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-06-12 00:06:20 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-06-12 00:06:20 +0000
commitb952587184572070805243e6f8380ceb769f441c (patch)
tree88ee4a6b4bbf03d271d83a80479b043e4f9deb87 /media
parentf5030ecbca4f8dc217204d96d3f0a3511acf49ac (diff)
parent8525fe8d0a5a886704307055ef211fc911997783 (diff)
downloadframeworks_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.cpp13
-rw-r--r--media/jni/android_media_MediaScanner.cpp11
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: