]> sjero.net Git - linphone/blob - linphone/mediastreamer2/help/doxygen.dox.in
remote ortp and add it as a submodule instead.
[linphone] / linphone / mediastreamer2 / help / doxygen.dox.in
1 /**
2  * @mainpage
3  * Project Website: http://savannah.gnu.org/projects/linphone
4  *
5  * @verbinclude README
6  *
7  */
8
9 /** 
10  * @defgroup mediastreamer2 mediastreamer2 library - a modular sound and video processing and streaming
11  * @brief mediastreamer2 Version @MEDIASTREAMER_VERSION@
12  *
13  * @see http://savannah.gnu.org/projects/linphone
14  *
15  * @section what_is_it What is mediastreamer2
16  *
17  * mediastreamer2 is a powerful engine to make audio and video streams.
18  * mediastreamer2 is GPL (COPYING). Please understand the licencing details
19  * before using it!
20  * 
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>.
23  * 
24  * @section definitions Some definitions. 
25  *
26  * Filter:
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:
30  * <PRE>
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.
38  * </PRE>
39  * Graph:
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
42  * running filters.
43  *
44  * @section when_do_i_use_mediastreamer2 How do I use mediastremer2? 
45  * 
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.
50  * 
51  * Basic graph sample:
52  *
53  * <PRE>
54  *  AUDIO CAPTURE   -->   ENCODE  -->     RTP
55  *      FILTER      -->   FILTER  -->    FILTER
56  * </PRE>
57  *
58  *
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.
64  *
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.
69  *
70  * @section list_of_filters List of existing filters.
71  *
72  * mediastreamer2 already provides a large set of filters. Here is a complete
73  * list of built-in filters.
74  *
75  * <PRE>
76  * All supported platforms:
77  *   RTP receiver
78  *   RTP sender
79  *   tee (duplicate data)
80  *
81  * Audio Filters:
82  *   audio capture
83  *   audio playback
84  *     mme API (windows)
85  *     alsa API (linux)
86  *     oss API (linux)
87  *     arts API (linux)
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
91  *   wav file reader.
92  *   wav file recorder.
93  *   resampler.
94  *   conference bridge.
95  *   volume analyser.
96  *   acoustic echo canceller.
97  *   dtmf generation filter.
98  *
99  * Video Filters:
100  *   video capture
101  *     v4w API (windows)
102  *     directshow API (windows)
103  *     video4linux API (linux)
104  *   video display
105  *     v4w API (windows)
106  *     SDL API (linux, macosx...)
107  *   several audio encoder/decoder: H263-1998, MP4V-ES, theora
108  *   image resizer.
109  *   format converter. (RBG24, I420...)
110  *
111  * Plugin Filters:
112  *  iLBC decoder/encoder.
113  * </PRE>
114  *
115  * @section what_thanks Thanks
116  *
117  * Thanks to all the contributors and to all bug reporters.
118  * Enjoy mediastreamer2!
119  *
120  */
121
122 /**
123  * @defgroup mediastreamer2_api Mediastreamer2 API
124  * @brief All API to manage mediastreamer2 library.
125  *
126  */
127
128 /**
129  * @defgroup mediastreamer2_init Init API - manage mediastreamer2 library.
130  * @ingroup mediastreamer2_api
131  * @brief Init API to manage mediastreamer2 library.
132  *
133  * This file provide the API needed to initialize
134  * and reset the mediastreamer2 library.
135  */
136
137 /**
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.
141  *
142  * This file provide the API needed to manage
143  * soundcard filters.
144  */
145
146 /**
147  * @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
148  * @ingroup mediastreamer2_api
149  * @brief Filter API to manage mediastreamer2 filters.
150  *
151  * This file provide the API needed to create, link,
152  * unlink, find and destroy filter.
153  *
154  * It also provides definitions if you wish to implement
155  * your own filters.
156  */
157
158 /**
159  * @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
160  * @ingroup mediastreamer2_api
161  * @brief Ticker API to manage mediastreamer2 graphs.
162  *
163  * This file provide the API needed to create, start
164  * and stop a graph.
165  */
166
167
168 /** 
169  * @page mediastreamer2_readme README 
170  * @verbinclude README
171  */
172
173 /** 
174  * @page mediastreamer2_install INSTALL 
175  * @verbinclude INSTALL
176  */
177
178 /**
179  * @page mediastreamer2_license COPYING 
180  * @verbinclude COPYING
181  */
182
183 /** 
184  * @page mediastreamer2_changelog ChangeLog 
185  * @verbinclude ChangeLog
186  */
187