Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7ae6dac8 authored by James Dong's avatar James Dong Committed by Android Git Automerger
Browse files

am 45800cf9: am 3115dad3: Merge "Report errors to applications if...

am 45800cf9: am 3115dad3: Merge "Report errors to applications if AudioRecord->start() fails" into honeycomb

* commit '45800cf9':
  Report errors to applications if AudioRecord->start() fails
parents 6f327627 45800cf9
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -91,14 +91,17 @@ status_t AudioSource::start(MetaData *params) {
        mStartTimeUs = startTimeUs;
    }
    status_t err = mRecord->start();

    if (err == OK) {
        mGroup = new MediaBufferGroup;
        mGroup->add_buffer(new MediaBuffer(kMaxBufferSize));

        mStarted = true;
    } else {
        delete mRecord;
        mRecord = NULL;
    }


    return err;
}

+8 −1
Original line number Diff line number Diff line
@@ -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;
+15 −11
Original line number Diff line number Diff line
@@ -151,7 +151,11 @@ status_t AACEncoder::start(MetaData *params) {
    mInputFrame = new int16_t[mChannels * kNumSamplesPerFrame];
    CHECK(mInputFrame != NULL);

    mSource->start(params);
    status_t err = mSource->start(params);
    if (err != OK) {
         LOGE("AudioSource is not available");
        return err;
    }

    mStarted = true;

@@ -159,11 +163,6 @@ status_t AACEncoder::start(MetaData *params) {
}

status_t AACEncoder::stop() {
    if (!mStarted) {
        LOGW("Call stop() when encoder has not started");
        return OK;
    }

    if (mInputBuffer) {
        mInputBuffer->release();
        mInputBuffer = NULL;
@@ -172,8 +171,17 @@ status_t AACEncoder::stop() {
    delete mBufferGroup;
    mBufferGroup = NULL;

    mSource->stop();
    if (mInputFrame) {
        delete[] mInputFrame;
        mInputFrame = NULL;
    }

    if (!mStarted) {
        LOGW("Call stop() when encoder has not started");
        return ERROR_END_OF_STREAM;
    }

    mSource->stop();
    if (mEncoderHandle) {
        CHECK_EQ(VO_ERR_NONE, mApiHandle->Uninit(mEncoderHandle));
        mEncoderHandle = NULL;
@@ -182,10 +190,6 @@ status_t AACEncoder::stop() {
    mApiHandle = NULL;

    mStarted = false;
    if (mInputFrame) {
        delete[] mInputFrame;
        mInputFrame = NULL;
    }

    return OK;
}