diff options
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/Android.mk | 9 | ||||
-rw-r--r-- | media/libstagefright/MP3Extractor.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMediaScanner.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/StagefrightMetadataRetriever.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/id3/ID3.cpp | 22 |
5 files changed, 32 insertions, 2 deletions
diff --git a/media/libstagefright/Android.mk b/media/libstagefright/Android.mk index b25ce67..58eb12e 100644 --- a/media/libstagefright/Android.mk +++ b/media/libstagefright/Android.mk @@ -48,8 +48,15 @@ endif LOCAL_C_INCLUDES:= \ $(JNI_H_INCLUDE) \ $(TOP)/external/opencore/extern_libs_v2/khronos/openmax/include \ - $(TOP)/external/opencore/android \ + $(TOP)/external/opencore/android + +ifeq ($(TARGET_ARCH),arm) + LOCAL_C_INCLUDES += \ + $(TOP)/external/tremolo/Tremolo +else + LOCAL_C_INCLUDES += \ $(TOP)/external/tremor/Tremor +endif LOCAL_SHARED_LIBRARIES := \ libbinder \ diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp index accd94d..79b7674 100644 --- a/media/libstagefright/MP3Extractor.cpp +++ b/media/libstagefright/MP3Extractor.cpp @@ -737,6 +737,7 @@ sp<MetaData> MP3Extractor::getMetaData() { { kKeyYear, "TYE", "TYER" }, { kKeyAuthor, "TXT", "TEXT" }, { kKeyCDTrackNumber, "TRK", "TRCK" }, + { kKeyDiscNumber, "TPA", "TPOS" }, }; static const size_t kNumMapEntries = sizeof(kMap) / sizeof(kMap[0]); diff --git a/media/libstagefright/StagefrightMediaScanner.cpp b/media/libstagefright/StagefrightMediaScanner.cpp index 3451383..22f701c 100644 --- a/media/libstagefright/StagefrightMediaScanner.cpp +++ b/media/libstagefright/StagefrightMediaScanner.cpp @@ -191,6 +191,7 @@ status_t StagefrightMediaScanner::processFile( }; static const KeyMap kKeyMap[] = { { "tracknumber", METADATA_KEY_CD_TRACK_NUMBER }, + { "discnumber", METADATA_KEY_DISC_NUMBER }, { "album", METADATA_KEY_ALBUM }, { "artist", METADATA_KEY_ARTIST }, { "composer", METADATA_KEY_COMPOSER }, diff --git a/media/libstagefright/StagefrightMetadataRetriever.cpp b/media/libstagefright/StagefrightMetadataRetriever.cpp index dfba74f..f617fe8 100644 --- a/media/libstagefright/StagefrightMetadataRetriever.cpp +++ b/media/libstagefright/StagefrightMetadataRetriever.cpp @@ -305,6 +305,7 @@ void StagefrightMetadataRetriever::parseMetaData() { static const Map kMap[] = { { kKeyMIMEType, METADATA_KEY_MIMETYPE }, { kKeyCDTrackNumber, METADATA_KEY_CD_TRACK_NUMBER }, + { kKeyDiscNumber, METADATA_KEY_DISC_NUMBER }, { kKeyAlbum, METADATA_KEY_ALBUM }, { kKeyArtist, METADATA_KEY_ARTIST }, { kKeyAuthor, METADATA_KEY_AUTHOR }, diff --git a/media/libstagefright/id3/ID3.cpp b/media/libstagefright/id3/ID3.cpp index 6d64717..65a4ae4 100644 --- a/media/libstagefright/id3/ID3.cpp +++ b/media/libstagefright/id3/ID3.cpp @@ -24,6 +24,7 @@ #include <media/stagefright/MediaDebug.h> #include <media/stagefright/Utils.h> #include <utils/String8.h> +#include <sys/endian.h> namespace android { @@ -336,7 +337,26 @@ void ID3::Iterator::getString(String8 *id) const { } else { // UCS-2 // API wants number of characters, not number of bytes... - id->setTo((const char16_t *)(mFrameData + 1), n / 2); + int len = n / 2; + const char16_t *framedata = (const char16_t *) (mFrameData + 1); + char16_t *framedatacopy = NULL; + if (*framedata == 0xfffe) { + // endianness marker doesn't match host endianness, convert + framedatacopy = new char16_t[len]; + for (int i = 0; i < len; i++) { + framedatacopy[i] = swap16(framedata[i]); + } + framedata = framedatacopy; + } + // If the string starts with an endianness marker, skip it + if (*framedata == 0xfeff) { + framedata++; + len--; + } + id->setTo(framedata, len); + if (framedatacopy != NULL) { + delete[] framedatacopy; + } } } |