64-bit file size/offset support for media framework
Change-Id: I3452bc2c0f1d990cc67285df2fce1f9f86ff8e10
diff --git a/media/libstagefright/AMRWriter.cpp b/media/libstagefright/AMRWriter.cpp
index c0b1abe..ecbd96c 100644
--- a/media/libstagefright/AMRWriter.cpp
+++ b/media/libstagefright/AMRWriter.cpp
@@ -29,6 +29,7 @@
AMRWriter::AMRWriter(const char *filename)
: mFile(fopen(filename, "wb")),
+ mFd(mFile == NULL? -1: fileno(mFile)),
mInitCheck(mFile != NULL ? OK : NO_INIT),
mStarted(false),
mPaused(false),
@@ -37,6 +38,7 @@
AMRWriter::AMRWriter(int fd)
: mFile(fdopen(fd, "wb")),
+ mFd(mFile == NULL? -1: fileno(mFile)),
mInitCheck(mFile != NULL ? OK : NO_INIT),
mStarted(false),
mPaused(false),
@@ -91,7 +93,7 @@
const char *kHeader = isWide ? "#!AMR-WB\n" : "#!AMR\n";
size_t n = strlen(kHeader);
- if (fwrite(kHeader, 1, n, mFile) != n) {
+ if (write(mFd, kHeader, n) != n) {
return ERROR_IO;
}
@@ -240,11 +242,9 @@
notify(MEDIA_RECORDER_EVENT_INFO, MEDIA_RECORDER_INFO_MAX_DURATION_REACHED, 0);
break;
}
- ssize_t n = fwrite(
- (const uint8_t *)buffer->data() + buffer->range_offset(),
- 1,
- buffer->range_length(),
- mFile);
+ ssize_t n = write(mFd,
+ (const uint8_t *)buffer->data() + buffer->range_offset(),
+ buffer->range_length());
if (n < (ssize_t)buffer->range_length()) {
buffer->release();