Additional Information

From Ekiga

Jump to: navigation, search

This page will hold some FAQ that are not in the official FAQ, or at least not in this form.

Contents

How do I get and compile the SVN version?

SVN access

PTLib and Opal

image:Emblem-important.png PWLib has been renamed under PTLib, and code has been moved from CVS to SVN (Further informations here: http://www.opalvoip.org ) 10-19-2007

To extract the current development release of OPAL and PTLib, use the following commands

svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/ptlib/trunk ptlib
svn co https://opalvoip.svn.sourceforge.net/svnroot/opalvoip/opal/trunk opal

The current development version is always in the trunk.

Ekiga

The following command will check out an up-to-date version of ekiga:

svn co http://svn.gnome.org/svn/ekiga/trunk ekiga

If you would like to compile a specific release, you have to specify the tag which was used for this release. A list of available tags can be seen at

http://svn.gnome.org/viewcvs/ekiga/tags

The following command will retrieve version 2.0.9 (latest reliable/stable release at the time of edit) from SVN, just replace v2_0_9 with the tag of the desired version to get it:

svn co http://svn.gnome.org/svn/ekiga/tags/v2_0_9/ ekiga

A list of currently active branches can be obtained here

Dependencies

Not included specially, the usual tools, like a working C/C++ compiling environment and so...

PTLib

(incomplete list)

  • flex: compile-time dep.
  • bison: compile-time dep.
  • OpenLDAP: compile-time and run-time dep. It needs the headers (-devel packages)

Opal

  • PTLib: ;-)

Ekiga

(incomplete list, what you need from the stuff below depends on your compiling options, too!)

  • autotools: GNU, aka automake, autoconf
  • GLib: GIMP library (headers!)
  • GTK+: GIMP toolkit 2.6 or higher (headers!)
  • libgnome: GNOME library (headers!)
  • gnome-common: gnome-common module to support GNU autotools with some scripts
  • GNOME UI lib: GNOME UI library (headers!)
  • GConf: GNOME config database (headers!)
  • libsdl: SDL library (headers!)
  • libebook: evolution library (headers!)
  • dbus-glib: GLib DBUS bindings (headers!)

Generic compiling instructions

I assume that common options, like --prefix are known and used.

PTLib

PTLibs configure script it mosty plug'n'play. BEWARE: you need to install all headers of libraries you want to use (e.g. OpenLDAP or ALSA), because otherwise PTLib will spit out a message ("checking for ...: no") and silently disable support. The common triple of configure - make - make install can be used to compile (make install as root, if necessary).

configure script knows (among others) the following switches:

  • --enable-opal enables functionality usually needed for Opal compile/run, including for example:
    • OpenLDAP support
    • OpenSSL support
    • SDL support
    • Plugins support
    • STUN support
    • DTMF support
    • WAV file support
    • Audio driver support
    • Video driver support
    • Linux ALSA support
    • OSS support
    • IPv6 support
    • Video file (YUV?) support
  • --disable-plugins disables the generation of plugin-files, instead, all the support of audio/video drivers will be compiled directly into PTLib

Example:

./configure --prefix=/usr --enable-plugins --enable-alsa --enable-internalregex

Opal

Opal library is relatively easy to compile. However, it needs very much RAM to build the optimized version (seems this only happens with GNU C compiler, in a VMWare test here it needed 769MB RAM plus 200MB swap (of 1G) to compile). make debug can be used to not optimize it, though this will make a very big and slow library. No special options needed for now.

Ekiga

Ekiga CVS repository doesn't have configure script prepared. You will need complete GNU autotools-support and intltool, then you can use the autogen.sh script with the same parameters. It will create the configure script, too, and run it. Once created you can of course use this script. The following options (among others) are recognized:

  • --disable-doc disables the generation of the documentation files (readable with GNOME yelp). Saves hassle with gnome-doc-utils.
  • --disable-gnome disables entirely GNOME support
    • it still depends on gnome-doc-utils, use --disable-doc for that
    • it still needs GLib and GTK+ of course...
    • it's experimental and was introduced to make the WIN32-port possible
    • it saves it config AND addressbooks into a FILE (usually ~/.config/ekiga.conf or whatever was reported by GLib)
    • for the moment, expect some weirdness with the UI and some config keys
  • --disable-avahi disables the generation of zeroconf Avahi code ("Contacts near me")
  • --disable-dbus disables generation of Ekiga's DBUS interface (yes, Ekiga can be remote-controlled a bit)

What are additional dependencies of specific video codecs?

FFMPEG (SVN)

FFMPEG (SVN) is required for the following video codecs:

In order to install the latest version of FFMPEG, check out the SVN repository

svn co svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

configure it

./configure --enable-shared

and build it

make

The resoluting library may the be installed

sudo make install

on your system.

x264 (GIT)

x264 (GIT) is required for the following video codecs:

In order to install the latest version of x264 check out the GIT repository

git clone git://git.videolan.org/x264.git

configure it

./configure --enable-shared

and build it

make

The resoluting library may the be installed

sudo make install

on your system.

