Updated the date in the media-service-upnp.changes file.
[profile/ivi/media-service-upnp.git] / README
1 Introduction:
2 -------------
3
4 Media-service-upnp is a high level media content API that allows
5 client applications to discover, browse and search UPNP and DLNA media
6 servers.  Media-service-upnp is a d-Bus service implemented on top
7 of the GUPnP libraries.  It is designed to be used by media
8 applications such as Digital Media Players (DMPs) or Digital Media
9 Controllers (DMCs).  Media-service-upnp offers such applications a
10 number of benefits.
11
12 1. It provides a language and toolkit neutral API that can be used by
13    any programming environment that supports d-Bus bindings.
14
15 2. It exposes high level APIs that are specifically designed for
16    exploring media servers.
17
18 3. It reduces network traffic by communicating with Digital Media
19    Servers (DMSs) on behalf of its clients.  This means that the
20    device upon which media-service-upnp runs, only downloads and parses
21    a DMS's device and service description files once, regardless of
22    the number of media applications making use of its services.
23
24 4. (TODO) It will isolate clients from the differing behaviour of
25    Digital Media Servers.  For example, some servers support
26    searching while others do not.  When media-service-upnp receives a
27    request from a client that is not supported by the target server,
28    it will perform the request locally.  This feature greatly
29    simplifies the task of writing media applications, as from the
30    client's point of view, there is just one uniform DMS behaviour.
31
32
33 Compilation
34 ------------
35
36 Media-service-upnp is built using autotools and gcc.  It also has a
37 number of dependencies on third party libraries, notably glib, gupnp,
38 gssdp and gupnp-av.  Both development versions of these libraries
39 and autotools need to be installed before media-service-upnp can be
40 compiled.  On Ubuntu 11.10 autotools and the glib development libraries can be
41 installed with the following commands.
42
43 sudo apt-get install autoconf
44 sudo apt-get install libglib2.0-dev
45
46 The GUPnP libraries in Ubuntu are a little out of date so it is best to
47 download the latest versions of these projects from their source code
48 repositories:
49
50 git://git.gnome.org/gupnp
51 git://git.gnome.org/gssdp
52 git://git.gnome.org/gupnp-av
53
54 However, media-service-upnp should compile against older versions of
55 GUPnP, although you might see some warnings.  On Ubuntu the development
56 versions of the GUPnP libraries can be installed as follows:
57
58 sudo apt-get install libgupnp-1.0-dev
59 sudo apt-get install libgupnp-av-1.0-dev
60 sudo apt-get install libgssdp-1.0-dev
61
62 The development version of d-Bus is also required.  This can be
63 installed on Ubuntu by typing:
64
65 sudo apt-get install libdbus-1-dev
66
67 Although media-service-upnp does not link against the d-Bus libraries,
68 the development version of this package is required by its build
69 system to determine where to install the .service files.
70
71
72 Working with the source code repository
73 ---------------------------------------
74
75 Media-service-upnp can be downloaded, compiled and installed as
76 follows:
77
78    Clone repository
79      # git clone git://github.com/01org/media-service-upnp.git
80      # cd media-service-upnp
81
82    Configure and build
83      # ./autoreconf -i
84      # ./configure
85      # make
86
87    Final installation
88      # sudo make install
89
90 These instructions are suitable for users who simply want to install
91 and run media-service-upnp.  However, developers wishing to contribute
92 to the project should follow a separate "Configure and build" step.
93
94    Configure and build
95      # ./bootstrap-configure
96      # make
97
98 The script "bootstrap-configure" cleans the repository, calls
99 autreconf and then invokes configure with proper settings for
100 development.  These settings include the enabling of
101 maintainer mode and debugging.
102
103 Developers can remove autogenerated files with the following command
104
105      # make maintainer-clean
106
107 Configure Options:
108 ------------------
109
110 --enable-werror
111
112 This option is disabled by default.  To enable use --enable-werror.
113 When enabled, all warnings are treated as errors during compilation.
114 Should be enabled during development to ensure that errors do not
115 creep into the code base.  This option is enabled by
116 bootstrap-configure.
117
118 --enable-debug
119
120 This option is disabled by default.  To enable use
121 --enable-debug. When enabled, the make files produce debug builds.
122 This option is enabled by bootstrap-configure.
123
124 --enable-optimization
125
126 This option is enabled by default. To disable use
127 --disable-optimization. When enabled it turns on compiler
128 optimizations. Disable = -O0, enable = -O2.