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

Commit d012efd3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "CCodecBufferChannel: remove assumption that pipeline clears quickly on input EOS"

parents c1070a0b 05b51202
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -2098,12 +2098,13 @@ status_t CCodecBufferChannel::setSurface(const sp<Surface> &newSurface) {
}
}


PipelineWatcher::Clock::duration CCodecBufferChannel::elapsed() {
PipelineWatcher::Clock::duration CCodecBufferChannel::elapsed() {
    // When client pushed EOS, we want all the work to be done quickly.
    // Otherwise, component may have stalled work due to input starvation up to
    // Otherwise, component may have stalled work due to input starvation up to
    // the sum of the delay in the pipeline.
    // the sum of the delay in the pipeline.
    // TODO(b/231253301): When client pushed EOS, the pipeline could have less
    //                    number of frames.
    size_t n = 0;
    size_t n = 0;
    if (!mInputMetEos) {
    size_t outputDelay = mOutput.lock()->outputDelay;
    size_t outputDelay = mOutput.lock()->outputDelay;
    {
        Mutexed<Input>::Locked input(mInput);
        Mutexed<Input>::Locked input(mInput);
        n = input->inputDelay + input->pipelineDelay + outputDelay;
        n = input->inputDelay + input->pipelineDelay + outputDelay;
    }
    }