• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

build/H03-May-2022-3,8933,129

cmake/H03-May-2022-1,6851,503

debian/H21-Jul-2017-302221

help/H03-May-2022-2,9192,291

include/H03-May-2022-11,2304,519

java/H21-Jul-2017-2,6411,810

m4/H21-Jul-2017-884815

po/H21-Jul-2017-4,0393,164

src/H03-May-2022-101,15277,754

tester/H03-May-2022-6,7535,338

tools/H03-May-2022-4,8773,934

.clang-formatH A D06-Apr-20171.9 KiB6564

.cprojectH A D06-Apr-20176.5 KiB9290

.projectH A D06-Apr-2017766 2726

ABOUT-NLSH A D06-Apr-20170

AUTHORSH A D06-Apr-201751 11

COPYINGH A D06-Apr-201717.6 KiB341281

ChangeLogH A D06-Apr-2017216 85

Makefile.amH A D23-Jun-20174.6 KiB163135

NEWSH A D21-Jul-20177.6 KiB205173

README-ANDROIDH A D06-Apr-2017324 119

README.mdH A D20-Jul-20175.8 KiB138100

acinclude.m4H A D06-Apr-201710.7 KiB316273

autogen.shH A D06-Apr-20171.4 KiB6346

config.rpathH A D06-Apr-201715.8 KiB615517

configure.acH A D23-Jun-201737.2 KiB1,3371,152

define-filters.awkH A D06-Apr-2017110 11

define-ms_base_filter_descs.awkH A D06-Apr-2017109 11

define-ms_voip_filter_descs.awkH A D06-Apr-2017109 11

extract-filters-names.awkH A D06-Apr-201772 11

mediastreamer-config.h.cmakeH A D06-Apr-20172.6 KiB7364

mediastreamer.pc.inH A D06-Apr-2017332 1210

mediastreamer2.specH A D21-Jul-20172.9 KiB10470

mediastreamer2.spec.inH A D06-Apr-20172.7 KiB9577

pkg.listH A D06-Apr-2017924 4432

README-ANDROID

1			   MEDIASTREAMER for ANDROID
2			****************************
3
4To build libmediastreamer for Android, you must:
51) clone the linphone-android repository:
6	git clone git://git.linphone.org/linphone-android.git
72) follow the README file of linphone-android and build using:
8	$ make mediastreamer2-sdk
9   instead of:
10	$ make
11

README.md

