Fixed potential issue

Fixed potential bug when when stop and re-starting a game.
Removed useless line.
This commit is contained in:
HolographicWings 2023-05-16 04:55:59 +02:00
parent 8be6b37556
commit 4f0116ae0f
2 changed files with 4 additions and 7 deletions

View file

@ -278,8 +278,6 @@ void Codec::Decode() {
}
}
std::chrono::steady_clock::time_point last_frame_time = std::chrono::steady_clock::now();
AVFramePtr Codec::GetCurrentFrame() {
// Sometimes VIC will request more frames than have been decoded.
// in this case, return a nullptr and don't overwrite previous frame data
@ -292,15 +290,12 @@ AVFramePtr Codec::GetCurrentFrame() {
if (Settings::values.use_video_framerate.GetValue()) {
std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
std::chrono::microseconds elapsed =
std::chrono::duration_cast<std::chrono::microseconds>(now - last_frame_time);
std::chrono::microseconds min_frame_interval =
std::chrono::microseconds(1000 / Settings::values.video_framerate.GetValue() * 1000);
std::chrono::microseconds elapsed = std::chrono::duration_cast<std::chrono::microseconds>(now - last_frame_time);
std::chrono::microseconds min_frame_interval = std::chrono::microseconds(1000 / Settings::values.video_framerate.GetValue() * 1000);
if (elapsed < min_frame_interval) {
std::this_thread::sleep_for(min_frame_interval - elapsed);
now = std::chrono::steady_clock::now();
elapsed = std::chrono::duration_cast<std::chrono::microseconds>(now - last_frame_time);
}
last_frame_time = now;

View file

@ -58,6 +58,8 @@ public:
/// Return name of the current codec
[[nodiscard]] std::string_view GetCurrentCodecName() const;
std::chrono::steady_clock::time_point last_frame_time = std::chrono::steady_clock::now();
private:
void InitializeAvCodecContext();