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

Commit a5b46422 authored by Andy Hung's avatar Andy Hung Committed by Glenn Kasten
Browse files

NuPlayerRenderer: do not send rendering started message when paused

Delay until resume.

Bug: 23669269
Change-Id: I0a805812d80b1aad561425442bca0fc05a05752f
parent 95c3a43a
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -111,6 +111,7 @@ NuPlayer::Renderer::Renderer(
      mVideoRenderingStarted(false),
      mVideoRenderingStartGeneration(0),
      mAudioRenderingStartGeneration(0),
      mRenderingDataDelivered(false),
      mAudioOffloadPauseTimeoutGeneration(0),
      mAudioTornDown(false),
      mCurrentOffloadInfo(AUDIO_INFO_INITIALIZER),
@@ -648,11 +649,16 @@ void NuPlayer::Renderer::postDrainAudioQueue_l(int64_t delayUs) {
void NuPlayer::Renderer::prepareForMediaRenderingStart_l() {
    mAudioRenderingStartGeneration = mAudioDrainGeneration;
    mVideoRenderingStartGeneration = mVideoDrainGeneration;
    mRenderingDataDelivered = false;
}

void NuPlayer::Renderer::notifyIfMediaRenderingStarted_l() {
    if (mVideoRenderingStartGeneration == mVideoDrainGeneration &&
        mAudioRenderingStartGeneration == mAudioDrainGeneration) {
        mRenderingDataDelivered = true;
        if (mPaused) {
            return;
        }
        mVideoRenderingStartGeneration = -1;
        mAudioRenderingStartGeneration = -1;

@@ -1504,7 +1510,10 @@ void NuPlayer::Renderer::onResume() {
    {
        Mutex::Autolock autoLock(mLock);
        mPaused = false;

        // rendering started message may have been delayed if we were paused.
        if (mRenderingDataDelivered) {
            notifyIfMediaRenderingStarted_l();
        }
        // configure audiosink as we did not do it when pausing
        if (mAudioSink != NULL && mAudioSink->ready()) {
            mAudioSink->setPlaybackRate(mPlaybackSettings);
+1 −0
Original line number Diff line number Diff line
@@ -176,6 +176,7 @@ private:
    bool mVideoRenderingStarted;
    int32_t mVideoRenderingStartGeneration;
    int32_t mAudioRenderingStartGeneration;
    bool mRenderingDataDelivered;

    int64_t mLastPositionUpdateUs;