diff options
author | Marco Nelissen <marcone@google.com> | 2011-01-06 11:12:17 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2011-01-07 12:42:07 -0800 |
commit | 11f8109ad8646d3acd9a0987613229cde59d52c1 (patch) | |
tree | 71db4bd4e70e89995712b0fa45ac4f5e7a2ad0da /media | |
parent | 20ad3a341a96e7746015ccb7369fa567897e11f6 (diff) | |
download | frameworks_av-11f8109ad8646d3acd9a0987613229cde59d52c1.zip frameworks_av-11f8109ad8646d3acd9a0987613229cde59d52c1.tar.gz frameworks_av-11f8109ad8646d3acd9a0987613229cde59d52c1.tar.bz2 |
Add support for the "compilation" tag in mp3, mp4 and ogg, and also add
support for two common ways of specifying album artist in ogg files.
b/3311831
(cherry-picked from GB because of weird automerger failure)
Change-Id: Ibf12a3d6bc8bbc2ac5ea815de6b33414b8f53f0f
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/MP3Extractor.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 11 | ||||
-rw-r--r-- | media/libstagefright/OggExtractor.cpp | 3 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 1 |
5 files changed, 17 insertions, 0 deletions
diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp index 9610f90..0bb3a86 100644 --- a/media/libstagefright/MP3Extractor.cpp +++ b/media/libstagefright/MP3Extractor.cpp @@ -614,6 +614,7 @@ sp<MetaData> MP3Extractor::getMetaData() { { kKeyAuthor, "TXT", "TEXT" }, { kKeyCDTrackNumber, "TRK", "TRCK" }, { kKeyDiscNumber, "TPA", "TPOS" }, + { kKeyCompilation, "TCP", "TCMP" }, }; static const size_t kNumMapEntries = sizeof(kMap) / sizeof(kMap[0]); diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index dfc9b5a..bafa243 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -1392,6 +1392,17 @@ status_t MPEG4Extractor::parseMetaData(off64_t offset, size_t size) { metadataKey = kKeyGenre; break; } + case FOURCC('c', 'p', 'i', 'l'): + { + if (size == 9 && flags == 21) { + char tmp[16]; + sprintf(tmp, "%d", + (int)buffer[size - 1]); + + mFileMetaData->setCString(kKeyCompilation, tmp); + } + break; + } case FOURCC('t', 'r', 'k', 'n'): { if (size == 16 && flags == 0) { diff --git a/media/libstagefright/OggExtractor.cpp b/media/libstagefright/OggExtractor.cpp index 4b8a014..cf622af 100644 --- a/media/libstagefright/OggExtractor.cpp +++ b/media/libstagefright/OggExtractor.cpp @@ -660,6 +660,9 @@ void MyVorbisExtractor::parseFileMetaData() { } kMap[] = { { "TITLE", kKeyTitle }, { "ARTIST", kKeyArtist }, + { "ALBUMARTIST", kKeyAlbumArtist }, + { "ALBUM ARTIST", kKeyAlbumArtist }, + { "COMPILATION", kKeyCompilation }, { "ALBUM", kKeyAlbum }, { "COMPOSER", kKeyComposer }, { "GENRE", kKeyGenre }, diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index 86e0e73..5d15246 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -156,6 +156,7 @@ status_t StagefrightMediaScanner::processFile( { "year", METADATA_KEY_YEAR }, { "duration", METADATA_KEY_DURATION }, { "writer", METADATA_KEY_WRITER }, + { "compilation", METADATA_KEY_COMPILATION }, }; static const size_t kNumEntries = sizeof(kKeyMap) / sizeof(kKeyMap[0]); diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 8cd2998..4f483ac 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -394,6 +394,7 @@ void StagefrightMetadataRetriever::parseMetaData() { { kKeyTitle, METADATA_KEY_TITLE }, { kKeyYear, METADATA_KEY_YEAR }, { kKeyWriter, METADATA_KEY_WRITER }, + { kKeyCompilation, METADATA_KEY_COMPILATION }, }; static const size_t kNumMapEntries = sizeof(kMap) / sizeof(kMap[0]); |