====================================================================
|
WinRTP README
|
====================================================================
|
WinRTP: Audio RTP Library for Windows
|
Release 2.1
|
February, 2003
|
|
|
====================================================================
|
LICENSE AND COPYRIGHT
|
====================================================================
|
The Vovida Software License, Version 1.0
|
Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
|
|
Redistribution and use in source and binary forms, with or without
|
modification, are permitted provided that the following conditions
|
are met:
|
|
1. Redistributions of source code must retain the above copyright
|
notice, this list of conditions and the following disclaimer.
|
|
2. 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.
|
|
3. The names "VOCAL", "Vovida Open Communication Application Library",
|
and "Vovida Open Communication Application Library (VOCAL)" must
|
not be used to endorse or promote products derived from this
|
software without prior written permission. For written
|
permission, please contact vocal@vovida.org.
|
|
4. Products derived from this software may not be called "VOCAL", nor
|
may "VOCAL" appear in their name, without prior written
|
permission of Vovida Networks, Inc.
|
|
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
|
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
|
NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
|
NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
|
IN EXCESS OF $1,000, NOR FOR ANY 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.
|
--------------------------------------------------------------------
|
All third party licenses and copyright notices and other required
|
legends also need to be complied with as well.
|
|
|
====================================================================
|
INTRODUCTION
|
====================================================================
|
Description:
|
WinRTP is a COM component which can originate RTP (Realtime Transport
|
Protocol) media from a microphone and terminate RTP media on a speaker.
|
|
WinRTP processes audio using 'filter-graphs'. It supports
|
· Audio mixing, and playing of .wav files of any format
|
· Dejitter buffer for improved sound quality during packet loss:
|
both static or dynamic jitter buffers are supported
|
· IP Precedence to enable Quality of Service prioritization.
|
· DSP algorithms: for pre-emphasis, post-emphasis and volume limiting
|
to enhance sharpness of audio streams
|
|
Documentation:
|
Real-time Transport Protocol = IETF RFC1889
|
http://www.ietf.org/rfc/rfc1889.txt?number=1889
|
|
WinRTP Programmers Guide
|
|
WinRTP Design Document 2.0.0 (Almost fully applicable to WinRTP 2.1.0)
|
|
License: Vocal Public License
|
|
Status: Complete, Stable
|
|
To Do:
|
|
====================================================================
|
NEW FEATURES AND FUNCTIONS IN THIS RELEASE (WinRTP 2.1.0)
|
====================================================================
|
· This is a maintenance release with lots of bug fixes
|
. WinRTP now supports dynamic amplification of incoming RTP audio
|
stream using the PCMVolumeMaximizer filter. This feature is
|
fully configurable through the registry. So now, audio streams
|
sound as loud as other sounds on the system (e.g. wav files)
|
. A new "GenericRTP2PCMDecoder" filter which can dynamically
|
detect the codec type of incoming RTP packets and invoke
|
the appropriate transformer to convert it into PCM
|
|
====================================================================
|
NEW FEATURES AND FUNCTIONS IN PAST RELEASE (WinRTP 2.0.0)
|
====================================================================
|
· No more DirectShow dependency. This version uses the wave API
|
of windows to use the sound devices. I implemented a simple
|
filter graph framework that is more suited to the task at hand.
|
· No more compile headaches ;-) No more DirectShow SDK version
|
incompatibilities, no more link errors, no more streams.h
|
problems ....
|
· Simpler distribution: just two DLL's, no more .ax files.
|
Also, the whole software is less than 230 KBytes.
|
· Support for multiple sound cards
|
· Dynamic jitter buffer algorithm option: it is very simple,
|
but looks like it works most of the time
|
· Audio quality enhancements: including pre-emphasis and
|
post-emphasis of audio to make it sound sharper
|
· Others misc: Volume limiter algorithm in case you want to
|
use it.
|
· Comes with prebuilt binaries for your convenience
|
· Ability to play any wav file. Previous format restrictions
|
removed. Also, now you can play as many files at the same
|
time as you want
|
|
|
====================================================================
|
BUG FIXES
|
====================================================================
|
. Numerous bug fixes
|
. Some freeze issues/one way audio issues have been resolved
|
. Some memory leak fixes that were found by the user community
|
. Playing extremely small .WAV files (few milliseconds) crashes
|
WinRTP fixed
|
|
====================================================================
|
KNOWN LIMITATIONS
|
====================================================================
|
These limitations are known to exists in this release of the software:
|
|
Limitation: WinRTP does not include any low bitrate codecs.
|
Workaround: These codecs are available for license from third party
|
companies. Please contact them for information. WinRTP
|
team cannot help you with this issue.
|
|
Some notable places are VOVIDA.ORG (Open G729) and
|
ITU web site (you can reference implementation code for
|
various codecs like G.729)
|
|
====================================================================
|
GETTING STARTED
|
====================================================================
|
|
SOFTWARE DEPENDENCIES
|
--------------------------------------------------------------------
|
- Visual C++ version 6.0, service pack 5.
|
|
HARDWARE REQUIREMENTS
|
--------------------------------------------------------------------
|
At least a 266MHz MMX Pentium microprocessor or equivalent.
|
At least 32 MB RAM.
|
Sound card compatible with Windows, microphone,
|
headset/speakers.
|
|
|
PLATFORM SUPPORTED
|
--------------------------------------------------------------------
|
Windows 95, 98, ME, NT service pack 3 or later, or Windows 2000/XP.
|
|
|
COMPILE INSTRUCTIONS
|
--------------------------------------------------------------------
|
The distribution comes with both source code and binaries. Extract
|
the ZIP file to obtain everything. It will create a directory
|
called WinRTP which will contain everything.
|
|
Source Code Distribution
|
Build Order
|
1. TracerServer
|
2. Tracer
|
3. CCNMediaTerm
|
This will create TraceServer.dll and CCNSMT.dll. Build these
|
projects either in Debug or Release mode.
|
|
|
USING THE SOFTWARE
|
--------------------------------------------------------------------
|
WINRTP binary distribution consists of two DLL files under the WinRTP
|
directory. The main COM DLL (CCNSMT.dll) that exposes the WINRTP
|
interface is about 260 Kbytes while the other (TraceServer.dll) DLL
|
(used for tracing) is 28 KBytes
|
|
- Installation
|
|
Third Party Dependencies
|
None
|
|
Location of Distributed Files
|
· TraceServer.dll: Put TraceServer.dll in the SYSTEM directory of
|
windows (i.e. \WINDOWS\SYSTEM of win95/98/ME or \WINNT\SYSTEM32
|
on win nt/2000/XP
|
· CCNSMT.dll: This is a COM components, so its location is not
|
important as long as it is registered with the system. It is
|
recommended that it be kept all together in a separate directory
|
or in the directory of the application that is using the WinRTP.
|
|
Final Install Steps
|
All COM objects must be registered before WINRTP can be used.
|
For this, use the regsvr32 program that comes with windows
|
(it may be found in the system directory)
|
· Regsvr32 CCNSMT.dll
|
|
|
TESTING THE SOFTWARE
|
--------------------------------------------------------------------
|
There is also a test program (both source code and binary) that is
|
available. It is a simple program that does not exercise all the
|
features. It just connects your default microphone to your default
|
speaker for 5 seconds so that you can hear yourself, and then exits.
|
The source code is in the "WinRTP/TestWinRTP" folder and the binary
|
is WinRTP/TestWinRTP.exe
|
|
====================================================================
|
SOURCE CODE INFORMATION
|
====================================================================
|
Please check the documentation available at the WinRTP web site
|
on Vovida.org, esp. the WinRTP Design Document 2.0.0
|
|
|
====================================================================
|
DIRECTORY STRUCTURE
|
====================================================================
|
The main directory contains subdirectories for each project.
|
|
====================================================================
|
CONTRIBUTORS
|
====================================================================
|
This software consists of voluntary contributions made by Vovida
|
Networks, Inc., Cisco Systems, Inc., and many individuals.
|
|
Cullen Jennings fluffy@cisco.com
|
Arijit Mukherji arijit@cisco.com
|
Mai Vu maivu@cisco.com
|
|
|
====================================================================
|
CONTACT INFORMATION AND WEBSITE
|
====================================================================
|
We welcome your feedback, suggestions and contributions. Contact us
|
via email if you have questions, feedback, code submissions,
|
and bug reports.
|
|
For general inquiries - info@vovida.org
|
|
We have mailing lists for the VOCAL applications and proctocol stacks:
|
VOCAL - vocal@vovida.org
|
COPS - cops@vovida.org
|
MGCP - mgcp@vovida.org
|
RADIUS - radius@vovida.org
|
RTP - rtp@vovida.org
|
SIP - sip@vovida.org
|
TRIP - trip@vovida.org
|
SIPTiger - siptiger@vovida.org
|
WinRTP = winrtp@vovida.org
|
You can subscribe to the mailing lists on www.vovida.org.
|
|
You can submit bug, patches, software contributions, and feature
|
requests using Bugzilla. Access Bugzilla from www.vovida.org.
|
|
====================================================================
|
|
|