Changeset 2037


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

Updated doxygen documentations

Location:
pjproject/trunk
Files:
93 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/Makefile

    r1210 r2037  
    88endif 
    99 
    10 all clean dep depend distclean doc print realclean: 
     10all clean dep depend distclean print realclean: 
    1111        for dir in $(DIRS); do \ 
    1212                if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \ 
     
    1717        done 
    1818 
     19doc: 
     20        @if test \( ! "$(WWWDIR)" == "" \) -a \( ! -d $(WWWDIR)/pjlib/docs/html \) ; then \ 
     21                echo 'Directory "$(WWWDIR)" does not look like a valid pjsip web directory'; \ 
     22                exit 1; \ 
     23        fi 
     24        for dir in $(DIRS); do \ 
     25                if $(MAKE) $(MAKE_FLAGS) -C $$dir/build $@; then \ 
     26                    true; \ 
     27                else \ 
     28                    exit 1; \ 
     29                fi; \ 
     30        done 
     31         
    1932LIBS =  pjlib/lib/libpj-$(TARGET_NAME).a \ 
    2033        pjlib-util/lib/libpjlib-util-$(TARGET_NAME).a \ 
  • pjproject/trunk/pjlib-util/build/Makefile

    r1987 r2037  
    5555 
    5656doc: 
    57         cd .. && doxygen docs/doxygen.cfg 
     57        cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg 
     58        @if test ! "$(WWWDIR)" == ""; then \ 
     59                echo "Copying to $(WWWDIR)/pjlib-util/docs/html.." ; \ 
     60                cp -a ../docs/html/* $(WWWDIR)/pjlib-util/docs/html/ ; \ 
     61        fi 
    5862 
    5963dep: depend 
  • pjproject/trunk/pjlib-util/docs

    • Property svn:ignore
      •  

        old new  
        22latex 
        33rtf 
         4pjlib-util.tag 
  • pjproject/trunk/pjlib-util/docs/doxygen.cfg

    r1748 r2037  
    295295 
    296296SHOW_USED_FILES        = YES 
     297TYPEDEF_HIDES_STRUCT    = YES 
    297298 
    298299#--------------------------------------------------------------------------- 
     
    875876# The TAGFILES tag can be used to specify one or more tagfiles. 
    876877 
    877 TAGFILES               =  
     878TAGFILES               = ../pjlib/docs/pjlib.tag=../../../pjlib/docs/html ../pjnath/docs/pjnath.tag=../../../pjnath/docs/html ../pjsip/docs/pjsip.tag=../../../pjsip/docs/html ../pjmedia/docs/pjmedia.tag=../../../pjmedia/docs/html 
    878879 
    879880# When a file name is specified after GENERATE_TAGFILE, doxygen will create  
    880881# a tag file that is based on the input files it reads. 
    881882 
    882 GENERATE_TAGFILE       =  
     883GENERATE_TAGFILE       = docs/pjlib-util.tag 
    883884 
    884885# If the ALLEXTERNALS tag is set to YES all external classes will be listed  
     
    892893# be listed. 
    893894 
    894 EXTERNAL_GROUPS        = YES 
     895EXTERNAL_GROUPS        = NO 
    895896 
    896897# The PERL_PATH should be the absolute path and name of the perl script  
    897898# interpreter (i.e. the result of `which perl'). 
    898899 
    899 PERL_PATH              = /usr/bin/perl 
     900#PERL_PATH              = /usr/bin/perl 
     901PERL_PATH              = /c/Perl/bin/perl 
    900902 
    901903#--------------------------------------------------------------------------- 
  • pjproject/trunk/pjlib-util/docs/footer.html

    r905 r2037  
    22<hr><center> 
    33PJLIB-UTIL Open Source, small footprint, and portable asynchronous/caching DNS resolver, text scanner, STUN client, and XML library<br> 
    4 (C)2001-2007 Benny Prijono 
     4(C)2001-2008 Benny Prijono 
    55</center> 
    66 
  • pjproject/trunk/pjlib-util/include/pjlib-util/config.h

    r1360 r2037  
    2727 
    2828/** 
    29  * @defgroup PJLIB_UTIL_CONFIG PJLIB-UTIL Configuration 
    30  * @ingroup PJLIB_UTIL 
     29 * @defgroup PJLIB_UTIL_CONFIG Configuration 
     30 * @ingroup PJLIB_UTIL_BASE 
    3131 * @{ 
    3232 */ 
  • pjproject/trunk/pjlib-util/include/pjlib-util/dns.h

    r1987 r2037  
    3232/** 
    3333 * @defgroup PJ_DNS DNS and Asynchronous DNS Resolver 
    34  * @ingroup PJLIB_UTIL 
     34 * @ingroup PJ_PROTOCOLS 
    3535 */ 
    3636 
  • pjproject/trunk/pjlib-util/include/pjlib-util/dns_server.h

    r1987 r2037  
    3131/** 
    3232 * @defgroup PJ_DNS_SERVER Simple DNS Server 
    33  * @ingroup PJLIB_UTIL 
     33 * @ingroup PJ_DNS 
    3434 * @{ 
    3535 * This contains a simple but fully working DNS server implementation,  
  • pjproject/trunk/pjlib-util/include/pjlib-util/errno.h

    r1356 r2037  
    2424 
    2525/** 
    26  * @defgroup PJLIB_UTIL_ERROR PJLIB-UTIL Error Codes 
    27  * @ingroup PJLIB_UTIL 
     26 * @defgroup PJLIB_UTIL_ERROR Error Codes 
     27 * @ingroup PJLIB_UTIL_BASE 
    2828 * @{ 
    2929 */ 
  • pjproject/trunk/pjlib-util/include/pjlib-util/getopt.h

    r754 r2037  
    3030/** 
    3131 * @defgroup PJLIB_UTIL_GETOPT Getopt 
    32  * @ingroup PJLIB_UTIL 
     32 * @ingroup PJLIB_TEXT 
    3333 * @{ 
    3434 */ 
  • pjproject/trunk/pjlib-util/include/pjlib-util/pcap.h

    r1769 r2037  
    3131/** 
    3232 * @defgroup PJ_PCAP Simple PCAP file reader 
    33  * @ingroup PJLIB_UTIL 
     33 * @ingroup PJ_FILE_FMT 
    3434 * @{ 
    3535 * This module describes simple utility to read PCAP file. It is not intended 
  • pjproject/trunk/pjlib-util/include/pjlib-util/scanner.h

    r1374 r2037  
    3131/** 
    3232 * @defgroup PJ_SCAN Fast Text Scanning 
    33  * @ingroup PJLIB_UTIL 
     33 * @ingroup PJLIB_TEXT 
    3434 * @brief Text scanning utility. 
    3535 * 
  • pjproject/trunk/pjlib-util/include/pjlib-util/string.h

    r974 r2037  
    3030/** 
    3131 * @defgroup PJLIB_UTIL_STRING String Escaping Utilities 
    32  * @ingroup PJLIB_UTIL 
     32 * @ingroup PJLIB_TEXT 
    3333 * @{ 
    3434 */ 
  • pjproject/trunk/pjlib-util/include/pjlib-util/stun_simple.h

    r1374 r2037  
    145145/** 
    146146 * @defgroup PJLIB_UTIL_STUN_CLIENT Simple STUN Helper 
    147  * @ingroup PJLIB_UTIL_STUN 
     147 * @ingroup PJ_PROTOCOLS 
    148148 * @brief A simple and small footprint STUN resolution helper 
    149149 * @{ 
  • pjproject/trunk/pjlib-util/include/pjlib-util/types.h

    r1242 r2037  
    2929 
    3030/** 
    31  * @defgroup PJLIB_UTIL PJLIB-UTIL Library 
     31 * @defgroup PJLIB_UTIL_BASE Base 
    3232 * @{ 
    3333 */ 
     
    5151 */ 
    5252 
     53/** 
     54 * @defgroup PJLIB_TEXT Text and String Manipulation 
     55 */ 
     56 
     57/** 
     58 * @defgroup PJ_PROTOCOLS Protocols 
     59 */ 
     60 
     61/** 
     62 * @defgroup PJ_FILE_FMT File Formats 
     63 */ 
    5364 
    5465/** 
     
    6172 * adjunct functions to PJLIB. 
    6273 *  
    63  * Please go to the <A HREF="modules.htm"><B>Modules</B></A> page for list 
    64  * of modules. 
     74 * Please go to the <A HREF="modules.htm"><B>Table of Contents</B></A> page 
     75 * for list of modules. 
    6576 * 
    6677 * 
  • pjproject/trunk/pjlib-util/include/pjlib-util/xml.h

    r1748 r2037  
    3232/** 
    3333 * @defgroup PJ_TINY_XML Mini/Tiny XML Parser/Helper 
    34  * @ingroup PJLIB_UTIL 
     34 * @ingroup PJ_FILE_FMT 
    3535 * @{ 
    3636 */ 
  • pjproject/trunk/pjlib/build/Makefile

    r1953 r2037  
    5656 
    5757doc: 
    58         cd .. && doxygen docs/doxygen.cfg 
     58        cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg 
     59        @if test ! "$(WWWDIR)" == ""; then \ 
     60                echo "Copying to $(WWWDIR)/pjlib/docs/html.." ; \ 
     61                cp -a ../docs/html/* $(WWWDIR)/pjlib/docs/html/ ; \ 
     62        fi 
    5963 
    6064print: 
  • pjproject/trunk/pjlib/docs

    • Property svn:ignore
      •  

        old new  
        11html 
        22latex 
         3pjlib.tag 
  • pjproject/trunk/pjlib/docs/doxygen.cfg

    r1748 r2037  
    295295 
    296296SHOW_USED_FILES        = YES 
     297TYPEDEF_HIDES_STRUCT    = YES 
    297298 
    298299#--------------------------------------------------------------------------- 
     
    879880# a tag file that is based on the input files it reads. 
    880881 
    881 GENERATE_TAGFILE       =  
     882GENERATE_TAGFILE       = docs/pjlib.tag 
    882883 
    883884# If the ALLEXTERNALS tag is set to YES all external classes will be listed  
     
    896897# interpreter (i.e. the result of `which perl'). 
    897898 
    898 PERL_PATH              = /usr/bin/perl 
     899#PERL_PATH              = /usr/bin/perl 
     900PERL_PATH              = /c/Perl/bin/perl 
    899901 
    900902#--------------------------------------------------------------------------- 
  • pjproject/trunk/pjlib/docs/footer.html

    r905 r2037  
    22<hr><center> 
    33PJLIB Open Source, high performance, small footprint, and very very portable framework<br> 
    4 (C)2001-2007 Benny Prijono 
     4(C)2001-2008 Benny Prijono 
    55</center> 
    66 
  • pjproject/trunk/pjlib/include/pj/config.h

    r1949 r2037  
    304304/** 
    305305 * @defgroup pj_config Build Configuration 
    306  * @ingroup PJ 
    307306 * @{ 
    308307 * 
     
    805804/** 
    806805 * @defgroup pj_config Build Configuration 
    807  * @ingroup PJ 
    808806 * @{ 
    809807 */ 
  • pjproject/trunk/pjlib/include/pj/doxygen.h

    r1580 r2037  
    5353 * \a doxygen (http://www.doxygen.org). Doxygen is a great (and free!)  
    5454 * tools for generating such documentation. 
    55  * 
    56  * @subsection doc_ver_subsec Version 
    57  * 
    58  * This document corresponds to PJLIB version 0.8.0. 
    5955 * 
    6056 * 
  • pjproject/trunk/pjlib/include/pj/errno.h

    r1748 r2037  
    3131/** 
    3232 * @defgroup pj_errno Error Codes 
    33  * @ingroup PJ 
    3433 * @{ 
    3534 * 
  • pjproject/trunk/pjlib/include/pj/guid.h

    r1815 r2037  
    3333/** 
    3434 * @defgroup PJ_DS Data Structure. 
    35  * @ingroup PJ 
    3635 */ 
    3736/** 
  • pjproject/trunk/pjlib/include/pj/list.h

    r1958 r2037  
    3131/* 
    3232 * @defgroup PJ_DS Data Structure. 
    33  * @ingroup PJ 
    3433 */ 
    3534 
  • pjproject/trunk/pjlib/include/pj/log.h

    r1627 r2037  
    3232/** 
    3333 * @defgroup PJ_MISC Miscelaneous 
    34  * @ingroup PJ 
    3534 */ 
    3635 
  • pjproject/trunk/pjlib/include/pj/os.h

    r1841 r2037  
    3030/** 
    3131 * @defgroup PJ_OS Operating System Dependent Functionality. 
    32  * @ingroup PJ 
    3332 */ 
    3433 
  • pjproject/trunk/pjlib/include/pj/pool.h

    r1748 r2037  
    4040/** 
    4141 * @defgroup PJ_POOL_GROUP Fast Memory Pool 
    42  * @ingroup PJ 
    4342 * @brief 
    4443 * Memory pools allow dynamic memory allocation comparable to malloc or the  
  • pjproject/trunk/pjlib/include/pj/types.h

    r1405 r2037  
    2121 
    2222 
    23 /** 
    24  * @defgroup PJ PJ Library 
    25  */ 
    2623/** 
    2724 * @file types.h 
  • pjproject/trunk/pjmedia/build/Makefile

    r1942 r2037  
    108108 
    109109doc: 
    110         cd .. && doxygen docs/doxygen.cfg 
     110        cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg 
     111        @if test ! "$(WWWDIR)" == ""; then \ 
     112                echo "Copying to $(WWWDIR)/pjmedia/docs/html.." ; \ 
     113                rm -rf $(WWWDIR)/pjmedia/docs/html/* ; \ 
     114                cp -a ../docs/html/* $(WWWDIR)/pjmedia/docs/html/ ; \ 
     115        fi 
    111116 
    112117dep: depend 
  • pjproject/trunk/pjmedia/docs

    • Property svn:ignore
      •  

        old new  
        22latex 
        33rtf 
         4pjmedia.tag 
  • pjproject/trunk/pjmedia/docs/doxygen.cfg

    r1748 r2037  
    214214# declaration order. 
    215215 
    216 SORT_MEMBER_DOCS       = YES 
     216SORT_MEMBER_DOCS       = NO 
    217217 
    218218# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC  
     
    296296SHOW_USED_FILES        = YES 
    297297 
     298TYPEDEF_HIDES_STRUCT    = YES 
     299 
    298300#--------------------------------------------------------------------------- 
    299301# configuration options related to warning and progress messages 
     
    315317# automatically be disabled. 
    316318 
    317 WARN_IF_UNDOCUMENTED   = YES 
     319WARN_IF_UNDOCUMENTED   = NO 
    318320 
    319321# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for  
     
    875877# The TAGFILES tag can be used to specify one or more tagfiles. 
    876878 
    877 TAGFILES               =  
     879TAGFILES               = ../pjlib/docs/pjlib.tag=../../../pjlib/docs/html ../pjlib-util/docs/pjlib-util.tag=../../../pjlib-util/docs/html ../pjnath/docs/pjnath.tag=../../../pjnath/docs/html ../pjsip/docs/pjmedia.tag=../../../pjmedia/docs/html 
    878880 
    879881# When a file name is specified after GENERATE_TAGFILE, doxygen will create  
    880882# a tag file that is based on the input files it reads. 
    881883 
    882 GENERATE_TAGFILE       =  
     884GENERATE_TAGFILE       = docs/pjmedia.tag 
    883885 
    884886# If the ALLEXTERNALS tag is set to YES all external classes will be listed  
     
    892894# be listed. 
    893895 
    894 EXTERNAL_GROUPS        = YES 
     896EXTERNAL_GROUPS        = NO 
    895897 
    896898# The PERL_PATH should be the absolute path and name of the perl script  
    897899# interpreter (i.e. the result of `which perl'). 
    898900 
    899 PERL_PATH              = /usr/bin/perl 
     901#PERL_PATH              = /usr/bin/perl 
     902PERL_PATH              = /c/Perl/bin/perl 
    900903 
    901904#--------------------------------------------------------------------------- 
     
    979982DOTFILE_DIRS           =  
    980983 
    981 # The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width  
    982 # (in pixels) of the graphs generated by dot. If a graph becomes larger than  
    983 # this value, doxygen will try to truncate the graph, so that it fits within  
    984 # the specified constraint. Beware that most browsers cannot cope with very  
    985 # large images. 
    986  
    987 MAX_DOT_GRAPH_WIDTH    = 1024 
    988  
    989 # The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height  
    990 # (in pixels) of the graphs generated by dot. If a graph becomes larger than  
    991 # this value, doxygen will try to truncate the graph, so that it fits within  
    992 # the specified constraint. Beware that most browsers cannot cope with very  
    993 # large images. 
    994  
    995 MAX_DOT_GRAPH_HEIGHT   = 1024 
    996  
    997984# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will  
    998985# generate a legend page explaining the meaning of the various boxes and  
  • pjproject/trunk/pjmedia/docs/footer.html

    r905 r2037  
    22<hr><center> 
    33PJMEDIA small footprint Open Source media stack<br> 
    4 (C)2003-2007 Benny Prijono 
     4(C)2003-2008 Benny Prijono 
    55</center> 
    66<!--#include virtual="/footer.html" --> 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/g722.h

    r1870 r2037  
    3232 * @brief Implementation of G.722 Codec 
    3333 * @{ 
     34 * 
    3435 * This section describes functions to register and register G.722 codec 
    3536 * factory to the codec manager. After the codec factory has been registered, 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/gsm.h

    r974 r2037  
    3232 * @brief Implementation of GSM FR based on GSM 06.10 library 
    3333 * @{ 
     34 * 
    3435 * This section describes functions to register and register GSM codec 
    3536 * factory to the codec manager. After the codec factory has been registered, 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/ilbc.h

    r974 r2037  
    3232 * @brief Implementation of iLBC Codec 
    3333 * @{ 
     34 * 
    3435 * This section describes functions to register and register iLBC codec 
    3536 * factory to the codec manager. After the codec factory has been registered, 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/l16.h

    r974 r2037  
    2626 * @defgroup PJMED_L16 L16 Codec Family 
    2727 * @ingroup PJMEDIA_CODEC 
    28  * @brief 16bit linear codecs (useful for debugging) 
     28 * @brief PCM/16bit/linear codecs 
    2929 * @{ 
     30 * 
    3031 * This section describes functions to register and register L16 codec 
    3132 * factory to the codec manager. After the codec factory has been registered, 
  • pjproject/trunk/pjmedia/include/pjmedia-codec/speex.h

    r1965 r2037  
    3232 * @brief Implementation of Speex codecs (narrow/wide/ultrawide-band). 
    3333 * @{ 
     34 * 
    3435 * This section describes functions to register and register speex codec 
    3536 * factory to the codec manager. After the codec factory has been registered, 
  • pjproject/trunk/pjmedia/include/pjmedia/bidirectional.h

    r974 r2037  
    2222/** 
    2323 * @file bidirectional.h 
    24  * @brief Create bidirectional port from two unidirectional ports. 
     24 * @brief Bidirectional media port. 
    2525 */ 
    2626#include <pjmedia/port.h> 
     
    3030 * @defgroup PJMEDIA_BIDIRECTIONAL_PORT Bidirectional Port 
    3131 * @ingroup PJMEDIA_PORT 
    32  * @brief Create bidirectional port from two unidirectional ports. 
     32 * @brief A bidirectional port combines two unidirectional ports into one 
     33 * bidirectional port 
    3334 * @{ 
    3435 */ 
  • pjproject/trunk/pjmedia/include/pjmedia/clock.h

    r1843 r2037  
    2525 */ 
    2626#include <pjmedia/types.h> 
     27 
     28 
     29/** 
     30 * @defgroup PJMEDIA_PORT_CLOCK Clock/Timing 
     31 * @ingroup PJMEDIA_PORT 
     32 * @brief Various types of classes that provide timing. 
     33 * @{ 
     34 
     35 The media clock/timing extends the media port concept that is explained  
     36 in @ref PJMEDIA_PORT. When clock is present in the ports  
     37 interconnection, media will flow automatically (and with correct timing too!) 
     38 from one media port to another. 
     39  
     40 There are few objects in PJMEDIA that are able to provide clock/timing 
     41 to media ports interconnection: 
     42 
     43 - @ref PJMED_SND_PORT\n 
     44   The sound device makes a good candidate as the clock source, and 
     45   PJMEDIA @ref PJMED_SND is designed so that it is able to invoke 
     46   operations according to timing driven by the sound hardware clock 
     47   (this may sound complicated, but actually it just means that 
     48   the sound device abstraction provides callbacks to be called when 
     49   it has/wants media frames).\n 
     50   See @ref PJMED_SND_PORT for more details. 
     51 
     52 - @ref PJMEDIA_MASTER_PORT\n 
     53   The master port uses @ref PJMEDIA_CLOCK as the clock source. By using 
     54   @ref PJMEDIA_MASTER_PORT, it is possible to interconnect passive 
     55   media ports and let the frames flow automatically in timely manner.\n 
     56   Please see @ref PJMEDIA_MASTER_PORT for more details. 
     57 
     58 @} 
     59 */ 
    2760 
    2861 
  • pjproject/trunk/pjmedia/include/pjmedia/codec.h

    r1985 r2037  
    3434/** 
    3535 * @defgroup PJMEDIA_CODEC Codec Framework 
    36  * @ingroup PJMEDIA 
    3736 * @brief Media codec framework and management 
    3837 * @{ 
  • pjproject/trunk/pjmedia/include/pjmedia/conference.h

    r1301 r2037  
    3030 * @defgroup PJMEDIA_CONF Conference Bridge 
    3131 * @ingroup PJMEDIA_PORT 
    32  * @brief The implementation of conference bridge 
     32 * @brief Audio conference bridge implementation 
    3333 * @{ 
    3434 * 
  • pjproject/trunk/pjmedia/include/pjmedia/config.h

    r2020 r2037  
    2828/** 
    2929 * @defgroup PJMEDIA_BASE Base Types and Configurations 
    30  * @ingroup PJMEDIA 
    3130 */ 
    3231 
  • pjproject/trunk/pjmedia/include/pjmedia/delaybuf.h

    r1972 r2037  
    3030 
    3131/** 
    32  * @defgroup PJMED_DELAYBUF Delay Buffer 
     32 * @defgroup PJMED_DELAYBUF Adaptive Delay Buffer 
    3333 * @ingroup PJMEDIA_FRAME_OP 
     34 * @brief Adaptive delay buffer with high-quality time-scale 
     35 * modification 
    3436 * @{ 
     37 * 
    3538 * This section describes PJMEDIA's implementation of delay buffer. 
    3639 * Delay buffer works quite similarly like a fixed jitter buffer, that 
     
    4447 * get() and put() are matched). 
    4548 * 
    46  * The delay buffer is mostly used by the sound port, to accommodate 
    47  * for the burst frames returned by the sound device. 
     49 * The buffer is adaptive, that is it continuously learns the optimal delay 
     50 * to be applied to the audio flow at run-time. Once the optimal delay has  
     51 * been learned, the delay buffer will apply this delay to the audio flow, 
     52 * expanding or shrinking the audio samples as necessary when the actual 
     53 * audio samples in the buffer are too low or too high. It does this without 
     54 * distorting the audio quality of the audio, by using \a PJMED_WSOLA. 
    4855 * 
    49  * To determine the level of delay to be applied, the delay buffer 
    50  * has a learning period on which it calculates the level of burst of 
    51  * both the put() and get(), and use the maximum value of both as the 
    52  * delay level. 
     56 * The delay buffer is used in \ref PJMED_SND_PORT, \ref PJMEDIA_SPLITCOMB, 
     57 * and \ref PJMEDIA_CONF. 
    5358 */ 
    5459 
  • 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 
  • pjproject/trunk/pjmedia/include/pjmedia/echo_port.h

    r974 r2037  
    3131 * @defgroup PJMEDIA_ECHO_PORT Echo Cancellation Port 
    3232 * @ingroup PJMEDIA_PORT 
    33  * @brief Echo Cancellation Port 
     33 * @brief Echo Cancellation 
     34 * @{ 
    3435 * 
    35  * Echo canceller media port, using @ref PJMEDIA_Echo_Cancel backend. 
    36  * @{ 
     36 * Wrapper to \ref PJMEDIA_Echo_Cancel into media port interface. 
    3737 */ 
    3838 
  • pjproject/trunk/pjmedia/include/pjmedia/endpoint.h

    r1589 r2037  
    2727/** 
    2828 * @defgroup PJMED_ENDPT The Endpoint 
    29  * @ingroup PJMEDIA 
    3029 * @{ 
    3130 * 
  • pjproject/trunk/pjmedia/include/pjmedia/jbuf.h

    r1983 r2037  
    3333 * @defgroup PJMED_JBUF Adaptive jitter buffer 
    3434 * @ingroup PJMEDIA_FRAME_OP 
     35 * @brief Adaptive de-jitter buffering implementation 
    3536 * @{ 
     37 * 
    3638 * This section describes PJMEDIA's implementation of de-jitter buffer. 
    3739 * The de-jitter buffer may be set to operate in adaptive mode or fixed 
    3840 * delay mode. 
    39  * 
    40  * The jitter buffer is also able to report the status of the current 
    41  * frame (#pjmedia_jb_frame_type). This status is used for examply by 
    42  * @ref PJMED_STRM to invoke the codec's @ref PJMED_PLC algorithm. 
    4341 */ 
    4442 
  • pjproject/trunk/pjmedia/include/pjmedia/master_port.h

    r1843 r2037  
    3030 * @defgroup PJMEDIA_MASTER_PORT Master Port 
    3131 * @ingroup PJMEDIA_PORT_CLOCK 
    32  * @brief Provides media clock for media ports. 
     32 * @brief Thread based media clock provider 
    3333 * @{ 
     34 * 
    3435 * A master port has two media ports connected to it, and by convention 
    3536 * thay are called downstream and upstream ports. The media stream flowing to 
  • pjproject/trunk/pjmedia/include/pjmedia/mem_port.h

    r1808 r2037  
    3232 * @defgroup PJMEDIA_MEM_PLAYER Memory/Buffer-based Playback Port 
    3333 * @ingroup PJMEDIA_PORT 
    34  * @brief Media playback from a fixed buffer 
     34 * @brief Media playback from a fixed size memory buffer 
    3535 * @{ 
     36 * 
    3637 * A memory/buffer based playback port is used to play media from a fixed 
    3738 * size buffer. This is useful over @ref PJMEDIA_FILE_PLAY for  
     
    114115 * @defgroup PJMEDIA_MEM_CAPTURE Memory/Buffer-based Capture Port 
    115116 * @ingroup PJMEDIA_PORT 
    116  * @brief Capture to fixed size buffer 
     117 * @brief Media capture to fixed size memory buffer 
    117118 * @{ 
     119 * 
    118120 * A memory based capture is used to save media streams to a fixed size 
    119121 * buffer. This is useful over @ref PJMEDIA_FILE_REC for  
  • pjproject/trunk/pjmedia/include/pjmedia/null_port.h

    r974 r2037  
    3131 * @defgroup PJMEDIA_NULL_PORT Null Port 
    3232 * @ingroup PJMEDIA_PORT 
    33  * @brief Null port is the simplest type of port. 
     33 * @brief The simplest type of media port which does nothing. 
    3434 * @{ 
    3535 */ 
  • pjproject/trunk/pjmedia/include/pjmedia/plc.h

    r974 r2037  
    3030 * @defgroup PJMED_PLC Packet Lost Concealment (PLC) 
    3131 * @ingroup PJMEDIA_FRAME_OP 
     32 * @brief Packet lost compensation algorithm 
    3233 * @{ 
     34 * 
    3335 * This section describes PJMEDIA's implementation of Packet Lost 
    3436 * Concealment algorithm. This algorithm is used to implement PLC for 
    35  * codecs that do not have built-in support for one (e.g. G.711 or GSM codecs). 
     37 * codecs that do not have built-in support for one (e.g. G.711 or GSM  
     38 * codecs). 
    3639 * 
    3740 * The PLC algorithm (either built-in or external) is embedded in 
  • pjproject/trunk/pjmedia/include/pjmedia/port.h

    r1983 r2037  
    2929 
    3030/** 
    31   @defgroup PJMEDIA_PORT_CONCEPT Media Ports Framework 
    32   @ingroup PJMEDIA 
    33   @brief Extensible framework for media terminations 
    34    
     31  @addtogroup PJMEDIA_PORT Media Ports Framework 
     32  @{ 
     33 
    3534  @section media_port_intro Media Port Concepts 
    3635   
     
    166165  among media ports. This concept is described in @ref PJMEDIA_PORT_CLOCK  
    167166  section. 
    168  
    169  */ 
    170  
    171  
    172 /** 
    173  * @defgroup PJMEDIA_PORT_INTERFACE Media Port Interface 
    174  * @ingroup PJMEDIA_PORT_CONCEPT 
    175  * @brief Declares the media port interface. 
    176  */ 
    177  
    178 /** 
    179  * @defgroup PJMEDIA_PORT Ports 
    180  * @ingroup PJMEDIA_PORT_CONCEPT 
    181  * @brief Contains various types of media ports/terminations. 
    182  * @{ 
    183  * This page lists all types of media ports currently implemented 
    184  * in PJMEDIA. The media port concept is explained in @ref PJMEDIA_PORT_CONCEPT. 
    185  * @} 
    186  */ 
    187  
    188 /** 
    189  @defgroup PJMEDIA_PORT_CLOCK Clock/Timing 
    190  @ingroup PJMEDIA_PORT_CONCEPT 
    191  @brief Various types of classes that provide timing. 
    192  @{ 
    193  
    194  The media clock/timing extends the media port concept that is explained  
    195  in @ref PJMEDIA_PORT_CONCEPT. When clock is present in the ports  
    196  interconnection, media will flow automatically (and with correct timing too!) 
    197  from one media port to another. 
    198   
    199  There are few objects in PJMEDIA that are able to provide clock/timing 
    200  to media ports interconnection: 
    201  
    202  - @ref PJMED_SND_PORT\n 
    203    The sound device makes a good candidate as the clock source, and 
    204    PJMEDIA @ref PJMED_SND is designed so that it is able to invoke 
    205    operations according to timing driven by the sound hardware clock 
    206    (this may sound complicated, but actually it just means that 
    207    the sound device abstraction provides callbacks to be called when 
    208    it has/wants media frames).\n 
    209    See @ref PJMED_SND_PORT for more details. 
    210  
    211  - @ref PJMEDIA_MASTER_PORT\n 
    212    The master port uses @ref PJMEDIA_CLOCK as the clock source. By using 
    213    @ref PJMEDIA_MASTER_PORT, it is possible to interconnect passive 
    214    media ports and let the frames flow automatically in timely manner.\n 
    215    Please see @ref PJMEDIA_MASTER_PORT for more details. 
    216  
    217  @} 
    218  */ 
    219  
    220 /** 
    221  * @addtogroup PJMEDIA_PORT_INTERFACE 
    222  * @{ 
    223  * This page contains the media port interface declarations. The media port 
    224  * concept is explained in @ref PJMEDIA_PORT_CONCEPT. 
    225  */ 
     167*/ 
    226168 
    227169PJ_BEGIN_DECL 
     
    231173 * Port operation setting. 
    232174 */ 
    233 enum pjmedia_port_op 
     175typedef enum pjmedia_port_op 
    234176{ 
    235177    /**  
     
    254196     */ 
    255197    PJMEDIA_PORT_ENABLE 
    256 }; 
    257  
    258  
    259 /** 
    260  * @see pjmedia_port_op 
    261  */ 
    262 typedef enum pjmedia_port_op pjmedia_port_op; 
     198 
     199} pjmedia_port_op; 
    263200 
    264201 
     
    297234 * This structure describes a media frame.  
    298235 */ 
    299 struct pjmedia_frame 
     236typedef struct pjmedia_frame 
    300237{ 
    301238    pjmedia_frame_type   type;      /**< Frame type.                        */ 
     
    308245                                         may be used for specifying start &  
    309246                                         end bit offset.                    */ 
    310 }; 
    311  
    312  
    313 /**  
    314  * @see pjmedia_frame 
    315  */ 
    316 typedef struct pjmedia_frame pjmedia_frame; 
    317  
    318  
    319 /** 
    320  * For future graph. 
    321  */ 
    322 typedef struct pjmedia_graph pjmedia_graph; 
    323  
    324  
    325 /** 
    326  * @see pjmedia_port 
    327  */ 
    328 typedef struct pjmedia_port pjmedia_port; 
     247} pjmedia_frame; 
     248 
    329249 
    330250/** 
    331251 * Port interface. 
    332252 */ 
    333 struct pjmedia_port 
     253typedef struct pjmedia_port 
    334254{ 
    335255    pjmedia_port_info    info;              /**< Port information.  */ 
     
    347267     * This should only be called by #pjmedia_port_put_frame(). 
    348268     */ 
    349     pj_status_t (*put_frame)(pjmedia_port *this_port,  
     269    pj_status_t (*put_frame)(struct pjmedia_port *this_port,  
    350270                             const pjmedia_frame *frame); 
    351271 
     
    354274     * This should only be called by #pjmedia_port_get_frame(). 
    355275     */ 
    356     pj_status_t (*get_frame)(pjmedia_port *this_port,  
     276    pj_status_t (*get_frame)(struct pjmedia_port *this_port,  
    357277                             pjmedia_frame *frame); 
    358278 
     
    360280     * Called to destroy this port. 
    361281     */ 
    362     pj_status_t (*on_destroy)(pjmedia_port *this_port); 
    363 }; 
     282    pj_status_t (*on_destroy)(struct pjmedia_port *this_port); 
     283 
     284} pjmedia_port; 
    364285 
    365286 
  • pjproject/trunk/pjmedia/include/pjmedia/resample.h

    r1171 r2037  
    3232 * @defgroup PJMEDIA_RESAMPLE Resampling Algorithm 
    3333 * @ingroup PJMEDIA_FRAME_OP 
    34  * @brief Functions to alter frame's clock rate. 
     34 * @brief Sample rate conversion algorithm 
    3535 * @{ 
     36 * 
    3637 * This section describes the base resampling functions. In addition to this, 
    3738 * application can use the @ref PJMEDIA_RESAMPLE_PORT which provides 
     
    123124 * @defgroup PJMEDIA_RESAMPLE_PORT Resample Port 
    124125 * @ingroup PJMEDIA_PORT 
    125  * @brief Media port interface to change media stream's sampling rate. 
     126 * @brief Audio sample rate conversion 
    126127 * @{ 
    127  * This section describes media port abstractoin for @ref PJMEDIA_RESAMPLE. 
     128 * 
     129 * This section describes media port abstraction for @ref PJMEDIA_RESAMPLE. 
    128130 */ 
    129131 
  • pjproject/trunk/pjmedia/include/pjmedia/rtcp.h

    r2026 r2037  
    3434/** 
    3535 * @defgroup PJMED_RTCP RTCP Session and Encapsulation (RFC 3550) 
    36  * @ingroup PJMEDIA_TRANSPORT 
     36 * @ingroup PJMEDIA_SESSION 
     37 * @brief RTCP format and session management 
    3738 * @{ 
     39 * 
    3840 * PJMEDIA implements subsets of RTCP specification (RFC 3550) to monitor 
    3941 * the quality of the real-time media (audio/video) transmission. In 
  • pjproject/trunk/pjmedia/include/pjmedia/rtcp_xr.h

    r1961 r2037  
    3434/** 
    3535 * @defgroup PJMED_RTCP_XR RTCP Extended Report (XR) - RFC 3611 
    36  * @ingroup PJMEDIA_TRANSPORT 
     36 * @ingroup PJMEDIA_SESSION 
     37 * @brief RTCP XR extension to RTCP session 
    3738 * @{ 
     39 * 
    3840 * PJMEDIA implements subsets of RTCP XR specification (RFC 3611) to monitor 
    3941 * the quality of the real-time media (audio/video) transmission. 
  • pjproject/trunk/pjmedia/include/pjmedia/rtp.h

    r1798 r2037  
    3333/** 
    3434 * @defgroup PJMED_RTP RTP Session and Encapsulation (RFC 3550) 
    35  * @ingroup PJMEDIA_TRANSPORT 
     35 * @ingroup PJMEDIA_SESSION 
     36 * @brief RTP format and session management 
    3637 * @{ 
    3738 * 
  • pjproject/trunk/pjmedia/include/pjmedia/sdp.h

    r2032 r2037  
    3030 * @defgroup PJMEDIA_SDP SDP Parsing and Data Structure 
    3131 * @ingroup PJMEDIA_SESSION 
     32 * @brief SDP data structure representation and parsing 
    3233 * @{ 
    3334 * 
  • pjproject/trunk/pjmedia/include/pjmedia/session.h

    r1998 r2037  
    3333 
    3434/** 
    35  * @defgroup PJMEDIA_SESSION Sessions 
    36  * @ingroup PJMEDIA 
    37  */ 
    38  
    39 /** 
    40  * @defgroup PJMED_SES Media session 
    41  * @ingroup PJMEDIA_SESSION 
     35 * @defgroup PJMEDIA_SESSION Media Sessions 
     36 * @brief Management of media sessions 
    4237 * @{ 
    4338 * 
  • pjproject/trunk/pjmedia/include/pjmedia/sound.h

    r2007 r2037  
    3939 * hardware. Application normally uses the higher layer @ref 
    4040 * PJMED_SND_PORT abstraction since it works seamlessly with  
    41  * @ref PJMEDIA_PORT_CONCEPT. 
     41 * @ref PJMEDIA_PORT. 
    4242 * 
    4343 * The sound hardware abstraction basically runs <b>asychronously</b>, 
  • pjproject/trunk/pjmedia/include/pjmedia/splitcomb.h

    r974 r2037  
    3131 * @addtogroup PJMEDIA_SPLITCOMB Media channel splitter/combiner 
    3232 * @ingroup PJMEDIA_PORT 
    33  * @brief Split and combine media channels in media streams 
     33 * @brief Split and combine multiple mono-channel media ports into 
     34 *  a single multiple-channels media port 
    3435 * @{ 
     36 * 
    3537 * This section describes media port to split and combine media 
    3638 * channels in the stream. 
  • pjproject/trunk/pjmedia/include/pjmedia/stereo.h

    r1901 r2037  
    3333/** 
    3434 * @defgroup PJMEDIA_STEREO Monochannel and multichannel audio frame converter 
    35  * @ingroup PJMEDIA_MISC 
    36  * @brief Interface for converting monochannel audio frame to multichannel 
    37  * audio frame and vice versa. 
     35 * @ingroup PJMEDIA_FRAME_OP 
     36 * @brief Mono - multi-channels audio conversion 
    3837 * @{ 
    3938 * 
  • pjproject/trunk/pjmedia/include/pjmedia/stream.h

    r1945 r2037  
    4040 * @defgroup PJMED_STRM Streams 
    4141 * @ingroup PJMEDIA_PORT 
    42  * @brief Media port for communicating with remote peer via the network. 
     42 * @brief Communicating with remote peer via the network 
    4343 * @{ 
    4444 * 
     
    5151 *  - decoding channel, which receives unidirectional media from remote. 
    5252 * 
    53  * A media stream exports media port interface (see @ref PJMEDIA_PORT_CONCEPT) 
     53 * A media stream exports media port interface (see @ref PJMEDIA_PORT) 
    5454 * and application normally uses this interface to interconnect the stream 
    5555 * to other PJMEDIA components. 
     
    6262 *  - one instance of RTCP session (#pjmedia_rtcp_session), 
    6363 *  - and a reference to media transport to send and receive packets 
    64  *    to/from the network (see @ref PJMEDIA_TRANSPORT_H). 
     64 *    to/from the network (see @ref PJMEDIA_TRANSPORT). 
    6565 * 
    6666 * Streams are created by calling #pjmedia_stream_create(), specifying 
  • pjproject/trunk/pjmedia/include/pjmedia/tonegen.h

    r2022 r2037  
    2828 
    2929/** 
    30  * @defgroup PJMEDIA_MF_DTMF_TONE_GENERATOR Tone (sine, MF, DTMF) Generator 
     30 * @defgroup PJMEDIA_MF_DTMF_TONE_GENERATOR Multi-frequency tone generator 
    3131 * @ingroup PJMEDIA_PORT 
    32  * @brief Tone (sine, MF, DTMF) Generator 
     32 * @brief Multi-frequency tone generator 
    3333 * @{ 
     34 * 
    3435 * This page describes tone generator media port. A tone generator can be 
    3536 * used to generate a single frequency sine wave or dual frequency tones 
  • pjproject/trunk/pjmedia/include/pjmedia/transport.h

    r2032 r2037  
    3030 
    3131/** 
    32  * @defgroup PJMEDIA_TRANSPORT Media Transports 
    33  * @ingroup PJMEDIA 
     32 * @defgroup PJMEDIA_TRANSPORT Media Transport 
    3433 * @brief Transports. 
    35  * Transport related components. 
    36  */ 
    37  
    38 /** 
    39  * @defgroup PJMEDIA_TRANSPORT_H Media Network Transport Interface 
    40  * @ingroup PJMEDIA_TRANSPORT 
    41  * @brief PJMEDIA object for sending/receiving media packets over the network 
    4234 * @{ 
    4335 * The media transport (#pjmedia_transport) is the object to send and 
    4436 * receive media packets over the network. The media transport interface 
    4537 * allows the library to be extended to support different types of  
    46  * transports to send and receive packets. Currently only the standard 
    47  * UDP transport implementation is provided (see \ref PJMEDIA_TRANSPORT_UDP), 
    48  * but application designer may extend the library to support other types 
    49  * of custom transports such as RTP/RTCP over TCP, RTP/RTCP over HTTP, etc. 
     38 * transports to send and receive packets. 
    5039 * 
    5140 * The media transport is declared as #pjmedia_transport "class", which 
     
    6352 
    6453 
    65  * \section PJMEDIA_TRANSPORT_H_USING Using the Media Transport 
     54 * \section PJMEDIA_TRANSPORT_H_USING Basic Media Transport Usage 
    6655 * 
    6756 * The media transport's life-cycle normally follows the following stages. 
     
    142131 * 
    143132 * 
    144  * \section PJMEDIA_TRANSPORT_H_EXT Media Transport Extended API 
     133 * \section offer_answer Interaction with SDP Offer/Answer 
    145134  
    146    Apart from the basic interface above, the media transport provides some 
    147    more APIs: 
    148  
    149     - pjmedia_transport_media_create() 
    150    \n 
    151       This API is provided to allow the media transport to add more information 
    152       in the SDP offer, before the offer is sent to remote. Additionally, for  
    153       answerer side, this callback allows the media transport to reject the  
    154       offer before this offer is processed by the SDP negotiator.  
    155  
    156     - pjmedia_transport_media_start() 
    157     \n 
    158       This API should be called after offer and answer are negotiated, and  
    159       both SDPs are available, and before the media is started. For answerer 
    160       side, this callback will be called before the answer is sent to remote, 
    161       to allow media transport to put additional info in the SDP. For  
    162       offerer side, this callback will be called after SDP answer is  
    163       received. In this callback, the media transport has the final chance  
    164       to negotiate/validate the offer and answer before media is really  
    165       started (and answer is sent, for answerer side).  
    166  
    167     - pjmedia_transport_media_stop() 
    168     \n 
    169       This API should be called when the media is stopped, to allow the media 
    170       transport to release its resources.  
    171  
    172     - pjmedia_transport_simulate_lost() 
    173     \n 
    174       This API can be used to instruct media transport to simulate packet lost 
    175       on a particular direction. 
     135   For basic UDP transport, the \ref PJMEDIA_TRANSPORT_H_USING above is 
     136   sufficient to use the media transport. However, more complex media 
     137   transports such as \ref PJMEDIA_TRANSPORT_SRTP and \ref 
     138   PJMEDIA_TRANSPORT_ICE requires closer interactions with SDP offer and 
     139   answer negotiation. 
     140 
     141   The media transports can interact with the SDP offer/answer via 
     142   these APIs: 
     143     - #pjmedia_transport_media_create(), to initialize the media transport 
     144       for new media session, 
     145     - #pjmedia_transport_encode_sdp(), to encode SDP offer or answer, 
     146     - #pjmedia_transport_media_start(), to activate the settings that 
     147       have been negotiated by SDP offer answer, and 
     148     - #pjmedia_transport_media_stop(), to deinitialize the media transport 
     149       and reset the transport to its idle state. 
     150    
     151   The usage of these API in the context of SDP offer answer will be  
     152   described below. 
     153 
     154   \subsection media_create Initializing Transport for New Session 
     155 
     156   Application must call #pjmedia_transport_media_create() before using 
     157   the transport for a new session. 
     158 
     159   \subsection creat_oa Creating SDP Offer and Answer 
     160 
     161   The #pjmedia_transport_encode_sdp() is used to put additional information 
     162   from the transport to the local SDP, before the SDP is sent and negotiated 
     163   with remote SDP. 
     164 
     165   When creating an offer, call #pjmedia_transport_encode_sdp() with 
     166   local SDP (and NULL as \a rem_sdp). The media transport will add the 
     167   relevant attributes in the local SDP. Application then gives the local 
     168   SDP to the invite session to be sent to remote agent. 
     169 
     170   When creating an answer, also call #pjmedia_transport_encode_sdp(), 
     171   but this time specify both local and remote SDP to the function. The  
     172   media transport will once again modify the local SDP and add relevant 
     173   attributes to the local SDP, if the appropriate attributes related to 
     174   the transport functionality are present in remote offer. The remote 
     175   SDP does not contain the relevant attributes, then the specific transport 
     176   functionality will not be activated for the session. 
     177 
     178   The #pjmedia_transport_encode_sdp() should also be called when application 
     179   sends subsequent SDP offer or answer. The media transport will encode 
     180   the appropriate attributes based on the state of the session. 
     181 
     182   \subsection media_start Offer/Answer Completion 
     183 
     184   Once both local and remote SDP have been negotiated by the  
     185   \ref PJMEDIA_SDP_NEG (normally this is part of PJSIP invite session), 
     186   application should give both local and remote SDP to  
     187   #pjmedia_transport_media_start() so that the settings are activated 
     188   for the session. This function should be called for both initial and 
     189   subsequent SDP negotiation. 
     190 
     191   \subsection media_stop Stopping Transport 
     192 
     193   Once session is stop application must call #pjmedia_transport_media_stop() 
     194   to deactivate the transport feature. Application may reuse the transport 
     195   for subsequent media session by repeating the #pjmedia_transport_media_create(), 
     196   #pjmedia_transport_encode_sdp(), #pjmedia_transport_media_start(), and 
     197   #pjmedia_transport_media_stop() above. 
    176198 
    177199 * \section PJMEDIA_TRANSPORT_H_IMPL Implementing Media Transport 
     
    199221 * example, to send RTP/RTCP packets). 
    200222 * 
    201  * For an example of media transport implementation, please refer to  
    202  * <tt>transport_udp.h</tt> and <tt>transport_udp.c</tt> in PJMEDIA source 
    203  * distribution. 
    204  */ 
     223 */ 
     224 
     225 
     226#include <pjmedia/sdp.h> 
    205227 
    206228PJ_BEGIN_DECL 
    207  
    208 #include <pjmedia/sdp.h> 
    209229 
    210230 
     
    347367    /** 
    348368     * This function is called by application to start the transport 
    349      * based on SDP negotiation result. 
     369     * based on local and remote SDP. 
    350370     * 
    351371     * Application should call #pjmedia_transport_media_start() instead of  
     
    414434 
    415435/** 
    416  * This structure declares stream transport. A stream transport is called 
     436 * This structure declares media transport. A media transport is called 
    417437 * by the stream to transmit a packet, and will notify stream when 
    418438 * incoming packet is arrived. 
     
    638658 
    639659/** 
    640  * Prepare the media transport for a new media session, and optionally 
    641  * encode the relevant information in the \a sdp_local. Application must 
     660 * Prepare the media transport for a new media session, Application must 
    642661 * call this function before starting a new media session using this 
    643662 * transport. 
     
    649668 * @param sdp_pool      Pool object to allocate memory related to SDP 
    650669 *                      messaging components. 
    651  * @param option        Option flags, from #pjmedia_tranport_media_option 
    652  * @param rem_sdp       Remote SDP if it's available. 
     670 * @param options       Option flags, from #pjmedia_tranport_media_option 
     671 * @param rem_sdp       Remote SDP if local SDP is an answer, otherwise 
     672 *                      specify NULL if SDP is an offer. 
    653673 * @param media_index   Media index in SDP. 
    654674 * 
     
    668688/** 
    669689 * Put transport specific information into the SDP. This function can be 
    670  * called to create SDP offer or answer, depending whether \a rem_sdp 
    671  * parameter is present. 
     690 * called to put transport specific information in the initial or 
     691 * subsequent SDP offer or answer. 
    672692 * 
    673693 * This is just a simple wrapper which calls <tt>encode_sdp()</tt> member  
     
    679699 * @param sdp           The local SDP to be filled in information from the 
    680700 *                      media transport. 
    681  * @param rem_sdp       Remote SDP if it's available. 
     701 * @param rem_sdp       Remote SDP if local SDP is an answer, otherwise 
     702 *                      specify NULL if SDP is an offer. 
    682703 * @param media_index   Media index in SDP. 
    683704 * 
     
    695716 
    696717/** 
    697  * Start the transport with regards to SDP negotiation result.  
    698  * This API should be called after offer and answer are negotiated, and  
    699  * both SDPs are available, and before the media is started. For answerer 
    700  * side, this callback will be called before the answer is sent to remote, 
    701  * to allow media transport to put additional info in the SDP. For  
    702  * offerer side, this callback will be called after SDP answer is  
    703  * received. In this callback, the media transport has the final chance  
    704  * to negotiate/validate the offer and answer before media is really  
    705  * started (and answer is sent, for answerer side).  
     718 * Start the transport session with the settings in both local and remote  
     719 * SDP. The actual work that is done by this function depends on the  
     720 * underlying transport type. For SRTP, this will activate the encryption 
     721 * and decryption based on the keys found the SDPs. For ICE, this will 
     722 * start ICE negotiation according to the information found in the SDPs. 
    706723 * 
    707724 * This is just a simple wrapper which calls <tt>media_start()</tt> member  
     
    710727 * @param tp            The media transport. 
    711728 * @param tmp_pool      The memory pool for allocating temporary objects. 
    712  * @param option        The media transport option. 
    713729 * @param sdp_local     Local SDP. 
    714730 * @param sdp_remote    Remote SDP. 
    715  * @param media_index   Media index to start. 
     731 * @param media_index   Media index in the SDP. 
    716732 * 
    717733 * @return              PJ_SUCCESS on success, or the appropriate error code. 
     
    729745 
    730746/** 
    731  * Stop the transport.  
    732  * This API should be called when the media is stopped, to allow the media 
    733  * transport to release its resources.  
     747 * This API should be called when the session is stopped, to allow the media 
     748 * transport to release its resources used for the session. 
    734749 * 
    735750 * This is just a simple wrapper which calls <tt>media_stop()</tt> member  
  • pjproject/trunk/pjmedia/include/pjmedia/transport_ice.h

    r1989 r2037  
    3131 
    3232/** 
    33  * @defgroup PJMEDIA_TRANSPORT_ICE ICE Capable media transport  
     33 * @defgroup PJMEDIA_TRANSPORT_ICE ICE Media Transport  
    3434 * @ingroup PJMEDIA_TRANSPORT 
    35  * @brief Implementation of media transport with ICE. 
     35 * @brief Interactive Connectivity Establishment (ICE) transport 
    3636 * @{ 
     37 * 
     38 * This describes the implementation of media transport using 
     39 * Interactive Connectivity Establishment (ICE) protocol. 
    3740 */ 
    3841 
     
    5861} pjmedia_ice_cb; 
    5962 
     63 
    6064/** 
    61  * Create the media transport. 
     65 * Create the Interactive Connectivity Establishment (ICE) media transport 
     66 * using the specified configuration. When STUN or TURN (or both) is used, 
     67 * the creation operation will complete asynchronously, when STUN resolution 
     68 * and TURN allocation completes. When the initialization completes, the 
     69 * \a on_ice_complete() complete will be called with \a op parameter equal 
     70 * to PJ_ICE_STRANS_OP_INIT. 
     71 * 
     72 * In addition, this transport will also notify the application about the 
     73 * result of ICE negotiation, also in \a on_ice_complete() callback. In this 
     74 * case the callback will be called with \a op parameter equal to 
     75 * PJ_ICE_STRANS_OP_NEGOTIATION. 
     76 * 
     77 * Other than this, application should use the \ref PJMEDIA_TRANSPORT API 
     78 * to manipulate this media transport. 
    6279 * 
    6380 * @param endpt         The media endpoint. 
     
    6683 * @param comp_cnt      Number of components to be created. 
    6784 * @param cfg           Pointer to configuration settings. 
    68  * @param cb            Optional callbacks. 
     85 * @param cb            Optional structure containing ICE specific callbacks. 
    6986 * @param p_tp          Pointer to receive the media transport instance. 
    7087 * 
  • pjproject/trunk/pjmedia/include/pjmedia/transport_srtp.h

    r1860 r2037  
    2121 
    2222/** 
    23  * @file srtp.h 
     23 * @file transport_srtp.h 
    2424 * @brief Secure RTP (SRTP) transport. 
    2525 */ 
     
    2929 
    3030/** 
    31  * @defgroup PJMEDIA_TRANSPORT_SRTP Secure RTP (SRTP) Transport Adapter 
     31 * @defgroup PJMEDIA_TRANSPORT_SRTP Secure RTP (SRTP) Media Transport 
    3232 * @ingroup PJMEDIA_TRANSPORT 
    3333 * @brief Media transport adapter to add SRTP feature to existing transports 
     
    3535 * 
    3636 * This module implements SRTP as described by RFC 3711, using RFC 4568 as 
    37  * key exchange method. It implements \ref PJMEDIA_TRANSPORT_H to integrate 
     37 * key exchange method. It implements \ref PJMEDIA_TRANSPORT to integrate 
    3838 * with the rest of PJMEDIA framework. 
    3939 * 
  • pjproject/trunk/pjmedia/include/pjmedia/transport_udp.h

    r1735 r2037  
    3030 
    3131/** 
    32  * @defgroup PJMEDIA_TRANSPORT_UDP UDP Socket Transport 
     32 * @defgroup PJMEDIA_TRANSPORT_UDP UDP Media Transport 
    3333 * @ingroup PJMEDIA_TRANSPORT 
    3434 * @brief Implementation of media transport with UDP sockets. 
    3535 * @{ 
     36 * 
     37 * The UDP media transport is the standard based media transport 
     38 * as described by RFC 3550/3551. It can be used to facilitate RTP/RTCP 
     39 * unicast or multicast communication. 
    3640 */ 
    3741 
  • pjproject/trunk/pjmedia/include/pjmedia/types.h

    r1827 r2037  
    2929#include <pj/string.h>      /* pj_memcpy(), pj_memset() */ 
    3030 
    31  
    32 /** 
    33  * @defgroup PJMEDIA_FRAME_OP Frame Operations 
    34  * @ingroup PJMEDIA 
    35  */ 
    36  
    37 /** 
    38  * @defgroup PJMEDIA_MISC Misc 
    39  * @ingroup PJMEDIA 
     31/** 
     32 * @defgroup PJMEDIA_PORT Media Ports Framework 
     33 * @brief Extensible framework for media terminations 
     34 */ 
     35 
     36 
     37/** 
     38 * @defgroup PJMEDIA_FRAME_OP Audio Manipulation Algorithms 
     39 * @brief Algorithms to manipulate audio frames 
    4040 */ 
    4141 
  • pjproject/trunk/pjmedia/include/pjmedia/wav_playlist.h

    r974 r2037  
    3434 * @defgroup PJMEDIA_WAV_PLAYLIST WAV File Play List 
    3535 * @ingroup PJMEDIA_PORT 
    36  * @brief WAV File Playlist 
     36 * @brief Audio playback of multiple WAV files 
    3737 * @{ 
     38 * 
    3839 * The WAV play list port enables application to play back multiple 
    3940 * WAV files in a playlist. 
  • pjproject/trunk/pjmedia/include/pjmedia/wav_port.h

    r1680 r2037  
    3434 * @defgroup PJMEDIA_FILE_PLAY WAV File Player 
    3535 * @ingroup PJMEDIA_PORT 
    36  * @brief WAV File Player 
     36 * @brief Audio playback from WAV file 
    3737 * @{ 
    3838 */ 
     
    138138 * @defgroup PJMEDIA_FILE_REC File Writer (Recorder) 
    139139 * @ingroup PJMEDIA_PORT 
    140  * @brief WAV File Writer (Recorder) 
     140 * @brief Audio capture/recording to WAV file 
    141141 * @{ 
    142142 */ 
  • pjproject/trunk/pjmedia/include/pjmedia/wave.h

    r974 r2037  
    2727#include <pjmedia/types.h> 
    2828 
     29/** 
     30 * @defgroup PJMEDIA_FILE_FORMAT File Formats 
     31 * @brief Supported file formats 
     32 */ 
     33 
    2934 
    3035/** 
    3136 * @defgroup PJMEDIA_WAVE WAVE Header 
    32  * @ingroup PJMEDIA_MISC 
     37 * @ingroup PJMEDIA_FILE_FORMAT 
     38 * @brief Representation of RIFF/WAVE file format 
    3339 * @{ 
    3440 * 
    35  * Supports for simple/canonical Microsoft RIFF WAVE format. 
     41 * This the the low level representation of RIFF/WAVE file format. For 
     42 * higher abstraction, please see \ref PJMEDIA_FILE_PLAY and  
     43 * \ref PJMEDIA_FILE_REC. 
    3644 */ 
    3745 
  • pjproject/trunk/pjmedia/include/pjmedia/wsola.h

    r1844 r2037  
    2929 * @defgroup PJMED_WSOLA Waveform Similarity Based Overlap-Add (WSOLA) 
    3030 * @ingroup PJMEDIA_FRAME_OP 
     31 * @brief Time-scale modification to audio without affecting the pitch 
    3132 * @{ 
     33 * 
    3234 * This section describes Waveform Similarity Based Overlap-Add (WSOLA) 
    3335 * implementation in PJMEDIA. The WSOLA API here can be used both to  
     
    3537 * without altering the pitch, or as a mean for performing packet loss 
    3638 * concealment (WSOLA). 
     39 * 
     40 * The WSOLA implementation is used by \ref PJMED_DELAYBUF and \ref PJMED_PLC. 
    3741 */ 
    3842 
  • pjproject/trunk/pjnath/build/Makefile

    r1988 r2037  
    7979 
    8080doc: 
    81         cd .. && doxygen docs/doxygen.cfg 
     81        cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg 
     82        @if test ! "$(WWWDIR)" == ""; then \ 
     83                echo "Copying to $(WWWDIR)/pjnath/docs/html.." ; \ 
     84                cp -a ../docs/html/* $(WWWDIR)/pjnath/docs/html/ ; \ 
     85        fi 
    8286 
    8387dep: depend 
  • pjproject/trunk/pjnath/docs

    • Property svn:ignore
      •  

        old new  
        11html 
        22latex 
         3pjnath.tag 
  • pjproject/trunk/pjnath/docs/doxygen.cfg

    r1111 r2037  
    295295 
    296296SHOW_USED_FILES        = YES 
     297TYPEDEF_HIDES_STRUCT    = YES 
    297298 
    298299#--------------------------------------------------------------------------- 
     
    871872# The TAGFILES tag can be used to specify one or more tagfiles. 
    872873 
    873 TAGFILES               =  
     874TAGFILES               = ../pjlib/docs/pjlib.tag=../../../pjlib/docs/html ../pjlib-util/docs/pjlib-util.tag=../../../pjlib-util/docs/html ../pjsip/docs/pjsip.tag=../../../pjsip/docs/html ../pjmedia/docs/pjmedia.tag=../../../pjmedia/docs/html 
    874875 
    875876# When a file name is specified after GENERATE_TAGFILE, doxygen will create  
    876877# a tag file that is based on the input files it reads. 
    877878 
    878 GENERATE_TAGFILE       =  
     879GENERATE_TAGFILE       = ../pjnath/docs/pjnath.tag 
    879880 
    880881# If the ALLEXTERNALS tag is set to YES all external classes will be listed  
     
    888889# be listed. 
    889890 
    890 EXTERNAL_GROUPS        = YES 
     891EXTERNAL_GROUPS        = NO 
    891892 
    892893# The PERL_PATH should be the absolute path and name of the perl script  
    893894# interpreter (i.e. the result of `which perl'). 
    894895 
    895 PERL_PATH              = /usr/bin/perl 
     896#PERL_PATH              = /usr/bin/perl 
     897PERL_PATH              = /c/Perl/bin/perl 
    896898 
    897899#--------------------------------------------------------------------------- 
  • pjproject/trunk/pjnath/docs/footer.html

    r1110 r2037  
    22<hr><center> 
    33PJNATH - Open Source NAT traversal helper library supporting STUN, TURN, and ICE<br> 
    4 (C)2001-2007 Benny Prijono 
     4(C)2001-2008 Benny Prijono 
    55</center> 
    66 
  • pjproject/trunk/pjnath/include/pjnath/stun_sock.h

    r1988 r2037  
    3838 * @ingroup PJNATH_STUN 
    3939 * @{ 
     40 * 
    4041 * The STUN transport provides asynchronous UDP like socket transport 
    4142 * with the additional capability to query the publicly mapped transport 
     
    129130     *    set to PJ_STUN_SOCK_BINDING_OP \a status  argument set to  
    130131     *    PJ_SUCCESS. 
    131      *  - anytime when the transport has detected that the publicly mapped 
     132     *  - anytime when the transport has detected that the publicly mapped 
    132133     *    address has changed, this callback will be called with \a op 
    133134     *    argument set to PJ_STUN_SOCK_KEEP_ALIVE_OP and \a status 
     
    135136     *    application will get the resolved public address in the 
    136137     *    #pj_stun_sock_info structure. 
    137      *  - for any terminal error (such as STUN time-out, DNS resolution 
     138     *  - for any terminal error (such as STUN time-out, DNS resolution 
    138139     *    failure, or keep-alive failure), this callback will be called  
    139140     *    with the \a status argument set to non-PJ_SUCCESS. 
  • pjproject/trunk/pjsip-apps/build/Makefile

    r1201 r2037  
    5151 
    5252doc: 
    53         cd .. && doxygen docs/doxygen.cfg 
    5453 
    5554dep: depend 
  • pjproject/trunk/pjsip/build/Makefile

    r1959 r2037  
    110110 
    111111doc: 
    112         cd .. && doxygen docs/doxygen.cfg 
     112        cd .. && rm -rf docs/html docs/latex && doxygen docs/doxygen.cfg 
     113        @if test ! "$(WWWDIR)" == ""; then \ 
     114                echo "Copying to $(WWWDIR)/pjsip/docs/html.." ; \ 
     115                cp -a ../docs/html/* $(WWWDIR)/pjsip/docs/html/ ; \ 
     116        fi 
    113117 
    114118dep: depend 
  • pjproject/trunk/pjsip/docs

    • Property svn:ignore
      •  

        old new  
        22latex 
        33rtf 
         4pjsip.tag 
  • pjproject/trunk/pjsip/docs/doxygen.cfg

    r1748 r2037  
    296296 
    297297SHOW_USED_FILES        = YES 
     298TYPEDEF_HIDES_STRUCT    = YES 
    298299 
    299300#--------------------------------------------------------------------------- 
     
    870871# The TAGFILES tag can be used to specify one or more tagfiles. 
    871872 
    872 TAGFILES               =  
     873TAGFILES               = ../pjlib/docs/pjlib.tag=../../../pjlib/docs/html ../pjlib-util/docs/pjlib-util.tag=../../../pjlib-util/docs/html ../pjnath/docs/pjnath.tag=../../../pjnath/docs/html ../pjmedia/docs/pjmedia.tag=../../../pjmedia/docs/html 
    873874 
    874875# When a file name is specified after GENERATE_TAGFILE, doxygen will create  
    875876# a tag file that is based on the input files it reads. 
    876877 
    877 GENERATE_TAGFILE       =  
     878GENERATE_TAGFILE       = docs/pjsip.tag 
    878879 
    879880# If the ALLEXTERNALS tag is set to YES all external classes will be listed  
     
    887888# be listed. 
    888889 
    889 EXTERNAL_GROUPS        = YES 
     890EXTERNAL_GROUPS        = NO 
    890891 
    891892# The PERL_PATH should be the absolute path and name of the perl script  
    892893# interpreter (i.e. the result of `which perl'). 
    893894 
    894 PERL_PATH              = /usr/bin/perl 
     895#PERL_PATH              = /usr/bin/perl 
     896PERL_PATH              = /c/Perl/bin/perl 
    895897 
    896898#--------------------------------------------------------------------------- 
  • pjproject/trunk/pjsip/docs/footer.html

    r905 r2037  
    22<hr><center> 
    33PJSIP Open Source, high performance, small footprint, and very very portable SIP stack<br> 
    4 (C)2003-2007 Benny Prijono 
     4(C)2003-2008 Benny Prijono 
    55</center> 
    66<!--#include virtual="/footer.html" --> 
  • pjproject/trunk/pjsip/include/pjsip-ua/sip_inv.h

    r1748 r2037  
    3232/** 
    3333 * @defgroup PJSIP_HIGH_UA User Agent Library 
    34  * @ingroup PJSIP 
    3534 * @brief Mid-level User Agent Library. 
    3635 * 
  • pjproject/trunk/pjsip/include/pjsip/sip_config.h

    r1959 r2037  
    2727 
    2828/** 
    29  * @defgroup PJSIP PJSIP Library Collection 
    30  */ 
    31  
    32 /** 
    3329 * @defgroup PJSIP_CORE Core SIP Library 
    34  * @ingroup PJSIP 
    3530 * @brief The core framework from which all other SIP components depends on. 
    3631 *  
  • pjproject/trunk/pjsip/include/pjsip/sip_transaction.h

    r1748 r2037  
    3434/** 
    3535 * @defgroup PJSIP_TRANSACT Transaction Layer 
    36  * @ingroup PJSIP 
    3736 * @brief Provides statefull message processing. 
    3837 * 
  • pjproject/trunk/pjsip/include/pjsip/sip_ua_layer.h

    r1594 r2037  
    3131/** 
    3232 * @defgroup PJSIP_UA Base User Agent Layer/Common Dialog Layer 
    33  * @ingroup PJSIP 
    3433 * @brief Dialog management. 
    3534 * 
  • pjproject/trunk/pjsip/include/pjsip/sip_util.h

    r1816 r2037  
    583583/** 
    584584 * @defgroup PJSIP_PROXY_CORE Core Proxy Layer 
    585  * @ingroup PJSIP 
    586585 * @brief Core proxy operations 
    587586 * @{ 
  • pjproject/trunk/pjsip/include/pjsip_simple.h

    r974 r2037  
    2020/** 
    2121 * @defgroup PJSIP_SIMPLE Event and Presence Framework 
    22  * @ingroup PJSIP 
    2322 */ 
    2423 
  • pjproject/trunk/pjsip/include/pjsua-lib/pjsua.h

    r2018 r2037  
    5656/** 
    5757 * @defgroup PJSUA_LIB PJSUA API - High Level Softphone API for C/C++ and Python 
    58  * @ingroup PJSIP 
    5958 * @brief Very high level API for constructing SIP UA applications. 
    6059 * @{ 
  • pjproject/trunk/third_party/build/Makefile

    r1730 r2037  
    1313        done 
    1414 
     15doc: 
     16         
Note: See TracChangeset for help on using the changeset viewer.