Ignore:
Timestamp:
Jun 20, 2008 9:39:02 PM (16 years ago)
Author:
bennylp
Message:

Updated doxygen documentations

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/include/pjmedia/doxygen.h

    r1450 r2037  
    2525 */ 
    2626 
    27 /** 
    28  * @defgroup PJMEDIA PJMEDIA Library 
    29  */ 
    3027 
    3128/*////////////////////////////////////////////////////////////////////////// */ 
     
    4340 * terms, and featuring small footprint and good extensibility and portability. 
    4441 * 
    45  * Please click the <A HREF="modules.htm"><b>Modules</b></A> link on top 
     42 * Please click the <A HREF="modules.htm"><b>Table of Contents</b></A> link on top 
    4643 * of this page to get the complete features currently present in PJMEDIA. 
    4744 * 
    48  * Also please read the documentation about @ref PJMEDIA_PORT_CONCEPT, 
     45 * Also please read the documentation about @ref PJMEDIA_PORT 
    4946 * which is a major concept that is used for implementing many objects in  
    5047 * the library. 
     
    8077 */ 
    8178 
    82 /** 
    83  * @page pjmed_keywords_page Features Index 
    84  * @section pjmed_keywords Features Index 
    85  * 
    86  * <b>PJMEDIA features</b>, in no particular order (click to go to the relevant 
    87  * documentation):  
    88  * @ref lic_stuffs "Open Source media stack",  
    89  * @ref PJMEDIA_CLOCK,  
    90  * @ref PJMEDIA_CODEC, 
    91  * @ref enc_dec_codec, 
    92  * @ref plc_codec,  
    93  * @ref PJMEDIA_CONF,  
    94  * @ref PJMED_G711 "G711/G.711 (PCMA/PCMU) codec", 
    95  * @ref PJMED_GSM "GSM codec",  
    96  * @ref PJMED_L16 "linear codecs (multiple clockrate, stereo support, etc)", 
    97  * @ref PJMED_SPEEX "Speex codec (narrowband, wideband, ultra-wideband)", 
    98  * @ref PJMED_JBUF "portable, adaptive jitter buffer with PLC support", 
    99  * @ref PJMEDIA_MASTER_PORT,  
    100  * @ref PJMEDIA_NULL_PORT, 
    101  * @ref PJMED_PLC,  
    102  * @ref PJMEDIA_PORT_CONCEPT,  
    103  * @ref PJMEDIA_PORT_CLOCK, 
    104  * @ref PJMEDIA_RESAMPLE "high quality resampling/sampling rate conversion", 
    105  * @ref PJMEDIA_RESAMPLE_PORT,  
    106  * @ref PJMED_RTCP "small footprint, portable RTCP with media quality statistics", 
    107  * @ref PJMED_RTP "very small footprint, modular, DSP ready RTP implementation",  
    108  * @ref PJMEDIA_SDP "modular, small footprint, open source SDP implementation",  
    109  * @ref PJMEDIA_SDP_NEG "modular SDP negotiation/negotiator abstraction", 
    110  * @ref PJMED_SES "media session abstraction", 
    111  * @ref PJMEDIA_SILENCEDET, 
    112  * @ref PJMED_SND "portable audio/sound hardware/device abstraction for Linux, Unix, Windows, DirectSound, WinCE, Windows Mobile, MacOS X, etc.",  
    113  * @ref PJMED_SND_PORT, 
    114  * @ref PJMEDIA_SPLITCOMB,  
    115  * @ref PJMED_STRM "remote stream",  
    116  * @ref PJMEDIA_TRANSPORT_H "custom media transport abstraction", 
    117  * @ref PJMEDIA_TRANSPORT_UDP,  
    118  * @ref PJMEDIA_FILE_PLAY "WAV/WAVE file playback",  
    119  * @ref PJMEDIA_FILE_REC "WAV/WAVE file recording/capture", 
    120  * @ref PJMEDIA_WAVE "portable WAV/WAVE header manipulation" 
    121  */ 
    122  
    123  
    124 /** 
    125  * @page pjmedia_codec_page Using PJMEDIA-CODEC 
    126  * 
    127  * Before application can use a codec, it needs to initialize and register 
    128  * the codec to the codec manager. This is accomplished with using 
    129  * constructs like the following: 
    130  * 
    131  \code 
    132     #include <pjmedia.h> 
    133     #include <pjmedia-codec.h> 
    134  
    135     init_codecs( pjmedia_endpt *med_ept ) 
    136     { 
    137         // Register G.711 codecs 
    138         pjmedia_codec_g711_init(med_ept); 
    139  
    140         // Register GSM codec. 
    141         pjmedia_codec_gsm_init(med_ept); 
    142  
    143         // Register Speex codecs. 
    144         // With the default flag, this will register three codecs: 
    145         // speex/8000, speex/16000, and speex/32000 
    146         pjmedia_codec_speex_init(med_ept, 0, 0, 0); 
    147     } 
    148  \endcode 
    149  * 
    150  * After the codec is registered, application may create the encoder/decoder 
    151  * instance, by using the API as documented in @ref PJMEDIA_CODEC. 
    152  */ 
    153  
    154  
    155  
    156 /** 
    157  * @page lic_stuffs Copying and Acknowledgements 
    158  * @section lic_stuff Copying and Acknowledgements 
    159  * @subsection pjmedia_about_subsec About PJMEDIA 
    160  * 
    161  * PJMEDIA is distributed under GPL terms (other licensing schemes may be  
    162  * arranged): 
    163  \verbatim 
    164     Copyright (C) 2003-2007 Benny Prijono <benny@prijono.org> 
    165  
    166     This program is free software; you can redistribute it and/or modify 
    167     it under the terms of the GNU General Public License as published by 
    168     the Free Software Foundation; either version 2 of the License, or 
    169     (at your option) any later version. 
    170  
    171     This program is distributed in the hope that it will be useful, 
    172     but WITHOUT ANY WARRANTY; without even the implied warranty of 
    173     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
    174     GNU General Public License for more details. 
    175  
    176     You should have received a copy of the GNU General Public License 
    177     along with this program; if not, write to the Free Software 
    178     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  
    179  \endverbatim 
    180  * 
    181  * 
    182  * @section other_acks Acknowlegments 
    183  * @subsection portaudio_subsec PortAudio 
    184  * 
    185  * PortAudio is supported as one of the sound device backend, and 
    186  * is used by default on Linux/Unix and MacOS X target. 
    187  *  
    188  * Please visit <A HREF="http://www.portaudio.com">http://www.portaudio.com</A> 
    189  * for more info. 
    190  * 
    191  * PortAudio is distributed with the following condition. 
    192  \verbatim 
    193     Based on the Open Source API proposed by Ross Bencina 
    194     Copyright (c) 1999-2000 Phil Burk 
    195  
    196     Permission is hereby granted, free of charge, to any person obtaining 
    197     a copy of this software and associated documentation files 
    198     (the "Software"), to deal in the Software without restriction, 
    199     including without limitation the rights to use, copy, modify, merge, 
    200     publish, distribute, sublicense, and/or sell copies of the Software, 
    201     and to permit persons to whom the Software is furnished to do so, 
    202     subject to the following conditions: 
    203  
    204     The above copyright notice and this permission notice shall be 
    205     included in all copies or substantial portions of the Software. 
    206  \endverbatim 
    207  * 
    208  * 
    209  * @subsection resample_ack Resample 
    210  * 
    211  * PJMEDIA uses <tt>resample-1.8.tar.gz</tt> from  
    212  * <A HREF="http://www-ccrma.stanford.edu/~jos/resample/"> 
    213  * Digital Audio Resampling Home Page</A>. This library is distibuted 
    214  * on LGPL terms. 
    215  * 
    216  * Some excerpts from the original source codes: 
    217  \verbatim 
    218     HISTORY 
    219  
    220     The first version of this software was written by Julius O. Smith III 
    221     <jos@ccrma.stanford.edu> at CCRMA <http://www-ccrma.stanford.edu> in 
    222     1981.  It was called SRCONV and was written in SAIL for PDP-10 
    223     compatible machines.  The algorithm was first published in 
    224  
    225     Smith, Julius O. and Phil Gossett. ``A Flexible Sampling-Rate 
    226     Conversion Method,'' Proceedings (2): 19.4.1-19.4.4, IEEE Conference 
    227     on Acoustics, Speech, and Signal Processing, San Diego, March 1984. 
    228  
    229     An expanded tutorial based on this paper is available at the Digital 
    230     Audio Resampling Home Page given above. 
    231  
    232     Circa 1988, the SRCONV program was translated from SAIL to C by 
    233     Christopher Lee Fraley working with Roger Dannenberg at CMU. 
    234  
    235     Since then, the C version has been maintained by jos. 
    236  
    237     Sndlib support was added 6/99 by John Gibson <jgg9c@virginia.edu>. 
    238  
    239     The resample program is free software distributed in accordance 
    240     with the Lesser GNU Public License (LGPL).  There is NO warranty; not 
    241     even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
    242  \endverbatim 
    243  * 
    244  * @subsection jb_ack Adaptive Jitter Buffer 
    245  * 
    246  * The PJMEDIA jitter buffer is based on implementation kindly donated 
    247  * by <A HREF="http://www.switchlab.com">Switchlab, Ltd.</A>, and is 
    248  * distributed under PJMEDIA licensing terms. 
    249  * 
    250  * 
    251  * @subsection silence_det_ack Adaptive Silence Detector 
    252  * 
    253  * The adaptive silence detector was based on silence detector  
    254  * implementation in <A HREF="http://www.openh323.org">Open H323</A>  
    255  * project. I couldn't find the source code anymore, but generally 
    256  * Open H323 files are distributed under MPL terms and has the 
    257  * following excerpts: 
    258  \verbatim 
    259     Open H323 Library 
    260  
    261     Copyright (c) 1998-2000 Equivalence Pty. Ltd. 
    262  
    263     The contents of this file are subject to the Mozilla Public License 
    264     Version 1.0 (the "License"); you may not use this file except in 
    265     compliance with the License. You may obtain a copy of the License at 
    266     http://www.mozilla.org/MPL/ 
    267  
    268     Software distributed under the License is distributed on an "AS IS" 
    269     basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 
    270     the License for the specific language governing rights and limitations 
    271     under the License. 
    272  
    273     The Original Code is Open H323 Library. 
    274  
    275     The Initial Developer of the Original Code is Equivalence Pty. Ltd. 
    276  
    277     Portions of this code were written with the assisance of funding from 
    278     Vovida Networks, Inc. http://www.vovida.com. 
    279  \endverbatim 
    280  
    281  * @subsection gsm_ack GSM Codec 
    282  * 
    283  * PJMEDIA uses GSM  
    284  * <A HREF="http://kbs.cs.tu-berlin.de/~jutta/toast.html">GSM 06.10</A> 
    285  * version 1.0 at patchlevel 12. It has the following Copyright notice: 
    286  * 
    287  \verbatim 
    288     Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, 
    289     Technische Universitaet Berlin 
    290  
    291     Any use of this software is permitted provided that this notice is not 
    292     removed and that neither the authors nor the Technische Universitaet Berlin 
    293     are deemed to have made any representations as to the suitability of this 
    294     software for any purpose nor are held responsible for any defects of 
    295     this software.  THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 
    296  
    297     As a matter of courtesy, the authors request to be informed about uses 
    298     this software has found, about bugs in this software, and about any 
    299     improvements that may be of general interest. 
    300  
    301     Berlin, 28.11.1994 
    302     Jutta Degener 
    303     Carsten Bormann 
    304  \endverbatim 
    305  * 
    306  * 
    307  * @subsection speex_codec_ack Speex Codec 
    308  * 
    309  * PJMEDIA uses Speex codec uses version 1.1.12 from <A HREF="http://www.speex.org"> 
    310  * www.speex.org</A>. The Speex library comes with the following Copying 
    311  * notice: 
    312  \verbatim 
    313     Copyright 2002-2005  
    314             Xiph.org Foundation 
    315             Jean-Marc Valin 
    316             David Rowe 
    317             EpicGames 
    318             Analog Devices 
    319  
    320     Redistribution and use in source and binary forms, with or without 
    321     modification, are permitted provided that the following conditions 
    322     are met: 
    323  
    324     - Redistributions of source code must retain the above copyright 
    325     notice, this list of conditions and the following disclaimer. 
    326  
    327     - Redistributions in binary form must reproduce the above copyright 
    328     notice, this list of conditions and the following disclaimer in the 
    329     documentation and/or other materials provided with the distribution. 
    330  
    331     - Neither the name of the Xiph.org Foundation nor the names of its 
    332     contributors may be used to endorse or promote products derived from 
    333     this software without specific prior written permission. 
    334  
    335     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
    336     ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
    337     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
    338     A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR 
    339     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
    340     EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
    341     PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
    342     PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 
    343     LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 
    344     NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
    345     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    346  \endverbatim 
    347  * 
    348  * 
    349  * @subsection g711_codec_ack G.711 Codec 
    350  * 
    351  * The G.711 codec algorithm came from Sun Microsystems, Inc, and it's 
    352  * got the following excerpts: 
    353  * 
    354  \verbatim 
    355     This source code is a product of Sun Microsystems, Inc. and is provided 
    356     for unrestricted use.  Users may copy or modify this source code without 
    357     charge. 
    358  
    359     SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING 
    360     THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR 
    361     PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. 
    362  
    363     Sun source code is provided with no support and without any obligation on 
    364     the part of Sun Microsystems, Inc. to assist in its use, correction, 
    365     modification or enhancement. 
    366  
    367     SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE 
    368     INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE 
    369     OR ANY PART THEREOF. 
    370  
    371     In no event will Sun Microsystems, Inc. be liable for any lost revenue 
    372     or profits or other special, indirect and consequential damages, even if 
    373     Sun has been advised of the possibility of such damages. 
    374  
    375     Sun Microsystems, Inc. 
    376     2550 Garcia Avenue 
    377     Mountain View, California  94043 
    378  \endverbatim 
    379  * 
    380  */ 
    381  
    382  
    383 /** 
    384  @page getting_started_pjmedia Getting Started with PJMEDIA 
    385   
    386  @section getstart_init_setup_build Setting-up the Build System 
    387  
    388  @subsection subsec_build_pjmedia Building PJMEDIA and PJMEDIA-CODEC 
    389  
    390  The PJMEDIA and PJMEDIA-CODEC libraries are normally bundled in PJPROJECT 
    391  source tarball, and they are located in <tt><b>pjmedia</b></tt> sub-directory 
    392  tree. 
    393  
    394  Please follow the instructions in <tt><b>INSTALL.txt</b></tt> in the root 
    395  PJPROJECT directory to build all projects, including PJMEDIA and PJMEDIA-CODEC. 
    396  
    397  @subsection subsec_config_build Setting Up the Build Environment 
    398  
    399  In your project, you will need to configure the following. 
    400  - Add <tt><b>$pjproject/pjmedia/include</b></tt> in the search path for 
    401    include files. 
    402  - Add <tt><b>$pjproject/pjmedia/lib</b></tt> in the search path for 
    403    library files. 
    404  - Add PJMEDIA and PJMEDIA static libraries in the link command. 
    405  
    406  @subsection subsec_inc_pjmedia Include PJMEDIA and PJMEDIA-CODEC in Source Files 
    407  
    408  To include all features from PJMEDIA and PJMEDIA-CODEC, use the following: 
    409  
    410  \code 
    411    #include <pjlib.h> 
    412    #include <pjmedia.h> 
    413    #include <pjmedia-codec.h> 
    414  \endcode 
    415  
    416  Alternatively, you may include only specific parts of the library (for example 
    417  to speed up compilation by just a fraction), for example: 
    418  
    419  \code 
    420    #include <pjmedia/conference.h> 
    421    #include <pjmedia/jbuf.h> 
    422    #include <pjmedia-codec/speex.h> 
    423  \endcode 
    424  
    425   Note that you need to give <b>"pjmedia/"</b> and <b>"pjmedia-codec/"</b>  
    426   prefix to include specific files. 
    427  
    428  
    429  @section getstart_using Using PJMEDIA 
    430  
    431   I wish I could explain more, but for now, please have a look at the  
    432   @ref page_pjmedia_samples page on some examples. 
    433  */ 
    43479 
    43580/** 
     
    44287 
    44388  - @ref page_pjmedia_samples_level_c\n 
    444     This is a good place to start learning about @ref PJMEDIA_PORT_CONCEPT, 
    445     as it shows that @ref PJMEDIA_PORT_CONCEPT are only "passive" objects 
     89    This is a good place to start learning about @ref PJMEDIA_PORT, 
     90    as it shows that @ref PJMEDIA_PORT are only "passive" objects 
    44691    with <tt>get_frame()</tt> and <tt>put_frame()</tt> interface, and 
    44792    someone has to call these to retrieve/store media frames. 
     
    456101 
    457102  - @ref page_pjmedia_samples_playsine_c\n 
    458     Demonstrates how to create a custom @ref PJMEDIA_PORT_CONCEPT (in this 
     103    Demonstrates how to create a custom @ref PJMEDIA_PORT (in this 
    459104    case a sine wave generator) and integrate it to PJMEDIA. 
    460105 
Note: See TracChangeset for help on using the changeset viewer.