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

Commit 73ddd210 authored by Wei Jia's avatar Wei Jia
Browse files

NuPlayerRenderer: stop feeding AudioSink when paused.

NuPlayerDriver: current position is updated only in running state.

Bug: 17141882
Change-Id: Ia88551cc29ef8f0e7ef0600a214feb5633389b6e
parent 6868628c
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -560,9 +560,11 @@ void NuPlayerDriver::notifyDuration(int64_t durationUs) {

void NuPlayerDriver::notifyPosition(int64_t positionUs) {
    Mutex::Autolock autoLock(mLock);
    if (isPlaying()) {
        mPositionUs = positionUs;
        mNotifyTimeRealUs = ALooper::GetNowUs();
    }
}

void NuPlayerDriver::notifySeekComplete() {
    Mutex::Autolock autoLock(mLock);
+3 −4
Original line number Diff line number Diff line
@@ -315,7 +315,7 @@ size_t NuPlayer::Renderer::AudioSinkCallback(
size_t NuPlayer::Renderer::fillAudioBuffer(void *buffer, size_t size) {
    Mutex::Autolock autoLock(mLock);

    if (!offloadingAudio()) {
    if (!offloadingAudio() || mPaused) {
        return 0;
    }

@@ -887,6 +887,7 @@ void NuPlayer::Renderer::onPause() {
        ++mAudioQueueGeneration;
        ++mVideoQueueGeneration;
        prepareForMediaRenderingStart();
        mPaused = true;
    }

    mDrainAudioQueuePending = false;
@@ -898,8 +899,6 @@ void NuPlayer::Renderer::onPause() {

    ALOGV("now paused audio queue has %d entries, video has %d entries",
          mAudioQueue.size(), mVideoQueue.size());

    mPaused = true;
}

void NuPlayer::Renderer::onResume() {
@@ -911,9 +910,9 @@ void NuPlayer::Renderer::onResume() {
        mAudioSink->start();
    }

    Mutex::Autolock autoLock(mLock);
    mPaused = false;

    Mutex::Autolock autoLock(mLock);
    if (!mAudioQueue.empty()) {
        postDrainAudioQueue_l();
    }