gpt4 book ai didi

C++11 暂停执行一定时间的最准确方法?

转载 作者:太空宇宙 更新时间:2023-11-04 14:29:02 25 4
gpt4 key购买 nike

<分区>

我目前正在研究一些从视频文件中读取的 C++ 代码,将视频/音频流解析为其组成单元(例如 FLV 标签),然后按顺序将其发回以“重新播放”它。

因为我的输入来自文件,但我想在重新流式传输此数据时模拟适当的帧速率,所以我正在考虑如何让正在对文件执行 read 的线程按顺序休眠尝试以给定的速率从典型的 30 或 60 FPS 中提取帧。

一种解决方案是使用明显的 std::this_thread::sleep_for 调用并根据我的 FPS 传入毫秒数。我正在考虑的另一种解决方案是使用条件变量,并使用具有相同想法的 std::condition_variable::wait_for

我有点卡住了,因为我知道第一个解决方案不能保证精确度——只要我传入参数, sleep 就会持续,但理论上可能会更长。我知道 std::condition_variable::wait_for 调用需要重新获取锁,这也需要一些时间。有没有比我正在考虑的更好的解决方案?否则,尝试以尽可能精确的粒度暂停执行的最佳方法是什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com