Loading include/media/stagefright/AMRWriter.h +3 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ struct AMRWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); virtual void stop(); virtual void pause(); virtual status_t stop(); virtual status_t pause(); protected: virtual ~AMRWriter(); Loading @@ -57,7 +57,7 @@ private: int64_t mEstimatedDurationUs; static void *ThreadWrapper(void *); void threadFunc(); status_t threadFunc(); bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); Loading include/media/stagefright/MPEG4Writer.h +2 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,9 @@ public: virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); virtual status_t stop(); virtual status_t pause(); virtual bool reachedEOS(); virtual void stop(); virtual void pause(); void beginBox(const char *fourcc); void writeInt8(int8_t x); Loading include/media/stagefright/MediaWriter.h +3 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,9 @@ struct MediaWriter : public RefBase { virtual status_t addSource(const sp<MediaSource> &source) = 0; virtual bool reachedEOS() = 0; virtual status_t start(MetaData *params = NULL) = 0; virtual void stop() = 0; virtual void pause() = 0; virtual status_t stop() = 0; virtual status_t pause() = 0; virtual void setMaxFileSize(int64_t bytes) { mMaxFileSizeLimitBytes = bytes; } virtual void setMaxFileDuration(int64_t durationUs) { mMaxFileDurationLimitUs = durationUs; } virtual void setListener(const sp<IMediaRecorderClient>& listener) { Loading media/libmediaplayerservice/StagefrightRecorder.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1067,8 +1067,9 @@ status_t StagefrightRecorder::pause() { status_t StagefrightRecorder::stop() { LOGV("stop"); status_t err = OK; if (mWriter != NULL) { mWriter->stop(); err = mWriter->stop(); mWriter.clear(); } Loading @@ -1090,7 +1091,7 @@ status_t StagefrightRecorder::stop() { mOutputFd = -1; } return OK; return err; } status_t StagefrightRecorder::close() { Loading media/libstagefright/AMRWriter.cpp +22 −10 Original line number Diff line number Diff line Loading @@ -136,16 +136,17 @@ status_t AMRWriter::start(MetaData *params) { return OK; } void AMRWriter::pause() { status_t AMRWriter::pause() { if (!mStarted) { return; return OK; } mPaused = true; return OK; } void AMRWriter::stop() { status_t AMRWriter::stop() { if (!mStarted) { return; return OK; } mDone = true; Loading @@ -153,9 +154,17 @@ void AMRWriter::stop() { void *dummy; pthread_join(mThread, &dummy); mSource->stop(); status_t err = (status_t) dummy; { status_t status = mSource->stop(); if (err == OK && (status != OK && status != ERROR_END_OF_STREAM)) { err = status; } } mStarted = false; return err; } bool AMRWriter::exceedsFileSizeLimit() { Loading @@ -174,21 +183,20 @@ bool AMRWriter::exceedsFileDurationLimit() { // static void *AMRWriter::ThreadWrapper(void *me) { static_cast<AMRWriter *>(me)->threadFunc(); return NULL; return (void *) static_cast<AMRWriter *>(me)->threadFunc(); } void AMRWriter::threadFunc() { status_t AMRWriter::threadFunc() { mEstimatedDurationUs = 0; mEstimatedSizeBytes = 0; bool stoppedPrematurely = true; int64_t previousPausedDurationUs = 0; int64_t maxTimestampUs = 0; status_t err = OK; while (!mDone) { MediaBuffer *buffer; status_t err = mSource->read(&buffer); err = mSource->read(&buffer); if (err != OK) { break; Loading Loading @@ -260,6 +268,10 @@ void AMRWriter::threadFunc() { fclose(mFile); mFile = NULL; mReachedEOS = true; if (err == ERROR_END_OF_STREAM) { return OK; } return err; } bool AMRWriter::reachedEOS() { Loading Loading
include/media/stagefright/AMRWriter.h +3 −3 Original line number Diff line number Diff line Loading @@ -37,8 +37,8 @@ struct AMRWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); virtual void stop(); virtual void pause(); virtual status_t stop(); virtual status_t pause(); protected: virtual ~AMRWriter(); Loading @@ -57,7 +57,7 @@ private: int64_t mEstimatedDurationUs; static void *ThreadWrapper(void *); void threadFunc(); status_t threadFunc(); bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); Loading
include/media/stagefright/MPEG4Writer.h +2 −2 Original line number Diff line number Diff line Loading @@ -37,9 +37,9 @@ public: virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); virtual status_t stop(); virtual status_t pause(); virtual bool reachedEOS(); virtual void stop(); virtual void pause(); void beginBox(const char *fourcc); void writeInt8(int8_t x); Loading
include/media/stagefright/MediaWriter.h +3 −2 Original line number Diff line number Diff line Loading @@ -35,8 +35,9 @@ struct MediaWriter : public RefBase { virtual status_t addSource(const sp<MediaSource> &source) = 0; virtual bool reachedEOS() = 0; virtual status_t start(MetaData *params = NULL) = 0; virtual void stop() = 0; virtual void pause() = 0; virtual status_t stop() = 0; virtual status_t pause() = 0; virtual void setMaxFileSize(int64_t bytes) { mMaxFileSizeLimitBytes = bytes; } virtual void setMaxFileDuration(int64_t durationUs) { mMaxFileDurationLimitUs = durationUs; } virtual void setListener(const sp<IMediaRecorderClient>& listener) { Loading
media/libmediaplayerservice/StagefrightRecorder.cpp +3 −2 Original line number Diff line number Diff line Loading @@ -1067,8 +1067,9 @@ status_t StagefrightRecorder::pause() { status_t StagefrightRecorder::stop() { LOGV("stop"); status_t err = OK; if (mWriter != NULL) { mWriter->stop(); err = mWriter->stop(); mWriter.clear(); } Loading @@ -1090,7 +1091,7 @@ status_t StagefrightRecorder::stop() { mOutputFd = -1; } return OK; return err; } status_t StagefrightRecorder::close() { Loading
media/libstagefright/AMRWriter.cpp +22 −10 Original line number Diff line number Diff line Loading @@ -136,16 +136,17 @@ status_t AMRWriter::start(MetaData *params) { return OK; } void AMRWriter::pause() { status_t AMRWriter::pause() { if (!mStarted) { return; return OK; } mPaused = true; return OK; } void AMRWriter::stop() { status_t AMRWriter::stop() { if (!mStarted) { return; return OK; } mDone = true; Loading @@ -153,9 +154,17 @@ void AMRWriter::stop() { void *dummy; pthread_join(mThread, &dummy); mSource->stop(); status_t err = (status_t) dummy; { status_t status = mSource->stop(); if (err == OK && (status != OK && status != ERROR_END_OF_STREAM)) { err = status; } } mStarted = false; return err; } bool AMRWriter::exceedsFileSizeLimit() { Loading @@ -174,21 +183,20 @@ bool AMRWriter::exceedsFileDurationLimit() { // static void *AMRWriter::ThreadWrapper(void *me) { static_cast<AMRWriter *>(me)->threadFunc(); return NULL; return (void *) static_cast<AMRWriter *>(me)->threadFunc(); } void AMRWriter::threadFunc() { status_t AMRWriter::threadFunc() { mEstimatedDurationUs = 0; mEstimatedSizeBytes = 0; bool stoppedPrematurely = true; int64_t previousPausedDurationUs = 0; int64_t maxTimestampUs = 0; status_t err = OK; while (!mDone) { MediaBuffer *buffer; status_t err = mSource->read(&buffer); err = mSource->read(&buffer); if (err != OK) { break; Loading Loading @@ -260,6 +268,10 @@ void AMRWriter::threadFunc() { fclose(mFile); mFile = NULL; mReachedEOS = true; if (err == ERROR_END_OF_STREAM) { return OK; } return err; } bool AMRWriter::reachedEOS() { Loading