summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/StagefrightRecorder.cpp
diff options
context:
space:
mode:
authorPraveen Chavan <pchavan@codeaurora.org>2015-03-16 09:32:29 -0700
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:22 -0600
commit6a399a153e98d86a58cd09c4e2ac9ce3e7a7dfbc (patch)
tree25f740f03214239f381b8fa700530ec5deb233ec /media/libmediaplayerservice/StagefrightRecorder.cpp
parentb47468e6057942ee9ae5cee1e2b02e2d30cbe30a (diff)
downloadframeworks_av-6a399a153e98d86a58cd09c4e2ac9ce3e7a7dfbc.zip
frameworks_av-6a399a153e98d86a58cd09c4e2ac9ce3e7a7dfbc.tar.gz
frameworks_av-6a399a153e98d86a58cd09c4e2ac9ce3e7a7dfbc.tar.bz2
StagefrightRecorder: force 64-bit file-offsets for files > 4GB
Enable recording files larger than 4GB by forcing 64-bit file-offsets in the writer, if application indicates max-file-size greater than 4GB. Change-Id: Id1af5bdf3543af156e6d3d80be2e00c7df3b4134 CRs-Fixed: 807377
Diffstat (limited to 'media/libmediaplayerservice/StagefrightRecorder.cpp')
-rw-r--r--media/libmediaplayerservice/StagefrightRecorder.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 9e7879a..872292b 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -59,6 +59,8 @@
namespace android {
+static const int64_t kMax32BitFileSize = 0x00ffffffffLL; // 4GB
+
// To collect the encoder usage for the battery app
static void addBatteryData(uint32_t params) {
sp<IBinder> binder =
@@ -453,6 +455,10 @@ status_t StagefrightRecorder::setParamMaxFileSizeBytes(int64_t bytes) {
}
mMaxFileSizeBytes = bytes;
+
+ // If requested size is >4GB, force 64-bit offsets
+ mUse64BitFileOffset |= (bytes >= kMax32BitFileSize);
+
return OK;
}