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

Commit 3a3656ce authored by Andreas Huber's avatar Andreas Huber
Browse files

More metadata support.

parent a77f93f7
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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 {
+3 −1
Original line number Diff line number Diff line
@@ -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]);

+11 −2
Original line number Diff line number Diff line
@@ -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));