Merge "More metadata support."

This commit is contained in:
Andreas Huber
2010-01-13 11:28:21 -08:00
committed by Android (Google) Code Review
3 changed files with 17 additions and 3 deletions

View File

@@ -57,6 +57,9 @@ enum {
kKeyYear = 'year', // cstring
kKeyAlbumArt = 'albA', // compressed image data
kKeyAlbumArtMIME = 'alAM', // cstring
kKeyAuthor = 'auth', // cstring
kKeyCDTrackNumber = 'cdtr', // cstring
kKeyDate = 'date', // cstring
};
enum {

View File

@@ -729,8 +729,10 @@ sp<MetaData> MP3Extractor::getMetaData() {
{ kKeyArtist, "TPE1", "TP1" },
{ kKeyComposer, "TCOM", "TCM" },
{ kKeyGenre, "TCON", "TCO" },
{ kKeyTitle, "TALB", "TAL" },
{ kKeyTitle, "TIT2", "TT2" },
{ kKeyYear, "TYE", "TYER" },
{ kKeyAuthor, "TXT", "TEXT" },
{ kKeyCDTrackNumber, "TRK", "TRCK" },
};
static const size_t kNumMapEntries = sizeof(kMap) / sizeof(kMap[0]);

View File

@@ -275,9 +275,12 @@ void StagefrightMetadataRetriever::parseMetaData() {
int to;
};
static const Map kMap[] = {
{ kKeyCDTrackNumber, METADATA_KEY_CD_TRACK_NUMBER },
{ kKeyAlbum, METADATA_KEY_ALBUM },
{ kKeyArtist, METADATA_KEY_ARTIST },
{ kKeyAuthor, METADATA_KEY_AUTHOR },
{ kKeyComposer, METADATA_KEY_COMPOSER },
{ kKeyDate, METADATA_KEY_DATE },
{ kKeyGenre, METADATA_KEY_GENRE },
{ kKeyTitle, METADATA_KEY_TITLE },
{ kKeyYear, METADATA_KEY_YEAR },
@@ -301,9 +304,16 @@ void StagefrightMetadataRetriever::parseMetaData() {
memcpy(mAlbumArt->mData, data, dataSize);
}
size_t numTracks = mExtractor->countTracks();
char tmp[32];
sprintf(tmp, "%d", numTracks);
mMetaData.add(METADATA_KEY_NUM_TRACKS, String8(tmp));
// The overall duration is the duration of the longest track.
int64_t maxDurationUs = 0;
for (size_t i = 0; i < mExtractor->countTracks(); ++i) {
for (size_t i = 0; i < numTracks; ++i) {
sp<MetaData> trackMeta = mExtractor->getTrackMetaData(i);
int64_t durationUs;
@@ -315,7 +325,6 @@ void StagefrightMetadataRetriever::parseMetaData() {
}
// The duration value is a string representing the duration in ms.
char tmp[32];
sprintf(tmp, "%lld", (maxDurationUs + 500) / 1000);
mMetaData.add(METADATA_KEY_DURATION, String8(tmp));