diff options
author | Elliott Hughes <enh@google.com> | 2014-06-10 16:55:38 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2014-06-11 14:45:27 -0700 |
commit | f3e80dddd7376aa9deeb27de25e1d50030a2ad98 (patch) | |
tree | a3ebf2e96fa0bb9b0375281692adf48333bca468 /media/libstagefright/StagefrightMediaScanner.cpp | |
parent | d3af4265dca4c8ebcead5376f1c73a5dafc34778 (diff) | |
download | frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.zip frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.tar.gz frameworks_av-f3e80dddd7376aa9deeb27de25e1d50030a2ad98.tar.bz2 |
Offer a type-safe album art interface.
Bug: 15514223
Change-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95
Diffstat (limited to 'media/libstagefright/StagefrightMediaScanner.cpp')
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index 2b51a29..f3fc3f6 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -202,7 +202,7 @@ MediaScanResult StagefrightMediaScanner::processFileInternal( return MEDIA_SCAN_RESULT_OK; } -char *StagefrightMediaScanner::extractAlbumArt(int fd) { +MediaAlbumArt *StagefrightMediaScanner::extractAlbumArt(int fd) { ALOGV("extractAlbumArt %d", fd); off64_t size = lseek64(fd, 0, SEEK_END); @@ -214,15 +214,9 @@ char *StagefrightMediaScanner::extractAlbumArt(int fd) { sp<MediaMetadataRetriever> mRetriever(new MediaMetadataRetriever); if (mRetriever->setDataSource(fd, 0, size) == OK) { sp<IMemory> mem = mRetriever->extractAlbumArt(); - if (mem != NULL) { MediaAlbumArt *art = static_cast<MediaAlbumArt *>(mem->pointer()); - - char *data = (char *)malloc(art->mSize + 4); - *(int32_t *)data = art->mSize; - memcpy(&data[4], &art[1], art->mSize); - - return data; + return art->clone(); } } |