summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/FileSource.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-04-11 09:22:52 -0700
committerAndreas Huber <andih@google.com>2012-04-11 09:22:52 -0700
commit4ee31e2603b4019e4ae76e027115f80b818527aa (patch)
treede19fad362c2250b08249c9dcb73a0bfad2d27c3 /media/libstagefright/FileSource.cpp
parentd2469c3fe382203eb7cd5060c94ed204bec98116 (diff)
downloadframeworks_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
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;
}