diff options
author | James Dong <jdong@google.com> | 2010-11-16 14:04:54 -0800 |
---|---|---|
committer | James Dong <jdong@google.com> | 2010-11-18 14:12:24 -0800 |
commit | c7fc37a3dab9bd1f96713649f351b5990e6316ff (patch) | |
tree | bd8cb4ea7521967152650311b485d2d0e6b3bcf2 /media/libstagefright/AMRWriter.cpp | |
parent | 17468ee8dbfe5eb0b9a4f72be80cbb92a5134800 (diff) | |
download | frameworks_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.cpp | 12 |
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(); |