summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/FileSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-04-11 10:34:01 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-11 10:34:01 -0700
commitb3eb2b7e0ad11bc03344e10cc5204bdb71f0686e (patch)
tree9cf8184d199a7a2279268009e0e6d59d4966200b /media/libstagefright/FileSource.cpp
parent2d531e1b5865d61d5ca25d77d53017b1ad180efa (diff)
parent4ee31e2603b4019e4ae76e027115f80b818527aa (diff)
downloadframeworks_av-b3eb2b7e0ad11bc03344e10cc5204bdb71f0686e.zip
frameworks_av-b3eb2b7e0ad11bc03344e10cc5204bdb71f0686e.tar.gz
frameworks_av-b3eb2b7e0ad11bc03344e10cc5204bdb71f0686e.tar.bz2
Merge "Cache the file size in favour of extraneous seek requests."
Diffstat (limited to 'media/libstagefright/FileSource.cpp')
-rw-r--r--media/libstagefright/FileSource.cpp12
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;
}