Open cdelorme opened 11 years ago
You may want to look into the Farstream (formerly Farsight) GObject Introspection API.
http://cgit.collabora.com/git/farstream.git/tree/examples/gui/fs-gui.py
I tried getting this example app running with both farstream-0.1.2 (which is
the farstream
package in Fedora), and farstream 0.2.2 (farstream02 package).
We were able to get some streaming white noise with 0.1, and 0.2 had issues
detecting codecs. Either way, it was able to do the RTP handshake and actually
start streaming raw udp.
This is the output from the latest 0.2 fs-gui:
send_local_codecs
check_send_local_codecs
fs-gui.py:521: Warning: g_value_get_pointer: assertion `G_VALUE_HOLDS_POINT
ER (value)' failed
codecs = self.session.fssession.props.codecs
Codecs are not ready
send_local_codecs
check_send_local_codecs
Codecs are not ready
It feels like it's very close to working, and the Gi/Gst code is exactly what we wanted in OVC years ago.
Obviously rawudp is fine for now, but in the long run it would be awesome to support ZRTP: http://www.zrtp.org There's already a gstreamer filter for it: https://github.com/wernerd/gstzrtp
Unfortunately it doesn't use telepathy to establish the connection, and the code looks like mad science to my eyes.
When my teammate Caleb (from HFOSS) was investigating it he said it seemed to need a specially encrypted value per connection or some such, and we thought about putting it into a constant, but if we want the user to be able to change any settings the code changed.
If there is time I'll look further into it, but I'll probably just use a Call Channel in telepathy to pass the stream.
RTP could be used to encode and further improve upon latency. May not be possible in 0.10 GStreamer connections.