summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MPEG4Writer.cpp
diff options
context:
space:
mode:
authorJames Dong <jdong@google.com>2011-01-25 12:37:43 -0800
committerJames Dong <jdong@google.com>2011-01-25 15:30:34 -0800
commiteaae38445a340c4857c1c5569475879a728e63b7 (patch)
tree17e8fcf56c9c8d215cd5ba0149f21d63d4576843 /media/libstagefright/MPEG4Writer.cpp
parent4feffd1a8d95cf3843c06a37160580d30d421d8e (diff)
downloadframeworks_av-eaae38445a340c4857c1c5569475879a728e63b7.zip
frameworks_av-eaae38445a340c4857c1c5569475879a728e63b7.tar.gz
frameworks_av-eaae38445a340c4857c1c5569475879a728e63b7.tar.bz2
Report errors to applications if AudioRecord->start() fails
bug - 3385198 Change-Id: I86ac8071eb28a538b333e102192193d1b9eda5eb
Diffstat (limited to 'media/libstagefright/MPEG4Writer.cpp')
-rw-r--r--media/libstagefright/MPEG4Writer.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp
index a47ee3a..d1a497f 100644
--- a/media/libstagefright/MPEG4Writer.cpp
+++ b/media/libstagefright/MPEG4Writer.cpp
@@ -78,6 +78,7 @@ private:
volatile bool mDone;
volatile bool mPaused;
volatile bool mResumed;
+ volatile bool mStarted;
bool mIsAvc;
bool mIsAudio;
bool mIsMPEG4;
@@ -951,6 +952,7 @@ MPEG4Writer::Track::Track(
mDone(false),
mPaused(false),
mResumed(false),
+ mStarted(false),
mTrackDurationUs(0),
mEstimatedTrackSizeBytes(0),
mSamplesHaveSameSize(true),
@@ -1279,6 +1281,7 @@ status_t MPEG4Writer::Track::start(MetaData *params) {
pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE);
mDone = false;
+ mStarted = true;
mTrackDurationUs = 0;
mReachedEOS = false;
mEstimatedTrackSizeBytes = 0;
@@ -1307,10 +1310,14 @@ status_t MPEG4Writer::Track::pause() {
status_t MPEG4Writer::Track::stop() {
LOGD("Stopping %s track", mIsAudio? "Audio": "Video");
+ if (!mStarted) {
+ LOGE("Stop() called but track is not started");
+ return ERROR_END_OF_STREAM;
+ }
+
if (mDone) {
return OK;
}
-
mDone = true;
void *dummy;