<div dir="ltr"><div>Thank you for your response.<br></div><div><br></div><div>I didn't know this is possibility in QT.</div><div><br></div><div>Only thing which is confusing now is how to implement this.</div><div>I have looked at examples around but I didn't get the general idea.</div><div><br></div><div>Currently I am showing video by using following code:</div><div><br></div><div>----</div><div><br></div><div><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">GstPlayer</span>::playRTP(<span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span>port)<span style="color:rgb(192,192,192)"> </span>{</pre>
<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">m_pipeline</span><span style="color:rgb(192,192,192)"> </span>=<span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QGst</span>::<span style="color:rgb(128,0,128)">Pipeline</span>::create();</pre>
<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">QString</span><span style="color:rgb(192,192,192)"> </span>rtpPipeDescription01<span style="color:rgb(192,192,192)"> </span>=<span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QString</span>(<span style="color:rgb(0,128,0)">"udpsrc</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">port=\"%1\"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">!</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                </span><span style="color:rgb(0,128,0)">"application/x-rtp,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">encoding-name=JPEG,payload=26</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">!</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                </span><span style="color:rgb(0,128,0)">"rtpjpegdepay</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">!</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                </span><span style="color:rgb(0,128,0)">"jpegdec</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">!</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                </span><span style="color:rgb(0,128,0)">"</span>autovideosink"<span style="font-family:arial,sans-serif">).arg(port);</span><br></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">try</span><span style="color:rgb(192,192,192)"> </span>{</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,0,0)">m_pipeline</span><span style="color:rgb(192,192,192)"> </span>=<span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QGst</span>::<span style="color:rgb(128,0,128)">Parse</span>::launch(rtpPipeDescription01).dynamicCast<<span style="color:rgb(128,0,128)">QGst</span>::<span style="color:rgb(128,0,128)">Pipeline</span>>();</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span>}<span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">catch</span><span style="color:rgb(192,192,192)"> </span>(<span style="color:rgb(128,128,0)">const</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QGlib</span>::<span style="color:rgb(128,0,128)">Error</span><span style="color:rgb(192,192,192)"> </span>&<span style="color:rgb(192,192,192)"> </span>error)<span style="color:rgb(192,192,192)"> </span>{</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,128)">qCritical</span>()<span style="color:rgb(192,192,192)"> </span><<<span style="color:rgb(192,192,192)"> </span>error;</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,128)">qFatal</span>(<span style="color:rgb(0,128,0)">"One</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">or</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">more</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">elements</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">are</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">missing"</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span>}</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span>watchPipeline(<span style="color:rgb(128,0,0)">m_pipeline</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">m_pipeline</span>->setState(<span style="color:rgb(128,0,128)">QGst</span>::<span style="color:rgb(128,0,128)">StatePlaying</span>);</pre>
<pre style="margin-top:0px;margin-bottom:0px">}</pre>
<pre style="margin-top:0px;margin-bottom:0px"><br></pre></div><div> -----</div><div><br></div><div>First this class would be instantiated. <br></div><div>On the qtdesigner I would add widget and promote it to this class, and then play would be called with designated port.</div><div>I have tried to use several sinks instead of autovideosink: <span style="color:rgb(0,0,0);font-family:Roboto,sans-serif;font-size:14px">qtvideosink", "qtglvideosink" , "qwidgetvideosink" (or "qt5videosink", "qt5glvideosink" and "qwidget5videosink" in Qt5)</span> but all are reported as not present (example: <span style="color:rgb(170,0,170)">"no element \"qwidget5videosink\"")</span></div><div><br></div><div>Found them on this page: <a href="https://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/classQGst_1_1Ui_1_1VideoWidget.html">https://gstreamer.freedesktop.org/data/doc/gstreamer/head/qt-gstreamer/html/classQGst_1_1Ui_1_1VideoWidget.html</a></div><div><br></div><div> Should I use it in different way? </div><div><br></div><div><br></div><div>Kind regards,</div><div>Nikola.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 6, 2017 at 6:35 PM, Nicolas Dufresne <span dir="ltr"><<a href="mailto:nicolas@ndufresne.ca" target="_blank">nicolas@ndufresne.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">Le mercredi 06 septembre 2017 à 16:45 +0200, Nikola a écrit :<br>
> Hello,<br>
><br>
> has anyone successfully overplayed widget over autovideosink.<br>
<br>
</span>This is not possible in a portable way. On X11 you could place semi-<br>
transparent window on top with your controls, but this is not possible<br>
on wayland.<br>
<br>
In general best is to use a specific videosink for your application<br>
widget system. For QT you could maybe try qmlglsink. It will use a GL<br>
rendererer, and the display will be just like any other widget.<br>
<span class="">><br>
> Setup includes testing videosource which broadcasts over udp to<br>
> udpsink.<br>
><br>
> I am trying to do exactly that in Qt 5.8 on windows but when I start<br>
> video widget gets overwritten.<br>
> Are there any examples of this, especially because this seems pretty<br>
> standard task to most things done with video playing.<br>
><br>
><br>
> Kind regards,<br>
> Nikola.<br>
</span>> ______________________________<wbr>_________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.<wbr>freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/gstreamer-<wbr>devel</a><br>______________________________<wbr>_________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/gstreamer-<wbr>devel</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">God is Real, unless declared Integer. <br>J. Allan Toogood, FORTRAN programmer</div>
</div>