diff --git a/media/libmedia/include/media/mediametadataretriever.h b/media/libmedia/include/media/mediametadataretriever.h index 1e5fa07d38..d29e97da31 100644 --- a/media/libmedia/include/media/mediametadataretriever.h +++ b/media/libmedia/include/media/mediametadataretriever.h @@ -71,6 +71,8 @@ enum { METADATA_KEY_COLOR_STANDARD = 35, METADATA_KEY_COLOR_TRANSFER = 36, METADATA_KEY_COLOR_RANGE = 37, + METADATA_KEY_SAMPLERATE = 38, + METADATA_KEY_BITS_PER_SAMPLE = 39, // Add more here... }; diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index 20aa4def17..84a641fc1a 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -550,6 +550,19 @@ void StagefrightMetadataRetriever::parseMetaData() { if (!trackMeta->findInt32(kKeyBitRate, &audioBitrate)) { audioBitrate = -1; } + + int32_t bitsPerSample = -1; + int32_t sampleRate = -1; + trackMeta->findInt32(kKeyBitsPerSample, &bitsPerSample); + trackMeta->findInt32(kKeySampleRate, &sampleRate); + if (bitsPerSample >= 0) { + sprintf(tmp, "%d", bitsPerSample); + mMetaData.add(METADATA_KEY_BITS_PER_SAMPLE, String8(tmp)); + } + if (sampleRate >= 0) { + sprintf(tmp, "%d", sampleRate); + mMetaData.add(METADATA_KEY_SAMPLERATE, String8(tmp)); + } } else if (!hasVideo && !strncasecmp("video/", mime, 6)) { hasVideo = true;