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

Commit c1d2ae02 authored by Hangyu Kuang's avatar Hangyu Kuang Committed by android-build-merger
Browse files

Merge "media: Signal no more frames to read in AudioSource" into oc-dr1-dev am: 0d3c6817

am: 1fcd8d8f

Change-Id: I3513f12801561b730feafa6cc6aa663616a4020e
parents 7013d1e8 1fcd8d8f
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ AudioSource::AudioSource(
      mNumFramesReceived(0),
      mNumFramesSkipped(0),
      mNumFramesLost(0),
      mNumClientOwnedBuffers(0) {
      mNumClientOwnedBuffers(0),
      mNoMoreFramesToRead(false) {
    ALOGV("sampleRate: %u, outSampleRate: %u, channelCount: %u",
            sampleRate, outSampleRate, channelCount);
    CHECK(channelCount == 1 || channelCount == 2);
@@ -178,6 +179,7 @@ status_t AudioSource::reset() {

    mStarted = false;
    mStopSystemTimeUs = -1;
    mNoMoreFramesToRead = false;
    mFrameAvailableCondition.signal();

    mRecord->stop();
@@ -246,6 +248,9 @@ status_t AudioSource::read(

    while (mStarted && mBuffersReceived.empty()) {
        mFrameAvailableCondition.wait(mLock);
        if (mNoMoreFramesToRead) {
            return OK;
        }
    }
    if (!mStarted) {
        return OK;
@@ -359,6 +364,8 @@ status_t AudioSource::dataCallback(const AudioRecord::Buffer& audioBuffer) {
    if (mStopSystemTimeUs != -1 && timeUs >= mStopSystemTimeUs) {
        ALOGV("Drop Audio frame at %lld  stop time: %lld us",
                (long long)timeUs, (long long)mStopSystemTimeUs);
        mNoMoreFramesToRead = true;
        mFrameAvailableCondition.signal();
        return OK;
    }

+1 −0
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@ private:
    int64_t mNumFramesSkipped;
    int64_t mNumFramesLost;
    int64_t mNumClientOwnedBuffers;
    bool mNoMoreFramesToRead;

    List<MediaBuffer * > mBuffersReceived;