diff options
-rw-r--r-- | include/media/stagefright/MetaData.h | 3 | ||||
-rw-r--r-- | media/libstagefright/MP3Extractor.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 13 |
3 files changed, 17 insertions, 3 deletions
diff --git a/include/media/stagefright/MetaData.h b/include/media/stagefright/MetaData.h index ef30b02..2bc2734 100644 --- a/include/media/stagefright/MetaData.h +++ b/include/media/stagefright/MetaData.h @@ -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 { diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp index 5df1e00..48130fc 100644 --- a/media/libstagefright/MP3Extractor.cpp +++ b/media/libstagefright/MP3Extractor.cpp @@ -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]); diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index be4a9d9..4cc56e3 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -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)); |