the book is NOT about gstreamer, that was a typo.<br><br><div class="gmail_quote">On Sat, Feb 25, 2012 at 6:08 PM, Michael Niemand <span dir="ltr">&lt;<a href="mailto:michael.niemand@googlemail.com">michael.niemand@googlemail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">The protocol to do these kinda things would be SIP I think.<div>There&#39;s a book by Morgan Kaufmann called &quot;Internet Multimedia Communications Using SIP&quot;.</div>
<div><br></div><div>Its about GStreamer though, but SIP (as the title suggests). Maybe give it a try. Also check gstreamer-java if that is more your thing ...</div>
<div><br></div><div>Good luck!</div><div><br></div><div><div><div class="h5"><br><br><div class="gmail_quote">On Sat, Feb 25, 2012 at 5:31 PM, Sean McNamara <span dir="ltr">&lt;<a href="mailto:smcnam@gmail.com" target="_blank">smcnam@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<div><br>
On Sat, Feb 25, 2012 at 12:26 AM,  &lt;<a href="mailto:gstream@ccc2.com" target="_blank">gstream@ccc2.com</a>&gt; wrote:<br>
&gt; Hi All,<br>
&gt;<br>
&gt; I am not a C. programmer at all. I have followed the tutorials and<br>
&gt; examples and have a working videomixer2 application. Can you give advice<br>
&gt; as to how I can interact with this app on a remote linux box. I assume it<br>
&gt; is with sockets etc (telnet?). Any advice and some examples would be<br>
&gt; great.<br>
<br>
</div>First, this is not a gstreamer question. Just because you&#39;re *using*<br>
gstreamer doesn&#39;t mean that the nature of your question is at all<br>
related to gstreamer. This is a general applications programming<br>
question, because the nature of your question is *networking*, not<br>
*the gstreamer API*. I&#39;m replying as a courtesy, but please keep the<br>
SNR of this list high by not posting further non-gstreamer questions<br>
to this list.<br>
<br>
This is where having some software engineering knowledge would help you.<br>
<br>
First of all, if you&#39;re doing this over the public internet, you need<br>
an authentication mechanism for your network service. And since<br>
authentication over plain text is basically the same as having no<br>
authentication, you&#39;re going to need encryption, message<br>
authentication, and a bunch of other things. Rather than trying to<br>
design something like this from scratch, I&#39;d suggest to just use an<br>
existing solution that is secure enough that most people trust it.<br>
<br>
Basically, don&#39;t try to cheat by doing something simple/easy like<br>
telnet, unless this service is ONLY going to listen on a LAN IP<br>
address and you trust every computer that connects to that LAN.<br>
Assuming you&#39;re good with using existing GNOME technology, you might<br>
look at using libsoup as an HTTPS (&quot;S&quot; for &quot;SSLv3&quot; / &quot;TLS&quot;) server.<br>
Once you have an authenticated SSL or TLS tunnel with the client, you<br>
can pretty much code up an arbitrary request/response protocol between<br>
the client and server.<br>
<br>
It&#39;d go something like this, starting at OSI layer 5 (Session):<br>
<br>
0. Client establishes a TCP socket connection on port 443 (or<br>
whatever) with server. (Layer 5)<br>
1. Client sends an SSL HelloRequest to server. (Layer 6)<br>
2. Client and server complete an SSL handshake to establish a secure<br>
connection. (Layer 6)<br>
3. Client pushes across an HTTP Request (tunneled through SSL) with a<br>
body containing the authentication data. Don&#39;t use URL params. For a<br>
low-risk system like this with no concept of user accounts, just a 20+<br>
character password could be sufficient.<br>
4. If the client sent the right password, the server sends an HTTP<br>
Response back with a body containing something like &quot;OK&quot;. If the<br>
client sent the wrong password, terminate the TCP connection and don&#39;t<br>
respond to that host until they initiate a new connection.<br>
5. Client pushes across another HTTP Request, with a body containing<br>
plain text that the server will parse to figure out what property to<br>
set on the element, and what value. You can do something as simple as<br>
name=value.<br>
6. Server will call g_object_set() on the appropriate gstreamer<br>
element, in order to set the property at runtime.<br>
7. Here, you can optionally keep the channel open for re-use (to avoid<br>
having to start over from step 1 if you want to set another property).<br>
Or you can kill it on either side if you&#39;re done.<br>
<br>
If you use libsoup on the server, you can do this without starting<br>
another thread, because libsoup has async methods that call a callback<br>
that&#39;s tied into the GLib main loop. Only using one thread doesn&#39;t<br>
scale extremely well to a large number of clients, but this sounds<br>
like a simple job, so a simple solution will do.<br>
<br>
If the server is behind a NAT (i.e. it can listen on an IP that will<br>
let it connect to other LAN computers but not let the public internet<br>
connect to it), you CAN use the above method (extra security never<br>
hurts), but you could skip the SSL if you want, if you are sure that<br>
no unauthorized persons can connect to your LAN (an unsecured wifi<br>
network would be an example of an *insecure* LAN).<br>
<br>
If you have no idea where to start, start here:<br>
<a href="http://developer.gnome.org/libsoup/stable/libsoup-server-howto.html" target="_blank">http://developer.gnome.org/libsoup/stable/libsoup-server-howto.html</a> .<br>
I would recommend learning the APIs and their semantics, rather than<br>
just blindly copying and pasting from examples.<br>
<br>
BTW, you don&#39;t *have* to use C to write gstreamer apps. Since you<br>
indicated you don&#39;t really know how to program in C, I would suggest<br>
that you don&#39;t, unless you have some specific reason to. I would<br>
suggest Python or Vala  for a task such as this one. You get soup and<br>
gstreamer bindings &quot;for free&quot; in those languages, and the syntax is a<br>
lot friendlier.<br>
<div><br>
<br>
&gt;<br>
&gt; As an example I am using<br>
&gt;  g_object_set (G_OBJECT (decoder2), &quot;max-size-time&quot;, (guint64)300000000,<br>
&gt; NULL);<br>
<br>
</div>...So you already know the only gstreamer-relevant topic in your<br>
question, and this entire post has been off-topic for this list. Just<br>
FYI.<br>
<div><div><br>
&gt;<br>
&gt; and would like to update this function with a new time manually.<br>
&gt;<br>
&gt; I have found some basic telnet socket examples but have no clue on how to<br>
&gt; mix both applications together so I can control gst.<br>
&gt;<br>
&gt; thx<br>
&gt; Art.<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; gstreamer-devel mailing list<br>
&gt; <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><font color="#333333" face="georgia, serif"><b>Michael Niemand</b></font><div><font color="#333333" face="georgia, serif"><b><br>
</b></font><div><font face="georgia, serif" color="#999999">Albusstr. 17</font></div>
<div><font face="georgia, serif" color="#999999">60313 Frankfurt/M</font></div><div><font face="georgia, serif" color="#999999">Germany</font></div><div><font face="georgia, serif" color="#999999"><br></font></div></div>
<div>
<div><font face="georgia, serif" color="#999999">Tel.: <a href="tel:%2B49%20%280%29%2069%20200%20130%2060" value="+496920013060" target="_blank">+49 (0) 69 200 130 60</a></font></div></div><div><div><font face="georgia, serif" color="#999999">Mobile: <a href="tel:%2B49%20%280%29%20171%20645%2029%2007" value="+491716452907" target="_blank">+49 (0) 171 645 29 07</a></font></div>
<div><font face="georgia, serif" color="#999999"><br>
</font></div><div><font face="georgia, serif"><font color="#999999">eMail: </font><a href="mailto:michael.niemand@gmail.com" target="_blank"><font color="#666666">michael.niemand@gmail.com</font></a></font></div><div><font face="georgia, serif" color="#999999"><a href="mailto:sip%3A1406283@sipgate.de" target="_blank">sip:1406283@sipgate.de</a></font></div>

</div><br>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><font color="#333333" face="georgia, serif"><b>Michael Niemand</b></font><div><font color="#333333" face="georgia, serif"><b><br></b></font><div><font face="georgia, serif" color="#999999">Albusstr. 17</font></div>
<div><font face="georgia, serif" color="#999999">60313 Frankfurt/M</font></div><div><font face="georgia, serif" color="#999999">Germany</font></div><div><font face="georgia, serif" color="#999999"><br></font></div></div><div>
<div><font face="georgia, serif" color="#999999">Tel.: +49 (0) 69 200 130 60</font></div></div><div><div><font face="georgia, serif" color="#999999">Mobile: +49 (0) 171 645 29 07</font></div><div><font face="georgia, serif" color="#999999"><br>
</font></div><div><font face="georgia, serif"><font color="#999999">eMail: </font><a href="mailto:michael.niemand@gmail.com" target="_blank"><font color="#666666">michael.niemand@gmail.com</font></a></font></div><div><font face="georgia, serif" color="#999999"><a href="mailto:sip%3A1406283@sipgate.de" target="_blank">sip:1406283@sipgate.de</a></font></div>
</div><br>