Added a watchdog of 1 second to avoid freezes
This commit is contained in:
parent
4e33e59dd9
commit
743211e6d1
2 changed files with 4 additions and 1 deletions
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue