C++11 使用C++;11在窗户上

C++11 使用C++;11在窗户上,c++11,ffmpeg,C++11,Ffmpeg,我一直在使用C++11 sleep来给出视频帧之间的间隔。我一直使用的这种方法可以延长Windows上的播放时间 #include <iostream> #include <thread> #include <sstream> int main(const int argc, const char **args) { std::stringstream sb; if(argc < 2) return 1; i

我一直在使用C++11 sleep来给出视频帧之间的间隔。我一直使用的这种方法可以延长Windows上的播放时间

#include <iostream>
#include <thread>
#include <sstream>


int main(const int argc, const char **args)
{
    std::stringstream sb;

    if(argc < 2)
        return 1;
    int fps = 0;
    sb << args[1];
    sb >> fps;

    if(fps <= 0)
        return 1;
    int i;


    while(true)
    {
        std::chrono::high_resolution_clock::time_point start, end;

        start = std::chrono::high_resolution_clock::now();
        for(i=0; i<fps; ++i)
        {
            std::this_thread::sleep_for(std::chrono::microseconds(1000000 / fps));
        }
        end = std::chrono::high_resolution_clock::now();

        auto c = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
        std::cerr << c << std::endl;
    }

    return 0;
}
#包括
#包括
#包括
int main(常量int argc,常量字符**args)
{
std::stringstream sb;
如果(argc<2)
返回1;
int fps=0;
sb>fps;
if(fps)
使用计时器(像这样?)是在…上实现媒体播放器的唯一方法吗

使用高精度计时器(如链接计时器)是一个选项。另一个选项(但不好)选项是将CPU周期浪费在繁忙的等待上。

在Windows上实现媒体播放器的唯一方法是好的,不,例如,我们有一个需要帧正确的自定义媒体播放器,因此根本不使用计时器/睡眠,而只依赖渲染器的同步到垂直刷新。顺便说一句,还可以看到文档中的第一句话: