// 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
mNumPendingBuffers(0),
mCurrentTimestamp(0),
mFrameRate(30),
- mStopped(false),
+ mStarted(false),
mNumFramesReceived(0),
mNumFramesEncoded(0),
mFirstFrameTimestamp(0),
SurfaceMediaSource::~SurfaceMediaSource() {
ALOGV("~SurfaceMediaSource");
- CHECK(mStopped == true);
+ CHECK(!mStarted);
}
nsecs_t SurfaceMediaSource::getTimestamp() {
Mutex::Autolock lock(mMutex);
+ CHECK(!mStarted);
+
mStartTimeNs = 0;
int64_t startTimeUs;
int32_t bufferCount = 0;
}
mNumPendingBuffers = 0;
+ mStarted = true;
return OK;
}
ALOGV("stop");
Mutex::Autolock lock(mMutex);
- if (mStopped) {
+ if (!mStarted) {
return OK;
}
mMediaBuffersAvailableCondition.wait(mMutex);
}
- mStopped = true;
+ mStarted = false;
mFrameAvailableCondition.signal();
mMediaBuffersAvailableCondition.signal();
*buffer = NULL;
- while (!mStopped && mNumPendingBuffers == mMaxAcquiredBufferCount) {
+ while (mStarted && mNumPendingBuffers == mMaxAcquiredBufferCount) {
mMediaBuffersAvailableCondition.wait(mMutex);
}
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) {
// 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;
}