1Mediastreamer
2=============
3
4* Project    : mediastreamer2 - a modular sound and video processing and streaming
5* Email      : <simon.morlat@linphone.org>
6* License    : GPLv2(or later) or Commercial licensing
7* Home Page  : <http://www.mediastreamer2.com>
8
9Commercial support and licensing is provided by Belledonne Communications
10<http://www.belledonne-communications.com>
11
12Mediastreamer2 is a library to make audio and
13video real-time streaming and processing. Written in pure C,
14it is based upon the ortp library.
15
16Design
17------
18
19Using mediastreamer2 will allow you to chain filters in a graph. Each
20filter will be responsible for doing some kind of processing and will
21deliver data to the next filter. As an example, you could get some
22data from network and unpack it in an RTP filter. This RTP filter will
23deliver the data to a decoder (speex, G711...) which will deliver it
24to a filter that is able to play the PCM data or record it into a .wav
25file.
26
27There is a doxygen documentation for more information.
28
29Compilation and installation
30----------------------------
31
32### Required dependencies:
33
34- **bctoolbox[1]**: portability layer
35- **oRTP[2]**: RTP stack
36- **libspeexdsp**: echo cancelation feature (disablable)
37- **ffmpeg** or libav: H263 codec, MPEG4 decodec and RAW picture rescaling (disablable)
38
39### Optional dependencies
40
41- **libsrtp** for SRTP encryption
42- **bzrtp[3]** for ZRTP encryption
43- **libgsm**: GSM codecs support
44- **libbv16**: BV16 codec support
45- **libopus** for Opus encoding and decoding
46- **libspeex**: SPEEX codec support
47- **libalsa**: ALSA support (GNU/Linux only)
48- **libpulse**: PulseAudio support (GNU/Linux only)
49- **libv4l2**: video capture (GNU/Linux only;disablable)
50- **libx11** and libxv: video display with X11 (GNU/Linux only)
51- **libglx**: video dispaly with GLX (GNU/Linux only)
52- **libvpx** for VP8 encoding and decoding
53- **libmastroska-c** for recording/playing of audio/video streams
54- **libturbojpeg**: video screenshot feature
55
56### Build instructions:
57
58The Autotools way is deprecated. Use [CMake](https://cmake.org) to configure the source code.
59
60	cmake . -DCMAKE_INSTALL_PREFIX=<prefix> -DCMAKE_PREFIX_PATH=<search_path>
61
62	make
63	make install
64
65#### Supported opitions:
66
67- `CMAKE_INSTALL_PREFIX=<string>` : install prefix
68- `CMAKE_PREFIX_PATH=<string>`    : column-separated list of prefixes where to search for dependencies
69- `ENABLE_SHARED=NO`              : do not build the shared library
70- `ENABLE_STATIC=NO`              : do not build the static library
71- `ENABLE_STRICT=NO`              : build without strict compilation flags (-Wall -Werror)
72- `ENABLE_UNIT_TESTS=YES`         : build tester binaries
73- `ENABLE_DOC=NO`                 : do not generate the documentation
74- `ENABLE_DEBUG_LOGS=YES`         : turn on debug-level logs
75
76
77#### Note for packagers:
78
79Our CMake scripts may automatically add some paths into research paths of generated binaries.
80To ensure that the installed binaries are striped of any rpath, use `-DCMAKE_SKIP_INSTALL_RPATH=ON`
81while you invoke cmake.
82
83Rpm packaging
84mediastremer2 rpm can be generated with cmake3 using the following command:
85mkdir WORK
86cd WORK
87cmake3 ../
88make package_source
89rpmbuild -ta --clean --rmsource --rmspec mediastreamer-<version>-<release>.tar.gz
90
91
92
93Environment variables used by mediastreamer2
94--------------------------------------------
95
96`MS2_RTP_FIXED_DELAY` : default value is 0. When set to 1, RTP packets belonging from one tick execution are actually sent at the beginning of the next tick.
97This allows a zero jitter in the RTP timing at sender side. This is to be used for measurements, this mode has no interest for doing a real conversation and does not improve
98quality.
99
100`MS_AUDIO_PRIO`, `MS_VIDEO_PRIO` : define the scheduling policy of the audio and video threads (MSTicker objects). Possible values are 'NORMAL', 'HIGH', 'REALTIME'.
101The corresponding behavior is as follows:
102
103	+-------------------+------------------------+------------------------+-------------------------+
104	| Priority type     |     GNU/Linux          |        MacOS           |         Windows         |
105	+-------------------+------------------------+------------------------+-------------------------+
106	| NORMAL            | SCHED_OTHER, def. prio | SCHED_OTHER, def. prio | Default priority.       |
107	| HIGH              | SCHED_RR, max prio     | SCHED_RR, max prio     | THREAD_PRIORITY_HIGHEST |
108	| REALTIME          | SCHED_FIFO, max prio   | SCHED_FIFO, max prio   | THREAD_PRIORITY_HIGHEST |
109	+-------------------+------------------------+------------------------+-------------------------+
110
111Note that `SCHED_FIFO` leaves entire control of the cpu to the mediastreamer2 thread. In case of CPU overload
112due to heavy encoder processing for example, a mono-core machine will stop responding.
113
114- `MS_TICKER_SCHEDPRIO` : UNIX only. It is an integer defining the thread priority to be used by MSTicker. Values
115                          are OS specific and depend on the scheduling policy `SCHED_FIFO`, `SCHED_RR` or `SCHED_OTHER`.
116- `MS2_OPUS_COMPLEXITY` : opus codec complexity parameter. A value of -1 stands for mediastreamer2's own default value.
117                          Otherwise it must be between 0 and 10.
118- `MEDIASTREAMER_DEBUG` : when set to 1, verbose logging is activated by default.
119- `DISPLAY`             : used by video display filters relying on X11 (GNU/Linux only).
120
121
122
123Contact information
124-------------------
125
126Use the *linphone* mailing list for question about mediastreamer2.
127  <linphone-developers@nongnu.org>.
128Subscribe here:
129  <https://savannah.nongnu.org/mail/?group=linphone>
130
131
132--------------------------------------
133
134
135- [1] git://git.linphone.org/bctoolbox.git *or* <http://www.linphone.org/releases/sources/bctoolbox>
136- [2] git://git.linphone.org/ortp.git *or* <http://www.linphone.org/releases/sources/ortp>
137- [3] git://git.linphone.org/bzrtp.git *or* <http://www.linphone.org/releases/sources/bzrtp>
138