我有一个小型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();
}
答案 0 :(得分:0)
您不能使用GPU(或在CPU和GPU之间切换)来运行您的Qt应用程序。您仍然需要CPU来运行您的应用程序。 GPU不是通用处理器:您只能为GPU专门执行一些数学任务。它的CPU控制将在GPU上执行的操作。
所有GStreamer代码都由CPU执行。但是,有些元素可以使用GPU进行内部数学运算。 “明确说gstreamer在GPU上运行”是什么意思?
你应该只使用Qt的GStreamer 1.x分支。 GStreamer 0.1已经15岁了。