diff --git a/main.cc b/main.cc index 5fcf53d..f246056 100644 --- a/main.cc +++ b/main.cc @@ -155,8 +155,8 @@ int main(int argc, char** const argv) case FileType::VIDEO: { InitVideo(window, targetFilepath, decoderParam, openglVideoParam, shaderService); - auto& time_base = decoderParam.fmtCtx->streams[decoderParam.videoStreamIndex]->time_base; - framerate = (double)time_base.num / time_base.den; + auto stream_frame_rate = decoderParam.fmtCtx->streams[decoderParam.videoStreamIndex]->avg_frame_rate; + framerate = static_cast(stream_frame_rate.den) / stream_frame_rate.num; break; } case FileType::IMG: @@ -202,7 +202,7 @@ int main(int argc, char** const argv) case FileType::VIDEO: OpenglRender(decoderParam, openglVideoParam, shaderService); SDL_GL_SwapWindow(window); - std::this_thread::sleep_until(current_time + std::chrono::milliseconds((int)(framerate * 1000))); + std::this_thread::sleep_until(current_time + std::chrono::milliseconds(static_cast(framerate * 1000))); current_time = std::chrono::system_clock::now(); break;