diff options
author | Marco Nelissen <marcone@google.com> | 2014-01-17 20:11:42 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-01-17 20:11:42 +0000 |
commit | 9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec (patch) | |
tree | 49864dc7455fbd99a3ff468180742a046bbf697f /media/libstagefright/id3/ID3.cpp | |
parent | 8b567a219c3c7673d0b17e2a4da7e9ac4e984c3c (diff) | |
parent | 6146f60c87a8a9c66036325c66dea826d2e98f6f (diff) | |
download | frameworks_av-9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec.zip frameworks_av-9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec.tar.gz frameworks_av-9c1aaa7fee4b17d3675af6108c5ff28f3a84c8ec.tar.bz2 |
am 6146f60c: am 319c5640: am 07a017d3: Merge "Added support for ID3v2 meta data in 3gp files"
* commit '6146f60c87a8a9c66036325c66dea826d2e98f6f':
Added support for ID3v2 meta data in 3gp files
Diffstat (limited to 'media/libstagefright/id3/ID3.cpp')
-rw-r--r-- | media/libstagefright/id3/ID3.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/media/libstagefright/id3/ID3.cpp b/media/libstagefright/id3/ID3.cpp index a486522..f0f203c 100644 --- a/media/libstagefright/id3/ID3.cpp +++ b/media/libstagefright/id3/ID3.cpp @@ -56,14 +56,14 @@ private: DISALLOW_EVIL_CONSTRUCTORS(MemorySource); }; -ID3::ID3(const sp<DataSource> &source, bool ignoreV1) +ID3::ID3(const sp<DataSource> &source, bool ignoreV1, off64_t offset) : mIsValid(false), mData(NULL), mSize(0), mFirstFrameOffset(0), mVersion(ID3_UNKNOWN), mRawSize(0) { - mIsValid = parseV2(source); + mIsValid = parseV2(source, offset); if (!mIsValid && !ignoreV1) { mIsValid = parseV1(source); @@ -79,7 +79,7 @@ ID3::ID3(const uint8_t *data, size_t size, bool ignoreV1) mRawSize(0) { sp<MemorySource> source = new MemorySource(data, size); - mIsValid = parseV2(source); + mIsValid = parseV2(source, 0); if (!mIsValid && !ignoreV1) { mIsValid = parseV1(source); @@ -115,7 +115,7 @@ bool ID3::ParseSyncsafeInteger(const uint8_t encoded[4], size_t *x) { return true; } -bool ID3::parseV2(const sp<DataSource> &source) { +bool ID3::parseV2(const sp<DataSource> &source, off64_t offset) { struct id3_header { char id[3]; uint8_t version_major; @@ -126,7 +126,7 @@ struct id3_header { id3_header header; if (source->readAt( - 0, &header, sizeof(header)) != (ssize_t)sizeof(header)) { + offset, &header, sizeof(header)) != (ssize_t)sizeof(header)) { return false; } @@ -185,7 +185,7 @@ struct id3_header { mSize = size; mRawSize = mSize + sizeof(header); - if (source->readAt(sizeof(header), mData, mSize) != (ssize_t)mSize) { + if (source->readAt(offset + sizeof(header), mData, mSize) != (ssize_t)mSize) { free(mData); mData = NULL; |