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

Commit d290c251 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "CCodec: Update watchdog to handle timeouts accurately" am: 36f42119

parents 1b6148e6 36f42119
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -2543,17 +2543,6 @@ status_t CCodec::configureTunneledVideoPlayback(
}

void CCodec::initiateReleaseIfStuck() {
    std::string name;
    bool pendingDeadline = false;
    {
        Mutexed<NamedTimePoint>::Locked deadline(mDeadline);
        if (deadline->get() < std::chrono::steady_clock::now()) {
            name = deadline->getName();
        }
        if (deadline->get() != TimePoint::max()) {
            pendingDeadline = true;
        }
    }
    bool tunneled = false;
    bool isMediaTypeKnown = false;
    {
@@ -2591,6 +2580,17 @@ void CCodec::initiateReleaseIfStuck() {
        tunneled = config->mTunneled;
        isMediaTypeKnown = (kKnownMediaTypes.count(config->mCodingMediaType) != 0);
    }
    std::string name;
    bool pendingDeadline = false;
    {
        Mutexed<NamedTimePoint>::Locked deadline(mDeadline);
        if (deadline->get() < std::chrono::steady_clock::now()) {
            name = deadline->getName();
        }
        if (deadline->get() != TimePoint::max()) {
            pendingDeadline = true;
        }
    }
    if (!tunneled && isMediaTypeKnown && name.empty()) {
        constexpr std::chrono::steady_clock::duration kWorkDurationThreshold = 3s;
        std::chrono::steady_clock::duration elapsed = mChannel->elapsed();