diff options
author | Elliott Hughes <enh@google.com> | 2014-06-12 00:15:39 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-06-12 00:15:39 +0000 |
commit | 7903bb2b3065d58cc75637900922b434f50024d9 (patch) | |
tree | 33e825d96a3c1ca8a7778d50068e738d0cfa7272 /media/libstagefright | |
parent | 14c403fbab456a4a63586a767fbae498f5f8c260 (diff) | |
parent | 2a8270e6944fb3addfcba87f6885aaad196b8b88 (diff) | |
download | frameworks_av-7903bb2b3065d58cc75637900922b434f50024d9.zip frameworks_av-7903bb2b3065d58cc75637900922b434f50024d9.tar.gz frameworks_av-7903bb2b3065d58cc75637900922b434f50024d9.tar.bz2 |
am 2a8270e6: am c323737d: Merge "Offer a type-safe album art interface."
* commit '2a8270e6944fb3addfcba87f6885aaad196b8b88':
Offer a type-safe album art interface.
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 10 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 12 |
2 files changed, 5 insertions, 17 deletions
diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index fe20835..4449d57 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -203,7 +203,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); @@ -215,15 +215,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(); } } diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 9475d05..af96225 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -378,10 +378,7 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime( size_t dataSize; if (fileMeta->findData(kKeyAlbumArt, &type, &data, &dataSize) && mAlbumArt == NULL) { - mAlbumArt = new MediaAlbumArt; - mAlbumArt->mSize = dataSize; - mAlbumArt->mData = new uint8_t[dataSize]; - memcpy(mAlbumArt->mData, data, dataSize); + mAlbumArt = MediaAlbumArt::fromData(dataSize, data); } VideoFrame *frame = @@ -414,7 +411,7 @@ MediaAlbumArt *StagefrightMetadataRetriever::extractAlbumArt() { } if (mAlbumArt) { - return new MediaAlbumArt(*mAlbumArt); + return mAlbumArt->clone(); } return NULL; @@ -483,10 +480,7 @@ void StagefrightMetadataRetriever::parseMetaData() { size_t dataSize; if (meta->findData(kKeyAlbumArt, &type, &data, &dataSize) && mAlbumArt == NULL) { - mAlbumArt = new MediaAlbumArt; - mAlbumArt->mSize = dataSize; - mAlbumArt->mData = new uint8_t[dataSize]; - memcpy(mAlbumArt->mData, data, dataSize); + mAlbumArt = MediaAlbumArt::fromData(dataSize, data); } size_t numTracks = mExtractor->countTracks(); |