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