video from Qt5 and C++ code example directly failed



  • When i use from Qt5 + C++ code , i have error, but from qml code... just works.
    I'm not sure, but it looks like C++ project part is no more maintened from Qt team, because it works before...
    what's happen ? is it possible to view camera from Qt and C++ code or is it no more possible ? (and why ?)

    this is the error :

    libva info: VA-API version 0.38.1
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_0_38
    libva info: va_openDriver() returns 0
    libva info: VA-API version 0.38.1
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_0_38
    libva info: va_openDriver() returns 0
    QWidget::paintEngine: Should no longer be called
    QWidget::paintEngine: Should no longer be called
    QWidget::paintEngine: Should no longer be called
    QWidget::paintEngine: Should no longer be called
    libva info: VA-API version 0.38.1
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_0_38
    libva info: va_openDriver() returns 0

    ** (camera:14406): CRITICAL **: gst_vaapi_window_x11_new_with_xid: assertion 'xid != None' failed

    ** (camera:14406): CRITICAL **: gst_vaapi_window_x11_new_with_xid: assertion 'xid != None' failed

    thank you for information about that.


  • Lifetime Qt Champion

    Hi,

    You need to provide more information like the exact version of Qt you are using, the name of the example, the Linux distribution you are using, the installed version of gstreamer etc.



  • @SGaist
    Hi Sgaist, thanks you for try to help (again and again):
    _archlinux kernel 4.3.3-3-ARCH
    _QT-5.5.1-9
    _gstreamer-1.6.3-1

    on laptop clevo intel i7 with nvidia GTX 950M graphic card and drivers: xf86-video-intel 2.99.917+519+g8229390-1, with nvidia 358.16-3 with bumblebee-3.2.1-10 (works fine).
    I also installed some lib32 drivers and mesa, mesa-libgl,
    libva-intel-driver (1.6.2-1), libva-mesa-driver (11.1.1-1),

    The Qt exemple use for try it is: "Camera Example"


  • Lifetime Qt Champion

    The first thing I'd do is try to run GStreamer from the console to see if it's working properly.



  • @SGaist
    yes sure.
    It works (gstreamer).


  • Lifetime Qt Champion

    Ok, good. Can test that with a simpler version of the program e.g.

    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        QCamera camera;
        QCameraViewfinder viewfinder;
        viewfinder.show();
        camera.setViewfinder(&viewfinder);
        camera.start();
        return app.exec();
    }
    


  • @SGaist
    yes, sure.
    I done it and it compil fine, run and never show camera or viewfinder, and it said back:

    libva info: VA-API version 0.38.1
    libva info: va_getDriverName() returns 0
    libva info: Trying to open /usr/lib/dri/i965_drv_video.so
    libva info: Found init function __vaDriverInit_0_38
    libva info: va_openDriver() returns 0

    but, if from your distribution (desktop version) linux it's runing fine, i think ther eis a problem, maybe not with QT5, but maybe with my configuration.
    The fact make me confused is also that, with qml code, camera and view work perfectly. That's strange.



  • @SGaist
    ok, i think i find why this can not works.
    In fact, it is not QT5 directly, but the way it use video with (va-api) on my laptop.
    Because my laptop has two graphic proc (the one from intel from CPU chip, and the one from graphic card nvidia GTX950M).
    Then, i have to tell bumblebee to use nvidia card instead of intel GPU part of intel CPU due to impossibility by this intel proc to use these va-api (add an env variable for that in /etc/environment for example: LIBVA_DRIVER_NAME=nvidia).

    But maybe it could be possible also to configure QT5 tools to not use va-api lib for make running video on widgets ? is there a way to tell him to use the same way as it use with QML code ? If possible this way would be the best one for many situations (but not all for specific stuff maybe).


  • Lifetime Qt Champion

    If I understand you correctly, you have both working if running on the nVidia GPU but not when the Intel GPU is active ?



  • @SGaist not sure, i answer too quick and no had time more for experiment this way from laptop.

    But from now, i work on my desktop PC, then only Intel video driver and CPU used for video (i7). And same problem: QCamear example running but show a black screen (no error output).

    Then i see that there is no error with libva, but maybe the problem come from the use of libva by QT5.
    I can not remove libva due to dependencies. How is it possible to make running/using video by an other way than libva for QT5 ?
    I not understand because codes for video from QML sources works, not from QT/C++ sources (same problem from QT5 QCamera example).
    maybe you could try to install a linux distribution in 64bits mode and install libva and gl libs, then just run the example give by QT5 to see the problem ?
    or tell me what i could do for have more information around this kind of (maybe) bug.

    appreciate your help, thanks.


  • Lifetime Qt Champion

    Qt 5.6 being almost out, can you check with it if you are still experiencing this ?
    Otherwise, you should also check with the GStreamer 1.0 QtMultimedia plugin



  • @SGaist i just install the last one qt-5.6.0-1 from archlinux repos.
    But same problem again.
    I don't know what to do, i try to find help on irc from qt channel and archlinux channel, but no one help or find.
    Do you have more idea ? is it possible to join a Qt dev of QtMultimedia or someone around this code ?


  • Lifetime Qt Champion

    You can try writing to the interest mailing list



  • @SGaist I tried... but:

    This is an automatically generated Delivery Status Notification

    THIS IS A WARNING MESSAGE ONLY.

    YOU DO NOT NEED TO RESEND YOUR MESSAGE.

    Delivery to the following recipient has been delayed:

     interest@qt-project.com
    

    Message will be retried for 2 more day(s)

    Technical details of temporary failure:
    The recipient server did not accept our requests to connect. Learn more at https://support.google.com/mail/answer/7720
    [qt-project.com. 77.240.23.85: socket error]


  • Lifetime Qt Champion

    Did you subscribe first ?



  • @SGaist yes i suscribe first and then confirm my subscribtion.
    But i have all the time error from send delivery mails.

    also, i looked inside my directory: /usr/lib/dri
    and i have this (who seems to be suspect i think):
    https://gist.github.com/anonymous/dd17c9f72906726f8070b3d6a81a7a76

    i installed nvidia before, but remove it and blacklisted it because of passthrough for qemu virtual machine (ability of use autocad with windows 7 on VM), but i use my intel driver. i not understand these libs on this directory.
    Could you please tell me if you think it could be a problem there ?


  • Lifetime Qt Champion

    IIRC these are the libraries used by the Direct Rendering Infrastructure so I wouldn't say they are suspicious



  • @SGaist i tried to suscribe with an other account than gmail (from my own site):

    This is the mail system at host sortant-01.o2switch.net.
    
    I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below.
    
    For further assistance, please send mail to postmaster.
    
    If you do so, please include this problem report. You can delete your own text from the attached returned message.
    
                       The mail system
    
    <interest@qt-project.com>: connect to qt-project.com[77.240.23.85]:25: No route to host
    
    

    It's look like a bad joke.... how to contact them ?
    Could you please post for me and explain i can not contact them ? what i can do ? i folow the process, it doesn't work att all.


  • Lifetime Qt Champion

    Because it's qt-project.org not .com



  • This post is deleted!


  • @SGaist Hi,
    after many month, i had to suscribe by two different email address, because one of them is like blacklisted or something like that (never seen my messages printed on the discussion).
    But anyway, with the second address, i saw it, but never have answer.

    When use the camera example code from Qt5, i know exactly the code line who make problem appears:
    "camera->setViewfinder(ui->viewfinder);"
    GPU is not the problem to.
    so consider the testcase is the QT5 example, with archlinux and last Qt-5.7.xxx on Intel CPU, with a usb camera who works with all other programms, and also with QML code. Juste the Qt5 with widgets code never works for me.
    Many month of search, never find solution, never find someone more than you that what to help on that to.

    IRC => no one answer on that to.

    i don't know what to do more, seems like use camera with Qt5 and widget code is a pain and it is like that.


  • Lifetime Qt Champion

    Can you check what type of video surface you are getting ?



  • I maybe had the same problem. I always got a black viewfinder and the same vaapi messages. The only solution for me was to uninstall the gstreamer-vaapi plugin (if you dont require vaapi).



  • @pauledd
    that is also my problem, you find the solution.
    I'm so happy ! thank you very much for that, close to one year long for searching a solution...
    thank you very much pauledd.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.