stopping pipeline with qmlglsink (GstGLVideoItem) blocks Qt

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

stopping pipeline with qmlglsink (GstGLVideoItem) blocks Qt

Hi all,

Im using Gstreamer (1.16.2) and QT (5.14.2). Im using qmlglsink to display
webrtc video stream.
When I try to stop pipeline with qmlglsink QT background tasks are blocked
(timers, callbacks...).

What Im doing basically boils down to this example:

plus I added to timers between lines 72 and 74:
*    QTimer * timer = new QTimer();
    QObject::connect(timer, &QTimer::timeout, [] () {
        qDebug() << ">>Stop pipeline<<" << endl;
        gst_element_set_state (pipeline, GST_STATE_PAUSED);
        gst_element_set_state (pipeline, GST_STATE_NULL);
    timer->start(10000); //in ms

    QTimer * timer1 = new QTimer();
    QObject::connect(timer1, &QTimer::timeout, [] () {
        qDebug() << ">>Alive!!!<<" << endl;
    timer1->start(1000); //in ms

first timer will stop pipeline after 10s and second one just prints message.
After first timer stops pipeline there is no more printouts from second
I guess that Im not stopping pipeline correctly? what is or is there a
correct way to stop pipeline with qmlglsink that uses GstGLVideoItem


Sent from:
gstreamer-devel mailing list
[hidden email]