H.264, MPEG4 Part 2 and H.263+ / H.263-1998 using debian prebuild binaries (maybe working for UBUNTU, too)

  • Don't install self build ffmpeg stuff or move it out of the way (to home or /usr/local/src, make uninstall to be sure)
  • Add a debian 'unofficial' multimedia repository mirror (for Your country or near to) to /etc/apt/sources.list:
deb http://debian.netcologne.de/debian-multimedia.org testing main
#deb http://debian.netcologne.de/debian-multimedia.org unstable main
#deb http://debian.netcologne.de/debian-multimedia.org experimental main
(This mirror for German users only, pls, refer to http://www.debian-multimedia.org for a mirror in Your nation.)
  • Do 'aptitude update'
  • Install the following packages with aptitude (check apt-cache policy <packagename> for interferences):
 libavcodeccvs51     library to encode decode multimedia streams - runtim
 libavcodeccvs51-dev
 libavformatcvs51   ffmpeg file format library
 libavformatcvs51-dev
 libavutilcvs49         avutil shared libraries
 libavutilcvs49-dev 
 
 or ffmpeg + the above -dev packages only (full auto dependencies handling for runtime libs is done by aptitude) 
  • Install latest Ekiga, Opal, PTlib SVN head snapshots (source links above) configured as usual.
  • Build libs with 'make debug', install with 'make install DEBUG=1' if You want to help with testing.
  • Look in the installation and check if codecs are there:
ls -l <opal-configure-prefix>/lib/pwlib/codecs/video
-rwxr-xr-x 1 root root 449803 2007-08-09 22:14 h261-vic_video_pwplugin.so
-rwxr-xr-x 1 root root 278056 2007-08-09 22:14 h263-1998_video_pwplugin.so
-rwxr-xr-x 1 root root 133089 2007-06-17 16:27 h263-ffmpeg_video_pwplugin.so
-rwxr-xr-x 1 root root 190334 2007-08-09 22:14 h264_video_pwplugin_helper
-rwxr-xr-x 1 root root 303613 2007-08-09 22:14 h264_video_pwplugin.so
-rwxr-xr-x 1 root root 190008 2007-08-09 22:14 theora_video_pwplugin.so
Tested positive with yannick (Ekiga SVN <-> Ekiga SVN head), worked.
  • Report faults to IRC or developer mailing list only IF You built with 'make debug'.
  • TODO:
 1. Helping the developers with heavy testing.
 2. Distro maintainers will have to find a way for distributing due to bloody "software patent issues" or hire some M$ 
     lawyers which fought the law and won over Alcatel's MP3 intelectual property at court lately (the Window$ Media 
     Player case).

H.263 using FFMPEG (0.4.7) - patched

There is a specially patched FFMPEG library available for

Precompiled Binary for i386

A binary for i386 of this shared library is available at:

http://www.voxgratia.org/bin/libavcodec-0.4.7-linux.bin.tar.gz 
  • Untar it:
$ tar xfvz ffmpeg-0.4.7-patched.tar.gz
  • Copy the plugin in the right place:

If you are using our devel packages the path should be /usr/lib/pwlib-cvs/ , if you have compiled from SVN source it should be /usr/lib/pwlib/ , let's say you are using our devel packages:

$ cd libavcodec
$ su
# cp libavcodec.so /usr/lib/pwlib-cvs/
  • Set the path:
$ export PWLIBPLUGINDIR=/usr/lib/pwlib-cvs/
  • Run Ekiga

Using our devel packages:

$ ekiga-snapshot
  • Go into Edit → Preferences → Video codecs

You should see h263 in the list.

Compile the h263 plugin

In case you want to build this specific version of FFMPEG for yourself (e.g. you are using a x86_64 system),

  • Grab the patched source:
$ wget http://www.voxgratia.org/bin/ffmpeg-0.4.7-patched.tar.gz
  • Untar it:
$ tar xfvz ffmpeg-0.4.7-patched.tar.gz
  • Install gcc version 3.3 on your system.
  • Go into the source:
$ cd ffmpeg-0.4.7/
  • Use your text editor to:
    • Change "gcc" to "gcc-3.3" in line 24 in configure
    • Add -fPIC in line 10 of libavcodec/Makefile (CFLAGS)
    • Add -fPIC in line 8 of libavformat/Makefile (CFLAGS)
  • Compile:
$ ./configure --enable-shared --disable-a52 --disable-pp --disable-ffserver --disable-ffplay
$ make
  • Copy the plugin in the right place:

If you are using our devel packages the path should be /usr/lib/pwlib-cvs/ , if you have compiled from SVN source it should be /usr/lib/pwlib/ , let's say you are using our devel packages:

$ cd libavcodec
$ su
# cp libavcodec.so /usr/lib/pwlib-cvs/
  • Set the path:
$ export PWLIBPLUGINDIR=/usr/lib/pwlib-cvs/
  • Run Ekiga

Using our devel packages:

$ ekiga-snapshot
  • Go into Edit → Preferences → Video codecs

You should see h263 in the list.

Personal tools