3 * Project Website: http://savannah.gnu.org/projects/linphone
10 * @defgroup mediastreamer2 mediastreamer2 library - a modular sound and video processing and streaming
11 * @brief mediastreamer2 Version @MEDIASTREAMER_VERSION@
13 * @see http://savannah.gnu.org/projects/linphone
15 * @section what_is_it What is mediastreamer2
17 * mediastreamer2 is a powerful engine to make audio and video streams.
18 * mediastreamer2 is GPL (COPYING). Please understand the licencing details
21 * For any use of this library beyond the rights granted to you by the
22 * GPL license, please contact antisip at <jack@atosc.org>.
24 * @section definitions Some definitions.
27 * A filter is a mediastreamer2 component that process data. A filter
28 * have 0 or several INPUT pins and 0 or several OUTPUT pins.
29 * Here is a list of possible use of filters:
31 * capture audio or video data.
32 * play audio or display video data.
33 * send or receive RTP data.
34 * encode or decode audio or video data.
35 * transform (resize video, resample audio...) data.
36 * duplicate any kind of data.
37 * mix audio/video data.
40 * A graph is a manager of filters connected together. It will transfer
41 * data from OUTPUT pins to INPUT pins and will be responsible for
44 * @section when_do_i_use_mediastreamer2 How do I use mediastremer2?
46 * Mediastreamer2 can be used for a lot of different purpose. The primary
47 * use is to manage RTP audio and video session. You will need to use
48 * the API to build filters, link them together in a graph. Then the
49 * ticker API will help you to start and stop the graph.
54 * AUDIO CAPTURE --> ENCODE --> RTP
55 * FILTER --> FILTER --> FILTER
59 * The above graph is composed of three filters. The first one has no input:
60 * tt captures audio data directly from the drivers and provide it to the
61 * OUTPUT pin. This data is sent to the INPUT pin of the encoder which of
62 * course encode the data and send it to its OUTPUT pin. This pin is connected
63 * to the INPUT pin of a filter capable to build and send RTP packets.
65 * The modular design helps you to encode in many different format just by
66 * replacing the "ENCODE FILTER" with another one. mediastreamer2 contains
67 * internal support for g711u, g711a, speex and gsm. You can add new encoding
68 * format by implementing new filters which can then be dynamically loaded.
70 * @section list_of_filters List of existing filters.
72 * mediastreamer2 already provides a large set of filters. Here is a complete
73 * list of built-in filters.
76 * All supported platforms:
79 * tee (duplicate data)
88 * portaudio API (macosx and other)
89 * macsnd API (native macosx API -please do more testing...-)
90 * several audio encoder/decoder: PCMU, PCMA, speex, gsm
96 * acoustic echo canceller.
97 * dtmf generation filter.
102 * directshow API (windows)
103 * video4linux API (linux)
106 * SDL API (linux, macosx...)
107 * several audio encoder/decoder: H263-1998, MP4V-ES, theora
109 * format converter. (RBG24, I420...)
112 * iLBC decoder/encoder.
115 * @section what_thanks Thanks
117 * Thanks to all the contributors and to all bug reporters.
118 * Enjoy mediastreamer2!
123 * @defgroup mediastreamer2_api Mediastreamer2 API
124 * @brief All API to manage mediastreamer2 library.
129 * @defgroup mediastreamer2_init Init API - manage mediastreamer2 library.
130 * @ingroup mediastreamer2_api
131 * @brief Init API to manage mediastreamer2 library.
133 * This file provide the API needed to initialize
134 * and reset the mediastreamer2 library.
138 * @defgroup mediastreamer2_soundcard Sound Card API - manage audio capture/play filters.
139 * @ingroup mediastreamer2_api
140 * @brief Sound Card API to manage audio capture/play filters.
142 * This file provide the API needed to manage
147 * @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
148 * @ingroup mediastreamer2_api
149 * @brief Filter API to manage mediastreamer2 filters.
151 * This file provide the API needed to create, link,
152 * unlink, find and destroy filter.
154 * It also provides definitions if you wish to implement
159 * @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
160 * @ingroup mediastreamer2_api
161 * @brief Ticker API to manage mediastreamer2 graphs.
163 * This file provide the API needed to create, start
169 * @page mediastreamer2_readme README
170 * @verbinclude README
174 * @page mediastreamer2_install INSTALL
175 * @verbinclude INSTALL
179 * @page mediastreamer2_license COPYING
180 * @verbinclude COPYING
184 * @page mediastreamer2_changelog ChangeLog
185 * @verbinclude ChangeLog