小编Joe*_*oey的帖子

使用Qt 5.0以编程方式创建视频

我们有一个QT应用程序,它将以编程方式生成的QPixmaps逐个呈现给显示器,我们希望将此输出保存到视频文件中.

我知道在过去人们建议使用ffmpeg或opencv与Qt这样做.然而,在Qt 5中,新的QtMultimedia模块似乎暴露了一些此类功能.

例如,现在可以使用QdiaRecorder在Qt 5中保存来自摄像机源的视频,如http://doc.qt.io/qt-5/qmediarecorder.html#details中所述.

有了这个新功能,有没有办法使用Qt 5来保存我们以编程方式生成的视频,或者我最好还是使用第三方库?

c++ qt opencv ffmpeg

14
推荐指数
1
解决办法
1万
查看次数

静态函数中的静态变量是否可以移动到内存中的新地址?

我刚刚升级到第三方库的新版本(Qt 5.0的QtPropertyBrowser).升级导致我的应用程序中出现了一个新错误,我设法跟踪库中的静态函数.该函数包含一个静态变量,该函数在第一次调用函数时初始化.我在初始化之后复制了该变量的内存位置,并按预期发现,在多个后续调用中,该变量保留在同一内存位置.然后在随后的函数调用中,我注意到静态变量中的内存位置和数据已经改变(导致程序中的错误).

代码看起来像这样:

class ClassA
{
    //.... 
};

class ClassB
{
public:
    ClassA* ptrMember;
};

static ClassA *theFunction()
{
    static ClassB statVar = {0};
    if(!statVar.ptrMember)
        statVar.ptrMember = new ClassA();
    return statVar.ptrMember;
}
Run Code Online (Sandbox Code Playgroud)

我发现在多次调用theFunction()存储的地址时&statVar始终保持不变,但随后在后续调用中,地址&statVar不同而且statVar.ptrMember为空.

我不认为这是可能的!有任何想法吗?

c++

1
推荐指数
1
解决办法
618
查看次数

标签 统计

c++ ×2

ffmpeg ×1

opencv ×1

qt ×1