diff options
author | Marco Nelissen <marcone@google.com> | 2012-11-29 11:08:16 -0800 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2012-11-29 11:08:16 -0800 |
commit | 031c93df74621dc2149876dc377aedee8930547f (patch) | |
tree | a22dc153f2cb885c07a6ca98beec6c9f9b32a3a8 | |
parent | 251c04b1f3d048f541832c93347c6604b314e0ea (diff) | |
parent | ffd6ffc5429c45577fd8e9f8fa90e79bb91b8a84 (diff) | |
download | frameworks_av-031c93df74621dc2149876dc377aedee8930547f.zip frameworks_av-031c93df74621dc2149876dc377aedee8930547f.tar.gz frameworks_av-031c93df74621dc2149876dc377aedee8930547f.tar.bz2 |
Merge "Bug fix for the MediaPlayer::prepare() api."
-rw-r--r-- | media/libstagefright/MP3Extractor.cpp | 6 | ||||
-rw-r--r-- | media/libstagefright/id3/ID3.cpp | 4 | ||||
-rw-r--r-- | media/libstagefright/include/ID3.h | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/media/libstagefright/MP3Extractor.cpp b/media/libstagefright/MP3Extractor.cpp index d94054b..380dab4 100644 --- a/media/libstagefright/MP3Extractor.cpp +++ b/media/libstagefright/MP3Extractor.cpp @@ -350,8 +350,10 @@ MP3Extractor::MP3Extractor( mInitCheck = OK; - // get iTunes-style gapless info if present - ID3 id3(mDataSource); + // Get iTunes-style gapless info if present. + // When getting the id3 tag, skip the V1 tags to prevent the source cache + // from being iterated to the end of the file. + ID3 id3(mDataSource, true); if (id3.isValid()) { ID3::Iterator *com = new ID3::Iterator(id3, "COM"); if (com->done()) { diff --git a/media/libstagefright/id3/ID3.cpp b/media/libstagefright/id3/ID3.cpp index 69274ca..22c2f5a 100644 --- a/media/libstagefright/id3/ID3.cpp +++ b/media/libstagefright/id3/ID3.cpp @@ -30,7 +30,7 @@ namespace android { static const size_t kMaxMetadataSize = 3 * 1024 * 1024; -ID3::ID3(const sp<DataSource> &source) +ID3::ID3(const sp<DataSource> &source, bool ignoreV1) : mIsValid(false), mData(NULL), mSize(0), @@ -38,7 +38,7 @@ ID3::ID3(const sp<DataSource> &source) mVersion(ID3_UNKNOWN) { mIsValid = parseV2(source); - if (!mIsValid) { + if (!mIsValid && !ignoreV1) { mIsValid = parseV1(source); } } diff --git a/media/libstagefright/include/ID3.h b/media/libstagefright/include/ID3.h index 8714008..3028f56 100644 --- a/media/libstagefright/include/ID3.h +++ b/media/libstagefright/include/ID3.h @@ -35,7 +35,7 @@ struct ID3 { ID3_V2_4, }; - ID3(const sp<DataSource> &source); + ID3(const sp<DataSource> &source, bool ignoreV1 = false); ~ID3(); bool isValid() const; |