Jump to content

KTp/Tasks/NewCallUI: Difference between revisions

From KDE Community Wiki
Diane (talk | contribs)
Diane (talk | contribs)
Line 17: Line 17:
===Building===
===Building===


(Diane's work at  https://github.com/detrout/qt-gstreamer has been merged into the freedesktop master, so it's probably better to use that version)
You will need at least Qt Gstreamer 1.2. If it's not available for your distribution you can obtain it from http://cgit.freedesktop.org/gstreamer/qt-gstreamer/  If you need to build it you probably should use the example cmake command line below.


Install QtGStreamer from  http://cgit.freedesktop.org/gstreamer/qt-gstreamer/
You need at least farstream 0.2.3, telepathy-farstream 0.6 and telepathy-qt 0.9.5


{{Input|1=<nowiki>
{{Input|1=<nowiki>
Line 28: Line 28:
make</nowiki>}}
make</nowiki>}}
   
   
Recompile TpQt from https://github.com/davidedmundson/telepathy-qt Branch farstream-0.2-port
As of  2015 Mar 18, ktp-call-ui (normal KDE repo) master contains the KDE4 version. A plasma active version one should be done soon.
 
Recompile ktp-call-ui (normal KDE repo) branch gst-1.0-port
 
Note: leonhandreke from IRC discovered there's a bug in farstream-0.2 0.2.2 , you'll need at least 0.2.3 for video to work.


===Checking you've done it right===
===Checking you've done it right===

Revision as of 04:22, 19 March 2015

About

Upstream upgraded from Farsight 0.1 to Farsight 0.2

Farsight is a library that manages codec negotiation in telepathy calls.

Farsight 0.1 is built against GStreamer0.10 Farsight 0.2 is built against GStreamer1.0

Farsight 0.1 is old and broken.

In order for us to use Farsight 0.2 we need GStreamer1.0 which means we need QtGStreamer 1.0.

QtGStreamer 1.0 had the annoying problem of not existing. Diane has ported it \o/

Building

You will need at least Qt Gstreamer 1.2. If it's not available for your distribution you can obtain it from http://cgit.freedesktop.org/gstreamer/qt-gstreamer/ If you need to build it you probably should use the example cmake command line below.

You need at least farstream 0.2.3, telepathy-farstream 0.6 and telepathy-qt 0.9.5

git clone http://cgit.freedesktop.org/gstreamer/qt-gstreamer/
mkdir build
cd build
cmake -DQTGSTREAMER_CODEGEN=ON -DQTGSTREAMER_TESTS=ON ..
make

As of 2015 Mar 18, ktp-call-ui (normal KDE repo) master contains the KDE4 version. A plasma active version one should be done soon.

Checking you've done it right

Run

ldd /opt/kde4/lib/kde4/libexec/ktp-call-ui | grep -i gstre

and make sure everything is at 1.0.

If you see 0.10, you've done it wrong.

Runtime Dependencies

The set of available codecs depends on what gstreamer 1.0+ components you have installed. gstreamer1.0-plugins-good should give you enough for audio.

However if you want to do video chats with Jitsi you'll need H.264 support, that is probably available in gstreamer-1.0 libav.

Troubleshooting

SIP and Jingle are complex protocols and the software stack involved in making this work is fairly complex, so things are likely to go wrong.

ktp-call-ui is interacting with telepathy and farstream. Farstream is a set of plugins for gstreamer that provides support for RTP channels and codec negotiation. Somehow it calls libnice to do the NAT traversal.

You can watch ktp-call-ui interact with telepathy and the SIP or XMPP connection manager using ktp-debugger.

I've found you can do

export GST_DEBUG=fsrtpconference_disco:5,fsrtpconference_nego:5
${KDELIB}kde4/libexec//ktp-call-ui --persist

To see some of the underlying negotiation being done by farstream. (5 is DEBUG level).

Work that needs doing

Status Action Notes Developer
DONE Fix QtGStreamer pkgconfig files Merged David's patches <detrout>
TODO Fix QtGStreamer examples <detrout>
DONE Merge QtGStreamer 1.0-proposed None <detrout>
TODO Release QtGStreamer None <detrout>
IN PROGRESS Patch TpQt (done in branch) <[email protected]>
TODO Release TpQt None <[email protected]>
TODO Merge KTp-Call-UI Branch None <[email protected]>
TODO Merge Kaditx's QML Call UI