summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/StagefrightMetadataRetriever.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2011-05-25 15:02:50 -0700
committerJames Dong <jdong@google.com>2011-05-26 11:31:16 -0700
commit515e855eae78aa495da58356486aaa666cb57fd1 (patch)
tree904870c8a34af1239be1118e10f0da1d9540261d /media/libstagefright/StagefrightMetadataRetriever.cpp
parent8d91237333c60c4a6839358109265e8847df23f3 (diff)
downloadframeworks_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.cpp14
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];