diff options
author | James Dong <jdong@google.com> | 2011-05-25 15:02:50 -0700 |
---|---|---|
committer | James Dong <jdong@google.com> | 2011-05-26 11:31:16 -0700 |
commit | 515e855eae78aa495da58356486aaa666cb57fd1 (patch) | |
tree | 904870c8a34af1239be1118e10f0da1d9540261d /media/libstagefright/StagefrightMetadataRetriever.cpp | |
parent | 8d91237333c60c4a6839358109265e8847df23f3 (diff) | |
download | frameworks_av-515e855eae78aa495da58356486aaa666cb57fd1.zip frameworks_av-515e855eae78aa495da58356486aaa666cb57fd1.tar.gz frameworks_av-515e855eae78aa495da58356486aaa666cb57fd1.tar.bz2 |
Extract embedded cover art (aka poster frame) in mp4 files
Change-Id: Ic9421ee27b9aa3b27df00878b887de20f25d232b
Diffstat (limited to 'media/libstagefright/StagefrightMetadataRetriever.cpp')
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 4c3dc47..de3957b 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -317,6 +317,17 @@ VideoFrame *StagefrightMetadataRetriever::getFrameAtTime( return NULL; } + const void *data; + uint32_t type; + size_t dataSize; + if (mExtractor->getMetaData()->findData(kKeyAlbumArt, &type, &data, &dataSize) + && mAlbumArt == NULL) { + mAlbumArt = new MediaAlbumArt; + mAlbumArt->mSize = dataSize; + mAlbumArt->mData = new uint8_t[dataSize]; + memcpy(mAlbumArt->mData, data, dataSize); + } + VideoFrame *frame = extractVideoFrameWithCodecFlags( &mClient, trackMeta, source, OMXCodec::kPreferSoftwareCodecs, @@ -408,7 +419,8 @@ void StagefrightMetadataRetriever::parseMetaData() { const void *data; uint32_t type; size_t dataSize; - if (meta->findData(kKeyAlbumArt, &type, &data, &dataSize)) { + if (meta->findData(kKeyAlbumArt, &type, &data, &dataSize) + && mAlbumArt == NULL) { mAlbumArt = new MediaAlbumArt; mAlbumArt->mSize = dataSize; mAlbumArt->mData = new uint8_t[dataSize]; |