Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 288fb7e5 authored by Marco Nelissen's avatar Marco Nelissen
Browse files

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

Change-Id: Iba1152013b7577168af71f947d7249560419fa05
parent 91dcf151
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@ enum {
    METADATA_KEY_MIMETYPE        = 22,
    METADATA_KEY_DISC_NUMBER     = 23,
    METADATA_KEY_ALBUMARTIST     = 24,
    METADATA_KEY_COMPILATION     = 25,
    // Add more here...
};

+1 −0
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ enum {
    kKeyDiscNumber        = 'dnum',  // cstring
    kKeyDate              = 'date',  // cstring
    kKeyWriter            = 'writ',  // cstring
    kKeyCompilation       = 'cpil',  // cstring
    kKeyTimeScale         = 'tmsl',  // int32_t

    // video profile and level
+1 −0
Original line number Diff line number Diff line
@@ -743,6 +743,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]);

+11 −0
Original line number Diff line number Diff line
@@ -1176,6 +1176,17 @@ status_t MPEG4Extractor::parseMetaData(off_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) {
+3 −0
Original line number Diff line number Diff line
@@ -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 },
Loading