c++ - 如何在 GPU 而不是 CPU 上运行 qt 应用程序

标签 c++ linux qt qml gpu

我有一个从本地存储播放视频的小型 QT 应用程序,当我运行它时视频阻塞且速度很慢,我使用的是 gstreamer 0.1...但是当我从终端运行它并明确表示要运行 gstreamer在 gpu 上它工作正常。

如何从 QT 调整在 GPU 上运行的代码... 我的代码示例...

    QApplication app(argc, argv);

    QGraphicsView *graphicsView = new QGraphicsView;
    QMediaPlayer *player = new QMediaPlayer;
    QGraphicsScene *scene = new QGraphicsScene;

    graphicsView->setScene(scene);
    graphicsView->setMinimumSize(800,480);
    QGraphicsVideoItem *item = new QGraphicsVideoItem;
    player->setVideoOutput(item);
    graphicsView->scene()->addItem(item);
    graphicsView->show();
    player->setMedia(QUrl::fromLocalFile("/path/to/my/file"));

    QTransform mirror;
    mirror.scale(-1,1);
    item->setTransform(mirror);

    player->play();

return app.exec();

最佳答案

您不能使用 GPU(或在 CPU 和 GPU 之间切换)来运行您的 Qt 应用程序。您仍然需要 CPU 来运行您的应用程序。 GPU 不是通用处理器:您只能为 GPU 分配一些数学任务。 CPU 控制将在 GPU 上执行的操作。

所有 GStreamer 代码都由 CPU 执行。但是,某些元素可以使用 GPU 进行内部数学计算。 “明确说明要在 GPU 上运行 gstreamer”是什么意思?

您应该只在 Qt 中使用 GStreamer 1.x 分支。 GStreamer 0.1 已经 15 岁了。

关于c++ - 如何在 GPU 而不是 CPU 上运行 qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33575019/

相关文章:

c - 使用信号量时等待 fork 进程

C++ char* 相对文件路径? (Qt)

linux - 调用 shell 脚本/。 bash 脚本中的 jar 文件

c++ - 如何在 Linux 应用程序上使用 C++ 中的终端输入中断循环/进程

qt - 使用Jenkins xUnit插件显示QTeSTLib的结果

c++ - Qt Creator - 如何启用 float IDE 布局?

c++ - 如何将二维 vector 中的对象设置为空指针 [C++]

c# - 使用命名管道将图像从 C++ 发送到 C# 应用程序

c++ - 带三点参数的函数

c++ - 如何实例化模板的模板