summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/AMRWriter.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2010-11-16 14:04:54 -0800
committerJames Dong <jdong@google.com>2010-11-18 14:12:24 -0800
commitc7fc37a3dab9bd1f96713649f351b5990e6316ff (patch)
treebd8cb4ea7521967152650311b485d2d0e6b3bcf2 /media/libstagefright/AMRWriter.cpp
parent17468ee8dbfe5eb0b9a4f72be80cbb92a5134800 (diff)
downloadframeworks_av-c7fc37a3dab9bd1f96713649f351b5990e6316ff.zip
frameworks_av-c7fc37a3dab9bd1f96713649f351b5990e6316ff.tar.gz
frameworks_av-c7fc37a3dab9bd1f96713649f351b5990e6316ff.tar.bz2
64-bit file size/offset support for media framework
Change-Id: I3452bc2c0f1d990cc67285df2fce1f9f86ff8e10
Diffstat (limited to 'media/libstagefright/AMRWriter.cpp')
-rw-r--r--media/libstagefright/AMRWriter.cpp12
1 files changed, 6 insertions, 6 deletions
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 @@ namespace android {
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(const char *filename)
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 @@ status_t AMRWriter::addSource(const sp<MediaSource> &source) {
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 @@ status_t AMRWriter::threadFunc() {
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();