<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">> So you are saying that the explicit</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">> gst_video_overlay_set_window_</span><span style="font-family:arial,sans-serif;font-size:13px">handle() always works? And what exactly</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">> does not always work then? Letting the video sink create the window</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">i> tself? And what is the error message you get on the bus when it fails?</span><br>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">without </span><span style="font-family:arial,sans-serif;font-size:13px">export DISPLAY=:0.0</span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px">the window instantaneously appears and disappears, for a fraction of a second, and </span><font face="arial, sans-serif">gst_element_set_state (pipeline, GST_STATE_PLAYING)  returns GST_STATE_CHANGE_FAILURE</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">I will try to catch all errors I can (my code already checks all return codes and compiles with all warnings). However it sometimes freezes to the point my Ubuntu Linux 14.04 system breaks (although I run my GStreamer MP only in the user mode).</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">By the way, I am using the stock Ubuntu apt-get install gstreamer1*. Maybe it's better to use the latest stable or development version from a repository?</font></div>
<div><font face="arial, sans-serif"><br></font></div><div><font face="arial, sans-serif">Thanks!</font></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br></span></div><div><span style="font-family:arial,sans-serif;font-size:13px"><br>
</span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jun 25, 2014 at 12:31 AM, Sergei Vorobyov <span dir="ltr"><<a href="mailto:sergei.vorobyov@facilitylabs.com" target="_blank">sergei.vorobyov@facilitylabs.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">I resolved the problem by simply adding the explicit export DISPLAY=:0.0 to the script:<div><br></div><div>
#!/bin/bash</div><div><br></div><div>case $1 in</div><div>     start)</div><div><span style="white-space:pre-wrap">    </span>echo $$ > /var/run-usr/mp.pid;</div>
<div><span style="white-space:pre-wrap">  </span>export DISPLAY=:0.0</div><div>     <span style="white-space:pre-wrap">      </span>exec 2>&1 /path/to/my/mp 1>/dev/null ;;</div><div><br></div><div>although the apparently equivalent (to export DISPLAY=:0.0)</div>
<div class="">
<div><br></div><div>Display *display = XOpenDisplay (":0");<br></div><div><br></div></div><div>nor</div><div><br></div><div>Display *display = XOpenDisplay (":0.0");<br></div><div><br></div><div>in the mp code don't help. This was the problem!</div>

<div> </div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 24, 2014 at 3:41 PM, Sergei Vorobyov <span dir="ltr"><<a href="mailto:sergei.vorobyov@facilitylabs.com" target="_blank">sergei.vorobyov@facilitylabs.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">To make my GStreamer app unsinkable (sad to say the GStreamer sometimes freezes after a few days of intensive repetitive usage with dynamic pipes, caps, etc) I decided to start, monitor, and relaunch when needed my media player as a background process. Trouble is:<div>


<br></div><div>the background process fails in the very beginning at</div><div><br></div><div><div>if (gst_element_set_state (pipeline, GST_STATE_PLAYING) ==</div><div>                                         GST_STATE_CHANGE_FAILURE) {</div>


<div>            LOG_ERROR("failed to set pipeline to PLAYING");</div><div>            EXIT(-1);</div><div>}</div></div><div><br></div><div>whereas it always works OK in the foreground mode.</div><div><br></div>


<div>Note that my</div><div><br></div><div>Display *display = XOpenDisplay (":0");</div><div><br></div><div>Window window = XCreateWindow(display, ...<br></div><div><br></div><div>gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(sink), window);<br>


</div><div><br></div><div>(where sink is ximagesink; I am trying to overlay my ximagesink over an X-window)</div><div><br></div><div>all work OK in the fore- and background modes.</div><div><br></div><div>Of course, I cannot test the void result of gst_video_overlay_set_window_handle.</div>


<div><br></div><div>Any ideas? Thanks!</div><div><br></div><div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>