diff options
author | Andreas Huber <andih@google.com> | 2012-04-11 09:22:52 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-04-11 09:22:52 -0700 |
commit | 4ee31e2603b4019e4ae76e027115f80b818527aa (patch) | |
tree | de19fad362c2250b08249c9dcb73a0bfad2d27c3 | |
parent | d2469c3fe382203eb7cd5060c94ed204bec98116 (diff) | |
download | frameworks_av-4ee31e2603b4019e4ae76e027115f80b818527aa.zip frameworks_av-4ee31e2603b4019e4ae76e027115f80b818527aa.tar.gz frameworks_av-4ee31e2603b4019e4ae76e027115f80b818527aa.tar.bz2 |
Cache the file size in favour of extraneous seek requests.
Change-Id: Ia922b13179c69749d09cd3fccbd5c30109c28bd7
related-to-bug: 6321952
-rw-r--r-- | media/libstagefright/FileSource.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/media/libstagefright/FileSource.cpp b/media/libstagefright/FileSource.cpp index 73c8d03..07ec265 100644 --- a/media/libstagefright/FileSource.cpp +++ b/media/libstagefright/FileSource.cpp @@ -35,6 +35,10 @@ FileSource::FileSource(const char *filename) mDrmBuf(NULL){ mFd = open(filename, O_LARGEFILE | O_RDONLY); + + if (mFd >= 0) { + mLength = lseek64(mFd, 0, SEEK_END); + } } FileSource::FileSource(int fd, int64_t offset, int64_t length) @@ -116,13 +120,7 @@ status_t FileSource::getSize(off64_t *size) { return NO_INIT; } - if (mLength >= 0) { - *size = mLength; - - return OK; - } - - *size = lseek64(mFd, 0, SEEK_END); + *size = mLength; return OK; } |