status_t AMRWBEncoder::stop() { if (!mStarted) { LOGW("Call stop() when encoder has not started"); return OK; } /*m@nufront start*/ #if 0 if (mInputBuffer) { mInputBuffer->release(); mInputBuffer = NULL; } delete mBufferGroup; mBufferGroup = NULL; #endif mSource->stop(); waitOutstandingEncodingFrames_l(); /*m@nufront end*/ CHECK_EQ(VO_ERR_NONE, mApiHandle->Uninit(mEncoderHandle)); mEncoderHandle = NULL; delete mApiHandle; mApiHandle = NULL; delete mMemOperator; mMemOperator; mStarted = false; mSource->stop(); return OK; }
status_t AudioSource::reset() { Mutex::Autolock autoLock(mLock); if (!mStarted) { return UNKNOWN_ERROR; } if (mInitCheck != OK) { return NO_INIT; } mStarted = false; mRecord->stop(); waitOutstandingEncodingFrames_l(); releaseQueuedFrames_l(); return OK; }