8 #include <QtOpenGL/QGLWidget>
13 #include <QGst/Pipeline>
14 #include <QGst/ElementFactory>
15 #include <QGst/Ui/VideoWidget>
16 #include <QGst/Ui/GraphicsVideoSurface>
17 #include <QGst/Ui/GraphicsVideoWidget>
22 int main(
int argc,
char *argv[])
24 QApplication qapp(argc, argv);
27 QGst::init(&argc, &argv);
29 QGst::ElementPtr videoSrc = QGst::ElementFactory::make(
"videotestsrc");
30 QGst::ElementPtr fallbackVideoSink = QGst::ElementFactory::make(
"qtvideosink");
31 QGst::PipelinePtr pipeline = QGst::Pipeline::create(
"mypipeline");
32 QGst::PipelinePtr fallbackPipeline = QGst::Pipeline::create(
"fallbackPipeline");
34 QGraphicsScene *scene =
new QGraphicsScene;
35 QGraphicsView *view =
new QGraphicsView(scene);
36 view->setViewport(
new QGLWidget);
38 QGst::Ui::GraphicsVideoSurface *surface =
new QGst::Ui::GraphicsVideoSurface(view);
39 QGst::Ui::GraphicsVideoWidget *widget =
new QGst::Ui::GraphicsVideoWidget;
40 widget->setSurface(surface);
42 scene->addItem(widget);
44 view->resize(400,400);
45 widget->resize(300,300);
47 pipeline->add(videoSrc, surface->videoSink());
48 videoSrc->link(surface->videoSink());
50 std::cout <<
"Video source name: " << surface->videoSink()->property(
"name").toString().toStdString() << std::endl;
53 if(!pipeline->setState(QGst::StatePlaying)) {
55 std::cout <<
"Could not play pipeline with opengl video sink. Trying to fall back to qtvideosink." << std::endl;
92 QGst::ElementPtr videoSrc = QGst::ElementFactory::make(
"videotestsrc");
93 QGst::ElementPtr videoSink = QGst::ElementFactory::make(
"qtglvideosink");
95 QGLWidget *glwidget =
new QGLWidget;
96 glwidget->makeCurrent();
97 videoSink->setProperty(
"glcontext", (
void*) QGLContext::currentContext());
98 glwidget->doneCurrent();
100 if (videoSink->setState(QGst::StateReady) != QGst::StateChangeSuccess) {
102 videoSink = QGst::ElementFactory::make(
"qtvideosink");
105 QGst::PipelinePtr pipeline = QGst::Pipeline::create(
"mypipeline");
106 pipeline->add(videoSrc, videoSink);
107 videoSrc->link(videoSink);
int main(int argc, char *argv[])
Image viewer with optional text and geometry overlay functionality.