diff options
author | Andreas Huber <andih@google.com> | 2012-10-01 11:22:05 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-10-01 11:24:04 -0700 |
commit | 0e1d71641624c641a0a1abe4098943f5a42c6f94 (patch) | |
tree | 676b461c207b032cb45f6e35cd4a4dc225c4fe7c | |
parent | 6360758ce2d171169d2a21e30266547ee4ac0fec (diff) | |
download | frameworks_av-0e1d71641624c641a0a1abe4098943f5a42c6f94.zip frameworks_av-0e1d71641624c641a0a1abe4098943f5a42c6f94.tar.gz frameworks_av-0e1d71641624c641a0a1abe4098943f5a42c6f94.tar.bz2 |
Remove double negatives from SurfaceMediaSource
ensure mStarted actually reflects the state of SurfaceMediaSource
Change-Id: I92557896993ad8da23fe6940e997402ad63b8cbc
related-to-bug: 7258622
-rw-r--r-- | include/media/stagefright/SurfaceMediaSource.h | 4 | ||||
-rw-r--r-- | media/libstagefright/SurfaceMediaSource.cpp | 17 |
2 files changed, 12 insertions, 9 deletions
diff --git a/include/media/stagefright/SurfaceMediaSource.h b/include/media/stagefright/SurfaceMediaSource.h index f60a535..82e5965 100644 --- a/include/media/stagefright/SurfaceMediaSource.h +++ b/include/media/stagefright/SurfaceMediaSource.h @@ -193,8 +193,8 @@ private: // Set to a default of 30 fps if not specified by the client side int32_t mFrameRate; - // mStopped is a flag to check if the recording is going on - bool mStopped; + // mStarted is a flag to check if the recording is going on + bool mStarted; // mNumFramesReceived indicates the number of frames recieved from // the client side diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp index 9d39d0e..97f9c7c 100644 --- a/media/libstagefright/SurfaceMediaSource.cpp +++ b/media/libstagefright/SurfaceMediaSource.cpp @@ -42,7 +42,7 @@ SurfaceMediaSource::SurfaceMediaSource(uint32_t bufferWidth, uint32_t bufferHeig mNumPendingBuffers(0), mCurrentTimestamp(0), mFrameRate(30), - mStopped(false), + mStarted(false), mNumFramesReceived(0), mNumFramesEncoded(0), mFirstFrameTimestamp(0), @@ -80,7 +80,7 @@ SurfaceMediaSource::SurfaceMediaSource(uint32_t bufferWidth, uint32_t bufferHeig SurfaceMediaSource::~SurfaceMediaSource() { ALOGV("~SurfaceMediaSource"); - CHECK(mStopped == true); + CHECK(!mStarted); } nsecs_t SurfaceMediaSource::getTimestamp() { @@ -140,6 +140,8 @@ status_t SurfaceMediaSource::start(MetaData *params) Mutex::Autolock lock(mMutex); + CHECK(!mStarted); + mStartTimeNs = 0; int64_t startTimeUs; int32_t bufferCount = 0; @@ -171,6 +173,7 @@ status_t SurfaceMediaSource::start(MetaData *params) } mNumPendingBuffers = 0; + mStarted = true; return OK; } @@ -191,7 +194,7 @@ status_t SurfaceMediaSource::stop() ALOGV("stop"); Mutex::Autolock lock(mMutex); - if (mStopped) { + if (!mStarted) { return OK; } @@ -208,7 +211,7 @@ status_t SurfaceMediaSource::stop() mMediaBuffersAvailableCondition.wait(mMutex); } - mStopped = true; + mStarted = false; mFrameAvailableCondition.signal(); mMediaBuffersAvailableCondition.signal(); @@ -270,7 +273,7 @@ status_t SurfaceMediaSource::read( MediaBuffer **buffer, *buffer = NULL; - while (!mStopped && mNumPendingBuffers == mMaxAcquiredBufferCount) { + while (mStarted && mNumPendingBuffers == mMaxAcquiredBufferCount) { mMediaBuffersAvailableCondition.wait(mMutex); } @@ -281,7 +284,7 @@ status_t SurfaceMediaSource::read( MediaBuffer **buffer, BufferQueue::BufferItem item; // If the recording has started and the queue is empty, then just // wait here till the frames come in from the client side - while (!mStopped) { + while (mStarted) { status_t err = mBufferQueue->acquireBuffer(&item); if (err == BufferQueue::NO_BUFFER_AVAILABLE) { @@ -322,7 +325,7 @@ status_t SurfaceMediaSource::read( MediaBuffer **buffer, // If the loop was exited as a result of stopping the recording, // it is OK - if (mStopped) { + if (!mStarted) { ALOGV("Read: SurfaceMediaSource is stopped. Returning ERROR_END_OF_STREAM."); return ERROR_END_OF_STREAM; } |