Difference between revisions of "KTp/Components/Call UI"

< KTp
Jump to: navigation, search
(Fix formating)
Line 20: Line 20:
  
 
* [https://bugzilla.gnome.org/show_bug.cgi?id=629902 empathy's new call UI mockup]
 
* [https://bugzilla.gnome.org/show_bug.cgi?id=629902 empathy's new call UI mockup]
 +
 +
== Dependency hell ==
 +
 +
* telepathy-qt:
 +
** Provides Qt high level api to telepathy.
 +
** http://cgit.freedesktop.org/telepathy/telepathy-qt4/
 +
 +
* telepathy-qt-yell:
 +
** Provides Qt high level api for the Call interface (will be merged to tp-qt at some point)
 +
** http://cgit.freedesktop.org/telepathy/telepathy-qt4-yell/
 +
 +
* qt-gstreamer:
 +
** Provides Qt bindings for GStreamer
 +
** http://cgit.freedesktop.org/gstreamer/qt-gstreamer
 +
 +
* farsight2 (soon to be farstream):
 +
** This is the library and gstreamer elements that do the actual media streaming.
 +
** http://cgit.collabora.com/git/farsight2.git/
 +
 +
* telepathy-farstream:
 +
** Provides the glue between telepathy CMs and farsight2/farstream.
 +
** http://cgit.freedesktop.org/telepathy/telepathy-farstream/
 +
** (Note: use the telepathy-farstream-0.1 branch with farsight2 / master is to be used with farstream)
 +
 +
 +
=== How it all blends together ===
 +
 +
telepathy-qt-yell provides the Tpy::CallChannel class, which wraps the Channel.Type.Call d-bus object. From this object, we create a TfChannel (provided by tp-farstream) and we wrap it in a QTf::Channel object (provided by libqtf inside the call-ui repository; this is qt-gstreamer based bindings for tp-farstream). This TfChannel object does all the internal communication with the CM and constructs some GStreamer bin (using farsight2/farstream internally) that will do all the streaming. On this bin, we connect our GStreamer sources and sinks using the QtGStreamer API.

Revision as of 14:16, 15 December 2011

The plan

  • The current code is wrong by design, needs to be replaced.
  • Build a simple Qt library that exports the whole call application logic with a QML-izable interface, using QtGStreamer/farsight/farsight utils/telepathy-qt4.
  • Build a GUI that possibly consists of a standard KXmlGuiWindow that embeds a QDeclarativeView, which implements the call GUI.

Blockers

  • Needs telepathy-qt4 to export interfaces for the Call spec.
    • tp-qt4-yell exports them now. will soon be merged to tp-qt4.
  • Needs a QML video widget in QtGStreamer.
    • this is work in progress.
    • we need it if and only if we build the interface using QML.

GUI Ideas

Dependency hell


How it all blends together

telepathy-qt-yell provides the Tpy::CallChannel class, which wraps the Channel.Type.Call d-bus object. From this object, we create a TfChannel (provided by tp-farstream) and we wrap it in a QTf::Channel object (provided by libqtf inside the call-ui repository; this is qt-gstreamer based bindings for tp-farstream). This TfChannel object does all the internal communication with the CM and constructs some GStreamer bin (using farsight2/farstream internally) that will do all the streaming. On this bin, we connect our GStreamer sources and sinks using the QtGStreamer API.


Content is available under Creative Commons License SA 4.0 unless otherwise noted.