From 4ee31e2603b4019e4ae76e027115f80b818527aa Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Wed, 11 Apr 2012 09:22:52 -0700 Subject: Cache the file size in favour of extraneous seek requests. Change-Id: Ia922b13179c69749d09cd3fccbd5c30109c28bd7 related-to-bug: 6321952 --- media/libstagefright/FileSource.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) (limited to 'media/libstagefright/FileSource.cpp') 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; } -- cgit v1.1