doxygen.dox.in 5.24 KB
Newer Older
aymeric's avatar
aymeric committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
/**
 * @mainpage
 * Project Website: http://savannah.gnu.org/projects/linphone
 *
 * @verbinclude README
 *
 */

/** 
 * @defgroup mediastreamer2 mediastreamer2 library - a modular sound and video processing and streaming
 * @brief mediastreamer2 Version @MEDIASTREAMER_VERSION@
 *
 * @see http://savannah.gnu.org/projects/linphone
 *
 * @section what_is_it What is mediastreamer2
 *
 * mediastreamer2 is a powerful engine to make audio and video streams.
 * mediastreamer2 is GPL (COPYING). Please understand the licencing details
 * before using it!
 * 
 * For any use of this library beyond the rights granted to you by the
 * GPL license, please contact antisip at <jack@atosc.org>.
 * 
 * @section definitions Some definitions. 
 *
 * Filter:
 * A filter is a mediastreamer2 component that process data. A filter
 * have 0 or several INPUT pins and 0 or several OUTPUT pins.
 * Here is a list of possible use of filters:
 * <PRE>
 *   capture audio or video data.
 *   play audio or display video data.
 *   send or receive RTP data.
 *   encode or decode audio or video data.
 *   transform (resize video, resample audio...) data.
 *   duplicate any kind of data.
 *   mix audio/video data.
 * </PRE>
 * Graph:
 * A graph is a manager of filters connected together. It will transfer
 * data from OUTPUT pins to INPUT pins and will be responsible for
 * running filters.
 *
 * @section when_do_i_use_mediastreamer2 How do I use mediastremer2? 
 * 
 * Mediastreamer2 can be used for a lot of different purpose. The primary
 * use is to manage RTP audio and video session. You will need to use
 * the API to build filters, link them together in a graph. Then the
 * ticker API will help you to start and stop the graph.
 * 
 * Basic graph sample:
 *
 * <PRE>
 *  AUDIO CAPTURE   -->   ENCODE  -->     RTP
 *      FILTER      -->   FILTER  -->    FILTER
 * </PRE>
 *
 *
 * The above graph is composed of three filters. The first one has no input:
 * tt captures audio data directly from the drivers and provide it to the
 * OUTPUT pin. This data is sent to the INPUT pin of the encoder which of
 * course encode the data and send it to its OUTPUT pin. This pin is connected
 * to the INPUT pin of a filter capable to build and send RTP packets.
 *
 * The modular design helps you to encode in many different format just by
 * replacing the "ENCODE FILTER" with another one. mediastreamer2 contains
 * internal support for g711u, g711a, speex and gsm. You can add new encoding
 * format by implementing new filters which can then be dynamically loaded.
 *
 * @section list_of_filters List of existing filters.
 *
 * mediastreamer2 already provides a large set of filters. Here is a complete
 * list of built-in filters.
 *
 * <PRE>
 * All supported platforms:
 *   RTP receiver
 *   RTP sender
 *   tee (duplicate data)
 *
 * Audio Filters:
 *   audio capture
 *   audio playback
 *     mme API (windows)
 *     alsa API (linux)
 *     oss API (linux)
 *     arts API (linux)
 *     portaudio API (macosx and other)
 *   macsnd API (native macosx API -please do more testing...-)
 *   several audio encoder/decoder: PCMU, PCMA, speex, gsm
 *   wav file reader.
 *   wav file recorder.
 *   resampler.
 *   conference bridge.
 *   volume analyser.
 *   acoustic echo canceller.
 *   dtmf generation filter.
 *
 * Video Filters:
 *   video capture
 *     v4w API (windows)
 *     directshow API (windows)
 *     video4linux API (linux)
 *   video display
 *     v4w API (windows)
 *     SDL API (linux, macosx...)
 *   several audio encoder/decoder: H263-1998, MP4V-ES, theora
 *   image resizer.
 *   format converter. (RBG24, I420...)
 *
 * Plugin Filters:
 *  iLBC decoder/encoder.
 * </PRE>
 *
 * @section what_thanks Thanks
 *
 * Thanks to all the contributors and to all bug reporters.
 * Enjoy mediastreamer2!
 *
 */

/**
 * @defgroup mediastreamer2_api Mediastreamer2 API
 * @brief All API to manage mediastreamer2 library.
 *
 */

/**
 * @defgroup mediastreamer2_init Init API - manage mediastreamer2 library.
 * @ingroup mediastreamer2_api
 * @brief Init API to manage mediastreamer2 library.
 *
 * This file provide the API needed to initialize
 * and reset the mediastreamer2 library.
 */

/**
 * @defgroup mediastreamer2_soundcard Sound Card API - manage audio capture/play filters.
 * @ingroup mediastreamer2_api
 * @brief Sound Card API to manage audio capture/play filters.
 *
 * This file provide the API needed to manage
 * soundcard filters.
 */

/**
 * @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
 * @ingroup mediastreamer2_api
 * @brief Filter API to manage mediastreamer2 filters.
 *
 * This file provide the API needed to create, link,
 * unlink, find and destroy filter.
 *
 * It also provides definitions if you wish to implement
 * your own filters.
 */

/**
 * @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
 * @ingroup mediastreamer2_api
 * @brief Ticker API to manage mediastreamer2 graphs.
 *
 * This file provide the API needed to create, start
 * and stop a graph.
 */


/** 
 * @page mediastreamer2_readme README 
 * @verbinclude README
 */

/** 
 * @page mediastreamer2_install INSTALL 
 * @verbinclude INSTALL
 */

/**
 * @page mediastreamer2_license COPYING 
 * @verbinclude COPYING
 */

/** 
 * @page mediastreamer2_changelog ChangeLog 
 * @verbinclude ChangeLog
 */