diff --git a/components/V4L2EncodeComponent.cpp b/components/V4L2EncodeComponent.cpp index a1b46aba9f4c67f9997091c351e104006161010e..4ce4404e74a1952c6cd20356282b8e46523a8259 100644 --- a/components/V4L2EncodeComponent.cpp +++ b/components/V4L2EncodeComponent.cpp @@ -756,8 +756,8 @@ bool V4L2EncodeComponent::encode(C2ConstGraphicBlock block, uint64_t index, int6 // Dynamically adjust framerate based on the frame's timestamp if required. constexpr int64_t kMaxFramerateDiff = 5; if (mLastFrameTime && (timestamp > *mLastFrameTime)) { - int64_t newFramerate = - static_cast<int64_t>(std::round(1000000.0 / (timestamp - *mLastFrameTime))); + int64_t newFramerate = std::max( + static_cast<int64_t>(std::round(1000000.0 / (timestamp - *mLastFrameTime))), 1LL); if (abs(mFramerate - newFramerate) > kMaxFramerateDiff) { ALOGV("Adjusting framerate to %" PRId64 " based on frame timestamps", newFramerate); mInterface->setFramerate(static_cast<uint32_t>(newFramerate));