<br><br><div class="gmail_quote">2010/11/18 Sebastian Dröge <span dir="ltr">&lt;<a href="mailto:sebastian.droege@collabora.co.uk">sebastian.droege@collabora.co.uk</a>&gt;</span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Thu, 2010-11-18 at 13:00 -0200, Tiago Katcipis wrote:<br>
&gt;<br>
&gt;<br>
&gt;         That&#39;s all possible but the problem with that is, that a) the<br>
&gt;         state<br>
&gt;         change from NULL-&gt;READY happens synchronous in GStreamer and<br>
&gt;         that b)<br>
&gt;         basesrc wants to know the file size in READY already,<br>
&gt;         otherwise it will<br>
&gt;         never activate random access mode.<br>
&gt;<br>
&gt;<br>
&gt; Well if it must be synchronous running the main loop on another Thread<br>
&gt; does not to seem to be an option. What is done on gst_bus_poll seems<br>
&gt; to fit here:<br>
&gt;<br>
&gt; 1 - the caller on the set_state will get blocked on the call<br>
&gt; 2 - inside the call we mount the file and do all the stuff async using<br>
&gt; the main_loop_run to block the caller<br>
&gt; 3 - after everything is done we get out of the run call and give to<br>
&gt; the basesrc the file size<br>
&gt;<br>
&gt; this way we can use the async GIO API, mount the file for the user<br>
&gt; giving a &quot;sync&quot; operation to the set_state caller. But this approach<br>
&gt; is pretty simple, if you guys still not implemented it... it is<br>
&gt; because it has something pretty bad on it... it is because the same<br>
&gt; problem that can happen on gst_bus_poll?<br>
<br>
</div>That would work in theory but the problem here is, that GStreamer does<br>
not require any running GLib main loop on the main context by policy.<br></blockquote><div><br>does not require, but if we create it? the user does not need to know that a main loop has been created, and if the mainloop on the main context already exists...we use it.<br>
<br>but i agree that it is ugly and your suggestion seems to be better...make the transition of states async:<br><a href="https://bugzilla.gnome.org/show_bug.cgi?id=586939">https://bugzilla.gnome.org/show_bug.cgi?id=586939</a><br>
<br>so my question now is... is there any planning on doing this? because if it is not going to be done, even if it is not beautiful (like gst_bus_poll) it seems to be better to let the user &quot;ask&quot; the plugin to mount everything to him instead of having to catch a message &quot;not-mounted&quot; and them having to mount (asynchronously...a pain in the ass) and them setting the pipeline to play again.<br>
<br>best regards,<br>Katcipis<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>------------------------------------------------------------------------------<br>
Beautiful is writing same markup. Internet Explorer 9 supports<br>
standards for HTML5, CSS3, SVG 1.1,  ECMAScript5, and DOM L2 &amp; L3.<br>
Spend less time writing and  rewriting code and more time creating great<br>
experiences on the web. Be a part of the beta today<br>
<a href="http://p.sf.net/sfu/msIE9-sfdev2dev" target="_blank">http://p.sf.net/sfu/msIE9-sfdev2dev</a><br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><a href="http://www.getgnulinux.org/windows">http://www.getgnulinux.org/windows</a><br>