blob: 9ebd27e6f9275439ad7d2a5cf175fa9e569c7526 [file] [log] [blame]
/* $Id$ */
/*
* Copyright (C)2003-2006 Benny Prijono <benny@prijono.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __PJMEDIA_DOXYGEN_H__
#define __PJMEDIA_DOXYGEN_H__
/**
* @file doxygen.h
* @brief Doxygen's mainpage.
*/
/**
* @defgroup PJMEDIA PJMEDIA Library
*/
/*////////////////////////////////////////////////////////////////////////// */
/*
INTRODUCTION PAGE
*/
/**
* @mainpage PJMEDIA and PJMEDIA-CODEC
*
* \n
* @section intro_sec PJMEDIA
*
* PJMEDIA is a rather complete media stack, distributed under Open Source/GPL
* terms, and featuring small footprint and good extensibility and portability.
*
* Please click the <A HREF="modules.htm"><b>Modules</b></A> link on top
* of this page to get the complete features currently present in PJMEDIA.
*
* Also please read the documentation about @ref PJMEDIA_PORT_CONCEPT,
* which is a major concept that is used for implementing many objects in
* the library.
*
* \n
* @section pjmedia_codec_sec PJMEDIA-CODEC
*
* PJMEDIA-CODEC is a static library containing various codec implementations,
* wrapped into PJMEDIA codec framework. The static library is designed as
* such so that only codecs that are explicitly initialized are linked with
* the application, therefore keeping the application size in control.
*
* Please see @ref pjmedia_codec_page on how to use the codec in
* PJMEDIA-CODEC.
*
* \n
* @section pjmedia_lic Copying and Acknowledgements
*
* Please see @ref lic_stuffs page for the details.
*/
/**
* @page pjmedia_codec_page Using PJMEDIA-CODEC
*
* Before application can use a codec, it needs to initialize and register
* the codec to the codec manager. This is accomplished with using
* constructs like the following:
*
\code
#include <pjmedia.h>
#include <pjmedia-codec.h>
init_codecs( pjmedia_endpt *med_ept )
{
// Register G.711 codecs
pjmedia_codec_g711_init(med_ept);
// Register GSM codec.
pjmedia_codec_gsm_init(med_ept);
// Register Speex codecs.
// With the default flag, this will register three codecs:
// speex/8000, speex/16000, and speex/32000
pjmedia_codec_speex_init(med_ept, 0, 0, 0);
}
\endcode
*
* After the codec is registered, application may create the encoder/decoder
* instance, by using the API as documented in @ref PJMEDIA_CODEC.
*/
/**
* @page lic_stuffs Copying and Acknowledgements
* @section lic_stuff Copying and Acknowledgements
* @subsection pjmedia_about_subsec About PJMEDIA
*
* PJMEDIA is distributed under GPL terms (other licensing schemes may be
* arranged):
\verbatim
Copyright (C) 2003-2006 Benny Prijono <benny@prijono.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
\endverbatim
*
*
* @section other_acks Acknowlegments
* @subsection portaudio_subsec PortAudio
*
* PortAudio is supported as one of the sound device backend, and
* is used by default on Linux/Unix and MacOS X target.
*
* Please visit <A HREF="http://www.portaudio.com">http://www.portaudio.com</A>
* for more info.
*
* PortAudio is distributed with the following condition.
\verbatim
Based on the Open Source API proposed by Ross Bencina
Copyright (c) 1999-2000 Phil Burk
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
\endverbatim
*
*
* @subsection resample_ack Resample
*
* PJMEDIA uses <tt>resample-1.8.tar.gz</tt> from
* <A HREF="http://www-ccrma.stanford.edu/~jos/resample/">
* Digital Audio Resampling Home Page</A>. This library is distibuted
* on LGPL terms.
*
* Some excerpts from the original source codes:
\verbatim
HISTORY
The first version of this software was written by Julius O. Smith III
<jos@ccrma.stanford.edu> at CCRMA <http://www-ccrma.stanford.edu> in
1981. It was called SRCONV and was written in SAIL for PDP-10
compatible machines. The algorithm was first published in
Smith, Julius O. and Phil Gossett. ``A Flexible Sampling-Rate
Conversion Method,'' Proceedings (2): 19.4.1-19.4.4, IEEE Conference
on Acoustics, Speech, and Signal Processing, San Diego, March 1984.
An expanded tutorial based on this paper is available at the Digital
Audio Resampling Home Page given above.
Circa 1988, the SRCONV program was translated from SAIL to C by
Christopher Lee Fraley working with Roger Dannenberg at CMU.
Since then, the C version has been maintained by jos.
Sndlib support was added 6/99 by John Gibson <jgg9c@virginia.edu>.
The resample program is free software distributed in accordance
with the Lesser GNU Public License (LGPL). There is NO warranty; not
even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
\endverbatim
*
* @subsection jb_ack Adaptive Jitter Buffer
*
* The PJMEDIA jitter buffer is based on implementation kindly donated
* by <A HREF="http://www.switchlab.com">Switchlab, Ltd.</A>, and is
* distributed under PJMEDIA licensing terms.
*
*
* @subsection silence_det_ack Adaptive Silence Detector
*
* The adaptive silence detector was based on silence detector
* implementation in <A HREF="http://www.openh323.org">Open H323</A>
* project. I couldn't find the source code anymore, but generally
* Open H323 files are distributed under MPL terms and has the
* following excerpts:
\verbatim
Open H323 Library
Copyright (c) 1998-2000 Equivalence Pty. Ltd.
The contents of this file are subject to the Mozilla Public License
Version 1.0 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
The Original Code is Open H323 Library.
The Initial Developer of the Original Code is Equivalence Pty. Ltd.
Portions of this code were written with the assisance of funding from
Vovida Networks, Inc. http://www.vovida.com.
\endverbatim
* @subsection gsm_ack GSM Codec
*
* PJMEDIA uses GSM
* <A HREF="http://kbs.cs.tu-berlin.de/~jutta/toast.html">GSM 06.10</A>
* version 1.0 at patchlevel 12. It has the following Copyright notice:
*
\verbatim
Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann,
Technische Universitaet Berlin
Any use of this software is permitted provided that this notice is not
removed and that neither the authors nor the Technische Universitaet Berlin
are deemed to have made any representations as to the suitability of this
software for any purpose nor are held responsible for any defects of
this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE.
As a matter of courtesy, the authors request to be informed about uses
this software has found, about bugs in this software, and about any
improvements that may be of general interest.
Berlin, 28.11.1994
Jutta Degener
Carsten Bormann
\endverbatim
*
*
* @subsection speex_codec_ack Speex Codec
*
* PJMEDIA uses Speex codec uses version 1.1.12 from <A HREF="http://www.speex.org">
* www.speex.org</A>. The Speex library comes with the following Copying
* notice:
\verbatim
Copyright 2002-2005
Xiph.org Foundation
Jean-Marc Valin
David Rowe
EpicGames
Analog Devices
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of the Xiph.org Foundation nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\endverbatim
*
*
* @subsection g711_codec_ack G.711 Codec
*
* The G.711 codec algorithm came from Sun Microsystems, Inc, and it's
* got the following excerpts:
*
\verbatim
This source code is a product of Sun Microsystems, Inc. and is provided
for unrestricted use. Users may copy or modify this source code without
charge.
SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
Sun source code is provided with no support and without any obligation on
the part of Sun Microsystems, Inc. to assist in its use, correction,
modification or enhancement.
SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
OR ANY PART THEREOF.
In no event will Sun Microsystems, Inc. be liable for any lost revenue
or profits or other special, indirect and consequential damages, even if
Sun has been advised of the possibility of such damages.
Sun Microsystems, Inc.
2550 Garcia Avenue
Mountain View, California 94043
\endverbatim
*
*/
#endif /* __PJMEDIA_DOXYGEN_H__ */