README.md 3.48 KB
Newer Older
Erwan Croze's avatar
Erwan Croze committed
1 2
[![pipeline status](https://gitlab.linphone.org/BC/public/ortp/badges/master/pipeline.svg)](https://gitlab.linphone.org/BC/public/ortp/commits/master)

François Grisez's avatar
François Grisez committed
3 4 5
oRTP
====

aymeric's avatar
aymeric committed
6
What is it ?
François Grisez's avatar
François Grisez committed
7
------------
aymeric's avatar
aymeric committed
8

9
oRTP is a GPLv2 licensed C library implementing the RTP protocol (rfc3550). It is available
aymeric's avatar
aymeric committed
10 11
for most unix clones (primilarly Linux and HP-UX), and Microsoft Windows.

12 13 14 15 16
Prior to version 1.0.0, oRTP was licensed under LGPLv2. Due to inclusion of new code licensed under GPLv2, oRTP has become GPLv2.
For the sake of clarity, all source files headers were updated to mention the GPLv2 only.
oRTP versions prior to 1.0.0 of course remain LGPLv2.


aymeric's avatar
aymeric committed
17
What are the build prequisites ?
François Grisez's avatar
François Grisez committed
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
--------------------------------

*bctoolbox[1]*: portability layer


What build instructions
-----------------------

Autotools procedure is deprecated. Use CMake to configure the source code.

	cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_paths>
	
	make
	make install

### Options:

- `CMAKE_INSTALL_PREFIX=<string>` : install prefix
- `CMAKE_PREFIX_PATH=<string>`    : column-separated list of prefixes where to search for dependencies
- `ENABLE_SHARED=NO`              : do not build the shared library
- `ENABLE_STATIC=NO`              : do not build the static library
- `ENABLE_STRICT=NO`              : build without strict compilation flags (-Wall -Werror)
- `ENABLE_TESTS=YES`              : build tester binaries
- `ENABLE_DOC=NO`                 : do not generate the documentation
- `ENABLE_DEBUG_LOGS=YES`         : turn on debug-level logs


### Note for packagers:

Our CMake scripts may automatically add some paths into research paths of generated binaries.
To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON`
while you invoke cmake.

51 52 53 54 55 56 57 58
Rpm packaging
ortp rpm can be generated with cmake3 using the following command:
mkdir WORK
cd WORK
cmake3 ../
make package_source
rpmbuild -ta --clean --rmsource --rmspec ortp-<version>-<release>.tar.gz

aymeric's avatar
aymeric committed
59 60

How do you I test ?
François Grisez's avatar
François Grisez committed
61
-------------------
aymeric's avatar
aymeric committed
62 63 64

There are shorts and easy to understand programs given with the library. There are good example
to understand how to use oRTP api.
François Grisez's avatar
François Grisez committed
65

aymeric's avatar
aymeric committed
66 67 68 69 70 71 72
- rtpsend : sends a stream from a file on disk.
- rtprecv : receives a stream and writes it to disk.
- mrtpsend: sends multiple streams from a file on disk to a range of remote port.
- mrtprecv:	receives mutiple streams on a range of local ports and writes them on disk.


Is there some documentation ?
François Grisez's avatar
François Grisez committed
73
-----------------------------
aymeric's avatar
aymeric committed
74 75 76 77 78 79

See the doxygen generated API documentation in docs/html. Program examples are a very good
starting point.


What are the current features ?
François Grisez's avatar
François Grisez committed
80 81 82 83 84 85 86
-------------------------------

- works with ipv6
- packet scheduler
- adaptive jitter compensation
- automatic sending of RTCP SR or RR coumpounded with a SDES
- RTCP parser API
aymeric's avatar
aymeric committed
87 88 89


What are the planned features ?
François Grisez's avatar
François Grisez committed
90 91 92
-------------------------------

- multi-endpoint rtp sessions.
aymeric's avatar
aymeric committed
93 94 95


In which application oRTP is being used ?
François Grisez's avatar
François Grisez committed
96 97 98 99 100
-----------------------------------------

- linphone (http://www.linphone.org) was the first.
- the OCMP platform (a Hewlett Packard product).

aymeric's avatar
aymeric committed
101 102

How to compile my program using ortp ?
François Grisez's avatar
François Grisez committed
103
--------------------------------------
aymeric's avatar
aymeric committed
104 105 106 107 108
gcc -o myprogram  `pkg-config --cflags ortp` myprogram.c  \
			`pkg-config --libs ortp`


What about Windows port ?
François Grisez's avatar
François Grisez committed
109
-------------------------
aymeric's avatar
aymeric committed
110 111 112
There are instructions and Microsoft Visual C++ project files in build/win32native/oRTP.


François Grisez's avatar
François Grisez committed
113 114 115 116
----------------------------------------


[1] git://git.linphone.org/bctoolbox.git *or* <http://www.linphone.org/releases/sources/bctoolbox>