diff options
author | Samuel Rødal <samuel.rodal@digia.com> | 2013-03-13 15:13:17 +0100 |
---|---|---|
committer | Samuel Rødal <samuel.rodal@digia.com> | 2013-03-13 15:13:17 +0100 |
commit | 98fbbf3af12def9ad0fb1daba9728761859a943b (patch) | |
tree | 7ba05226cada0d71017842709c57ceb52472db51 /src/imports/nativemedia/main.cpp | |
parent | 71b64b2544f81814078f97f0f52bc31c8ce19296 (diff) |
Added nativemedia for video playback.
See the test.qml in src/imports/nativemedia for usage.
Diffstat (limited to 'src/imports/nativemedia/main.cpp')
-rw-r--r-- | src/imports/nativemedia/main.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/imports/nativemedia/main.cpp b/src/imports/nativemedia/main.cpp new file mode 100644 index 0000000..66775f6 --- /dev/null +++ b/src/imports/nativemedia/main.cpp @@ -0,0 +1,55 @@ +#include <QtGui> + +void initializeOMX(); +void render(QOpenGLContext *context, QWindow *surface); + +class Renderer : public QObject +{ + Q_OBJECT +public: + Renderer(QWindow *surface) + : surface(surface) + { + context = new QOpenGLContext; + + context->create(); + context->makeCurrent(surface); + + initializeOMX(); + qDebug() << "OMX initialized"; + } + +public slots: + void render() { + ::render(context, surface); + } + +public: + QWindow *surface; + QOpenGLContext *context; +} *renderer; + +void triggerRender() +{ + QTimer::singleShot(0, renderer, SLOT(render())); +} + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QScreen *screen = QGuiApplication::primaryScreen(); + + qDebug() << "Screen geometry:" << screen->geometry(); + + QWindow window; + window.setSurfaceType(QWindow::OpenGLSurface); + window.setGeometry(screen->geometry()); + window.show(); + + renderer = new Renderer(&window); + + return app.exec(); +} + +#include "main.moc" |