KTp/Components/Call UI: Difference between revisions
< KTp
(Fix formating) |
No edit summary |
||
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
- 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.