<div dir="ltr"><div><div><div><div>> BTW: As I remember, I saw some environment variable which allows to
    setup custom video sink... I need to see sources of QtMM... if I'm
    not mistaked..<br>
    maybe it will help...<br><br></div>I have found this env variables:<br><br>* QT_GSTREAMER_WIDGET_VIDEOSINK<br>* QT_GSTREAMER_WINDOW_VIDEOSINK<br><br></div>and try to use it:<br><br></div>$export QT_GSTREAMER_WIDGET_VIDEOSINK=nv_omx_hdmi_videosink<br>$export QT_GSTREAMER_WINDOW_VIDEOSINK=nv_omx_hdmi_videosink<br></div>$./my-qml-video-player<br><div><br></div><div>but, this does not help...<br><br></div><div>BR,<br></div><div>Denis<br></div><div><div><br><br><div><div><span class="im"></span></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-05-25 8:30 GMT+03:00 Denis Shienkov <span dir="ltr"><<a href="mailto:denis.shienkov@gmail.com" target="_blank">denis.shienkov@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <p>> Gstreamer 1.0+ goes some way to addressing these issues....
      <br>
    </p>
    <p>The Apalis T30 board has GPU from the NVidia. So, when I use
      'gst-inspect' I see some of 'nv' sinks.</p>
    So, as I understand, the easy ways to do it are:<br>
    <br>
    1) I should try to use GStreamer 1.0 (instead of 0.10) "as is" with
    QtMM (rebuild QtMM with this GStreamer), at first stage.<br>
    <br>
    2) I need try to change QtMM sources and try to set the specific
    vendor-video sinks there, at second stage... (in case the first
    stage does not work).<br>
    <br>
    Is it?<br>
    <br>
    BTW: As I remember, I saw some environment variable which allows to
    setup custom video sink... I need to see sources of QtMM... if I'm
    not mistaked..<br>
    maybe it will help...<span class=""><br>
    <br>
    > but even within the standard packages there still seems to be
    multiple APIs for codecs which produce EGL surfaces and none of them
    have been utilized in QtMultimedia yet<br>
    <br></span>
    Could you please provide an examples of this API which is not
    adopted in QtMM?<br>
    <br>
    <br>
    <br>
    BR,<br>
    Denis<br>
    <em></em><span><em><br>
        <br>
      </em></span>
    <div>25.05.2016 4:44, Andrew den Exter
      пишет:<br>
    </div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">The short answer is some amount of platform
        adaptation will be required to enable hardware acceleration on
        your board.  Looking at the page you linked to; that adaptation
        might be achieved by creating an implementation
        of QGstBufferPoolPlugin (gstreamer 0.10 only) which exposes EGL
        surfaces associated with the <span style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px">x-nv-yuv
          buffers produced by the accelerated codec.  Or you might also
          need to create your own video node by implementing </span>QSGVideoNodeFactoryPlugin or
        something more invasive may be required, it really depends on
        how the vendor implemented their gstreamer plugins
        <div><br>
        </div>
        <div>
          <div>The reason hardware acceleration doesn't just work is
            that hardware vendors have traditionally had to create
            extensions to gstreamer in order to implement their hardware
            accelerated plugins, and these extensions tend to require a
            vendor specific video sink to work.  If all you care about
            is rendering to the full dimensions of a native window then
            autovideosink will generally resolve to that vendor specific
            video sink and that's why the standard example command line
            examples tend to work.  But when it comes to something more
            complicated like compositing into an opengl scene or even as
            simple as rendering to a sub rect of a window then you're
            into the realm of vendor extensions and without a port to
            your specific hardware it probably won't work.  Gstreamer
            1.0+ goes some way to addressing these issues, but even
            within the standard packages there still seems to be
            multiple APIs for codecs which produce EGL surfaces and none
            of them have been utilized in QtMultimedia yet.</div>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>Andrew</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Wed, May 25, 2016 at 12:40 AM, Denis
          Shienkov <span dir="ltr"><<a href="mailto:denis.shienkov@gmail.com" target="_blank">denis.shienkov@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">
              <div>
                <div>
                  <div>
                    <div>
                      <div>Hi all.<br>
                        <br>
                      </div>
                      I have the Toradex (Apalis T30) embedded board:<br>
                      <a href="https://www.toradex.com/computer-on-modules/apalis-arm-family/nvidia-tegra-3" target="_blank">https://www.toradex.com/computer-on-modules/apalis-arm-family/nvidia-tegra-3</a><br>
                      <br>
                      which has:<br>
                      <a href="http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/Apalis_T30_LinuxImageV2.6Beta1_20160331.tar.bz2" target="_blank">http://developer.toradex.com/files/toradex-dev/uploads/media/Colibri/Linux/Images/Apalis_T30_LinuxImageV2.6Beta1_20160331.tar.bz2</a><br>
                      <br>
                      Linux Image, with the GStreamer 0.10. <br>
                      <br>
                      Also I have compiled Qt 5.6 and installed it to
                      the board.<br>
                      <br>
                      When I try to play any *.MP4 video file from the
                      QML Video item:<br>
                      <a href="http://doc.qt.io/qt-5/qml-qtmultimedia-video.html" target="_blank">http://doc.qt.io/qt-5/qml-qtmultimedia-video.html</a><br>
                      <br>
                      I see, that my video has very-very lags, and I see
                      (with htop utility) that CPU loading is ~300% (<br>
                      three cores running on ~100%).<br>
                      <br>
                      But, when I try to play the video, using the
                      'nvgstplayer' utility, I see that CPU loading is
                      ~46% and all fine. Seems, the QML player loads the
                      SW codecs instead of HW codecs...<br>
                      <br>
                    </div>
                    <div>Is there are any way to say to QML player to
                      use a HW codecs? Or, maybe, I need to fix a
                      sources of QtMM (where I need to change it?) Or,
                      maybe, is there are another way to do this?<br>
                      <br>
                      Otherwise, is just a **HELL** and there is no
                      sense in QML QtMultimedia at all (But I need QML
                      for anumations). And I do not know, how to fix it
                      (I'm not expert in GStreamer).<br>
                      <br>
                    </div>
                    <div>PS: I have tried the 'gst-launch' pipelines
                      instead of 'nvgstplayer', as described here:<br>
                      <a href="http://developer.toradex.com/knowledge-base/video-playback-%28linux%29" target="_blank">http://developer.toradex.com/knowledge-base/video-playback-%28linux%29</a><br>
                    </div>
                    <div>but it crashes with sigsegv.... <br>
                      <br>
                    </div>
                    <div>BR,<br>
                    </div>
                    <div>Denis <br>
                    </div>
                  </div>
                </div>
              </div>
              <br>
               <br>
              <div>
                <div>
                  <div><br>
                    <br>
                    <div><br>
                      <br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            Development mailing list<br>
            <a href="mailto:Development@qt-project.org" target="_blank">Development@qt-project.org</a><br>
            <a href="http://lists.qt-project.org/mailman/listinfo/development" rel="noreferrer" target="_blank">http://lists.qt-project.org/mailman/listinfo/development</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div>