After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 752185 - new qt5 qml video sink
new qt5 qml video sink
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: 1.5.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-07-09 16:01 UTC by Matthew Waters (ystreet00)
Modified: 2015-10-21 21:48 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
new qt5 qml GL video sink (44.93 KB, patch)
2015-07-09 16:04 UTC, Matthew Waters (ystreet00)
none Details | Review

Description Matthew Waters (ystreet00) 2015-07-09 16:01:34 UTC
A new qml GL video sink using the GStreamer GL integration.
Comment 1 Matthew Waters (ystreet00) 2015-07-09 16:04:15 UTC
Created attachment 307157 [details] [review]
new qt5 qml GL video sink

Very much in the same spirit as the Gtk GL sink

Two things are provided
1. A QQuickItem subclass that renders out RGBA filled GstGLMemory buffers that is instantiated from qml.
2. A sink element that will push buffers into (1)

To use
1. Declare the GstGLVideoItem in qml with an appropriate objectName property set.
2. Get the aforementioned GstGLVideoItem from qml using something like

QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));

QObject *rootObject = engine.rootObjects().first();
QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");

3. Set the videoItem on the sink
4. Profit!
Comment 2 Sebastian Dröge (slomo) 2015-07-09 17:12:58 UTC
What's missing here for this to be merged? Anything needs to be discussed? :)
Comment 3 Matthew Waters (ystreet00) 2015-07-10 05:26:30 UTC
Nothing now, I fixed all my discussable points ;)

commit 769fffa3d93d89c692a3be6591bac9b610d3acaa
Author: Matthew Waters <matthew@centricular.com>
Date:   Mon Jul 6 23:10:51 2015 +1000

    new qt5 qml GL video sink
    
    Very much in the same spirit as the Gtk GL sink
    
    Two things are provided
    1. A QQuickItem subclass that renders out RGBA filled GstGLMemory
       buffers that is instantiated from qml.
    2. A sink element that will push buffers into (1)
    
    To use
    1. Declare the GstGLVideoItem in qml with an appropriate
       objectName property set.
    2. Get the aforementioned GstGLVideoItem from qml using something like
    
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    
    QObject *rootObject = engine.rootObjects().first();
    QQuickItem *videoItem = rootObject->findChild<QQuickItem *> ("videoItem");
    
    3. Set the videoItem on the sink
    
    https://bugzilla.gnome.org/show_bug.cgi?id=752185
Comment 4 Dmitry 2015-10-21 21:08:08 UTC
There are the  way for dynamic usage of new sink in QML Loader? If possible create example. I mean can I usage this way?



Rectangle {
    width: 640
    height: 480

    Component {
        id:  glvideoitem_ID 

        GstGLVideoItem {
            id: video
            objectName: "videoItem"
        }
    }

    property bool _switcher: false 

    Timer {
       interval:  2000 
       onTimeout: _switcher = _switcher?false:true
    }

    Loader {
          anchors.fill: parent

          componentSource: _switcher?glvideoitem_ID:undefined          
    } 
}
Comment 5 Matthew Waters (ystreet00) 2015-10-21 21:47:19 UTC
Sure, apparently it's possible.  See https://bugzilla.gnome.org/show_bug.cgi?id=756082 for the details.
Comment 6 Matthew Waters (ystreet00) 2015-10-21 21:48:23 UTC
If there are any actual bug with that snippet of qml code please file a separate bug.  This is not a support forum.