Added a watchdog of 1 second to avoid freezes

This commit is contained in:
HolographicWings 2023-05-24 00:35:30 +02:00
parent 4e33e59dd9
commit 743211e6d1
2 changed files with 4 additions and 1 deletions

View file

@ -295,7 +295,7 @@ AVFramePtr Codec::GetCurrentFrame() {
std::chrono::microseconds min_frame_interval =
std::chrono::microseconds(1000 / Settings::values.video_framerate.GetValue() * 1000);
if (elapsed < min_frame_interval) {
if (elapsed < min_frame_interval || elapsed > watchdog_waitFrameTimeout) {
std::this_thread::sleep_for(min_frame_interval - elapsed);
now = std::chrono::steady_clock::now();
}

View file

@ -60,6 +60,9 @@ public:
std::chrono::steady_clock::time_point last_frame_time = std::chrono::steady_clock::now();
const std::chrono::microseconds watchdog_waitFrameTimeout =
std::chrono::microseconds(1000000); // 1 second
private:
void InitializeAvCodecContext();