summaryrefslogtreecommitdiffstats
path: root/media/libstagefright
diff options
context:
space:
mode:
authorRachad <rachad@google.com>2014-03-21 17:08:50 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-03-21 17:08:50 +0000
commit5ce204a6362840fe28aa762693edaab3d0da8718 (patch)
tree4cb3aaf62d5b5842be911f223bd51ebc1014b540 /media/libstagefright
parent762f533c825040ae0d953783584f778ec187fec5 (diff)
parentf622e2c78407b50806a53a06a89b2b6546420f55 (diff)
downloadframeworks_av-5ce204a6362840fe28aa762693edaab3d0da8718.zip
frameworks_av-5ce204a6362840fe28aa762693edaab3d0da8718.tar.gz
frameworks_av-5ce204a6362840fe28aa762693edaab3d0da8718.tar.bz2
am f622e2c7: Increased recorded MP4 max file size to 4GB (more precisely 2^32-1 bytes -- FAT32 max file size)
* commit 'f622e2c78407b50806a53a06a89b2b6546420f55': Increased recorded MP4 max file size to 4GB (more precisely 2^32-1 bytes -- FAT32 max file size)
Diffstat (limited to 'media/libstagefright')
-rw-r--r--media/libstagefright/MPEG4Writer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp
index e7d3cc2..2f1f449 100644
--- a/media/libstagefright/MPEG4Writer.cpp
+++ b/media/libstagefright/MPEG4Writer.cpp
@@ -44,7 +44,9 @@
namespace android {
static const int64_t kMinStreamableFileSizeInBytes = 5 * 1024 * 1024;
-static const int64_t kMax32BitFileSize = 0x007fffffffLL;
+static const int64_t kMax32BitFileSize = 0x00ffffffffLL; // 2^32-1 : max FAT32
+ // filesystem file size
+ // used by most SD cards
static const uint8_t kNalUnitTypeSeqParamSet = 0x07;
static const uint8_t kNalUnitTypePicParamSet = 0x08;
static const int64_t kInitialDelayTimeUs = 700000LL;
@@ -861,11 +863,11 @@ status_t MPEG4Writer::reset() {
// Fix up the size of the 'mdat' chunk.
if (mUse32BitOffset) {
lseek64(mFd, mMdatOffset, SEEK_SET);
- int32_t size = htonl(static_cast<int32_t>(mOffset - mMdatOffset));
+ uint32_t size = htonl(static_cast<uint32_t>(mOffset - mMdatOffset));
::write(mFd, &size, 4);
} else {
lseek64(mFd, mMdatOffset + 8, SEEK_SET);
- int64_t size = mOffset - mMdatOffset;
+ uint64_t size = mOffset - mMdatOffset;
size = hton64(size);
::write(mFd, &size, 8);
}