修复视频播放速度过快的问题
This commit is contained in:
parent
5cc0de59d5
commit
5cb403e96b
6
main.cc
6
main.cc
@ -155,8 +155,8 @@ int main(int argc, char** const argv)
|
|||||||
case FileType::VIDEO:
|
case FileType::VIDEO:
|
||||||
{
|
{
|
||||||
InitVideo(window, targetFilepath, decoderParam, openglVideoParam, shaderService);
|
InitVideo(window, targetFilepath, decoderParam, openglVideoParam, shaderService);
|
||||||
auto& time_base = decoderParam.fmtCtx->streams[decoderParam.videoStreamIndex]->time_base;
|
auto stream_frame_rate = decoderParam.fmtCtx->streams[decoderParam.videoStreamIndex]->avg_frame_rate;
|
||||||
framerate = (double)time_base.num / time_base.den;
|
framerate = static_cast<double>(stream_frame_rate.den) / stream_frame_rate.num;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case FileType::IMG:
|
case FileType::IMG:
|
||||||
@ -202,7 +202,7 @@ int main(int argc, char** const argv)
|
|||||||
case FileType::VIDEO:
|
case FileType::VIDEO:
|
||||||
OpenglRender(decoderParam, openglVideoParam, shaderService);
|
OpenglRender(decoderParam, openglVideoParam, shaderService);
|
||||||
SDL_GL_SwapWindow(window);
|
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<int>(framerate * 1000)));
|
||||||
current_time = std::chrono::system_clock::now();
|
current_time = std::chrono::system_clock::now();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user