Commit 1cf3b8e3 authored by Yann Diorcet's avatar Yann Diorcet

Merge branch 'master' of git.linphone.org:mediastreamer2 into upnp

parents b8dffb27 d5811e37
......@@ -55,7 +55,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
......@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
......@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
......@@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
......@@ -278,7 +278,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
......
......@@ -27,6 +27,12 @@ LOCAL_ARM_MODE := arm
MEDIASTREAMER2_INCLUDES := \
$(LOCAL_PATH)/../build/android \
$(LOCAL_PATH)/base \
$(LOCAL_PATH)/utils \
$(LOCAL_PATH)/voip \
$(LOCAL_PATH)/audiofilters \
$(LOCAL_PATH)/otherfilters \
$(LOCAL_PATH)/videofilters \
$(LOCAL_PATH)/../include \
$(LOCAL_PATH)/../../oRTP \
$(LOCAL_PATH)/../../oRTP/include \
......@@ -44,48 +50,48 @@ MEDIASTREAMER2_INCLUDES := \
LOCAL_MODULE := libmediastreamer2
LOCAL_SRC_FILES = \
audiomixer.c \
audioconference.c \
mscommon.c \
msfilter.c \
msqueue.c \
msticker.c \
mediastream.c \
msvoip.c \
alaw.c \
ulaw.c \
mssndcard.c \
msfileplayer.c \
msrtp.c \
dtmfgen.c \
msfilerec.c \
ice.c \
tee.c \
msconf.c \
msjoin.c \
msvolume.c \
mtu.c \
mswebcam.c \
equalizer.c \
dsptools.c \
kiss_fft.c \
kiss_fftr.c \
void.c \
msandroid.cpp \
eventqueue.c \
msjava.c \
tonedetector.c \
audiostream.c \
ringstream.c \
qualityindicator.c \
bitratecontrol.c \
bitratedriver.c \
qosanalyzer.c \
msg722.c \
g722_decode.c \
g722_encode.c \
l16.c \
msresample.c \
base/mscommon.c \
base/msfilter.c \
base/msqueue.c \
base/msticker.c \
base/mssndcard.c \
base/mtu.c \
base/mswebcam.c \
base/eventqueue.c \
voip/audioconference.c \
voip/mediastream.c \
voip/msvoip.c \
voip/ice.c \
voip/audiostream.c \
voip/ringstream.c \
voip/qualityindicator.c \
voip/bitratecontrol.c \
voip/bitratedriver.c \
voip/qosanalyzer.c \
utils/dsptools.c \
utils/kiss_fft.c \
utils/kiss_fftr.c \
utils/msjava.c \
utils/g722_decode.c \
utils/g722_encode.c \
otherfilters/msrtp.c \
otherfilters/tee.c \
otherfilters/join.c \
otherfilters/void.c \
audiofilters/audiomixer.c \
audiofilters/alaw.c \
audiofilters/ulaw.c \
audiofilters/msfileplayer.c \
audiofilters/dtmfgen.c \
audiofilters/msfilerec.c \
audiofilters/msconf.c \
audiofilters/msvolume.c \
audiofilters/equalizer.c \
audiofilters/tonedetector.c \
audiofilters/msg722.c \
audiofilters/l16.c \
audiofilters/msresample.c \
android/androidsound_depr.cpp \
android/loader.cpp \
android/androidsound.cpp \
android/AudioRecord.cpp \
......@@ -95,12 +101,12 @@ LOCAL_SRC_FILES = \
ifneq ($(TARGET_ARCH_ABI), x86)
LOCAL_SRC_FILES += \
webrtc_aec.c
audiofilters/webrtc_aec.c
endif
##if BUILD_ALSA
ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)
LOCAL_SRC_FILES += alsa.c
LOCAL_SRC_FILES += audiofilters/alsa.c
LOCAL_CFLAGS += -D__ALSA_ENABLED__
endif
......@@ -112,50 +118,50 @@ endif
ifeq ($(LINPHONE_VIDEO),1)
LOCAL_SRC_FILES += \
videostream.c \
videoenc.c \
videodec.c \
pixconv.c \
sizeconv.c \
nowebcam.c \
h264dec.c \
rfc3984.c \
mire.c \
layouts.c \
android-display.c \
android-display-bad.cpp \
msandroidvideo.cpp \
vp8.c \
shaders.c \
opengles_display.c \
android-opengl-display.c \
jpegwriter.c
voip/videostream.c \
voip/rfc3984.c \
voip/layouts.c \
utils/shaders.c \
utils/opengles_display.c \
videofilters/videoenc.c \
videofilters/videodec.c \
videofilters/pixconv.c \
videofilters/sizeconv.c \
videofilters/nowebcam.c \
videofilters/h264dec.c \
videofilters/mire.c \
videofilters/vp8.c \
videofilters/jpegwriter.c \
android/android-display.c \
android/android-display-bad.cpp \
android/androidvideo.cpp \
android/android-opengl-display.c
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
LOCAL_CFLAGS += -DVIDEO_ENABLED
LOCAL_SRC_FILES+= \
scaler.c.neon \
scaler_arm.S.neon \
msvideo.c \
msvideo_neon.c.neon
voip/scaler.c.neon \
voip/scaler_arm.S.neon \
voip/msvideo.c \
voip/msvideo_neon.c.neon
else
LOCAL_SRC_FILES+= scaler.c \
msvideo.c
LOCAL_SRC_FILES+= voip/scaler.c \
voip/msvideo.c
endif
endif
#LOCAL_SRC_FILES += videostream.c
#LOCAL_SRC_FILES += voip/videostream.c
#
##if BUILD_THEORA
#LOCAL_SRC_FILES += theora.c
#LOCAL_SRC_FILES += videofilters/theora.c
#if BUILD_SPEEX
LOCAL_SRC_FILES += \
msspeex.c \
speexec.c
audiofilters/msspeex.c \
audiofilters/speexec.c
##if BUILD_GSM
LOCAL_SRC_FILES += gsm.c
LOCAL_SRC_FILES += audiofilters/gsm.c
LOCAL_CFLAGS += \
-UHAVE_CONFIG_H \
......
This diff is collapsed.
......@@ -31,7 +31,7 @@ PACKAGE=mediastreamer
OS=`uname|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
AC_MSG_RESULT([Building Package on ${OS}])
AM_INIT_AUTOMAKE([tar-ustar])
AM_INIT_AUTOMAKE([tar-ustar subdir-objects])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],)
AC_SUBST([docdir], [${datadir}/doc])
AC_CONFIG_HEADERS(mediastreamer-config.h)
......
......@@ -87,10 +87,10 @@ FILE_PATTERNS = *.h \
*.c \
*.dox
RECURSIVE = YES
EXCLUDE =
EXCLUDE = ../src/ortp-deps ../src/utils
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATH = ..
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
......@@ -189,7 +189,7 @@ ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH = ../include/mediastreamer2
INCLUDE_PATH = ../include
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = DOXYGEN
EXPAND_AS_DEFINED =
......@@ -207,10 +207,10 @@ PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
HAVE_DOT = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
GROUP_GRAPHS = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = YES
......
......@@ -3,7 +3,7 @@ DOXFILES = doxygen.dox filters.dox ht0-buildagraph.dox
EXTRA_DIST = Doxyfile.in $(DOXFILES)
SOURCES=$(DOXFILES) $(top_srcdir)/include/mediastreamer2/*.h $(top_srcdir)/src/*.c $(top_srcdir)/src/*.h
SOURCES=$(DOXFILES) $(top_srcdir)/include/mediastreamer2/*.h $(top_srcdir)/src/*.h
#html doc
if HAVE_DOXYGEN
......
/**
* @mainpage
*
* Project Website: http://www.mediastreamer2.com
*
*
* Project Website: http://www.mediastreamer2.com
*/
/**
* @defgroup mediastreamer2_intro Introduction to mediastreamer2 concepts.
* @brief Introduction
/**
* @defgroup mediastreamer2_intro Introduction to mediastreamer2 concepts
*
* @section what_is_it What is mediastreamer2
* @section what_is_it What is mediastreamer2?
*
* mediastreamer2 is a powerful engine to make audio and video streams.
* mediastreamer2 is GPL (COPYING). Please understand the licencing details
* before using it!
*
*
* Commercial support and licensing is provided by Belledonne Communications
* http://www.belledonne-communications.com
*
*
* @see http://www.linphone.org/eng/documentation/dev/mediastreamer2.html
*
* @section definitions Some definitions.
*
* Filter:
* A filter is a mediastreamer2 component that process data. A filter
* have 0 or several INPUT pins and 0 or several OUTPUT pins.
* Here is a list of possible use of filters:
* <PRE>
* capture audio or video data.
* play audio or display video data.
* send or receive RTP data.
* encode or decode audio or video data.
* transform (resize video, resample audio...) data.
* duplicate any kind of data.
* mix audio/video data.
* </PRE>
* Graph:
* A graph is a manager of filters connected together. It will transfer
* data from OUTPUT pins to INPUT pins and will be responsible for
* running filters.
*
* @section how_do_i_use_mediastreamer2 How do I use mediastremer2?
*
*
* @section definitions Some definitions
*
* - <b>Filter:</b>
* A filter is a mediastreamer2 component that process data. A filter
* have 0 or several INPUT pins and 0 or several OUTPUT pins.
* Here is a list of possible use of filters:
* - capture audio or video data.
* - play audio or display video data.
* - send or receive RTP data.
* - encode or decode audio or video data.
* - transform (resize video, resample audio...) data.
* - duplicate any kind of data.
* - mix audio/video data.
* - <b>Graph:</b>
* A graph is a manager of filters connected together. It will transfer
* data from OUTPUT pins to INPUT pins and will be responsible for
* running filters.
*
* @section how_do_i_use_mediastreamer2 How do I use mediastreamer2?
*
* Mediastreamer2 can be used for a lot of different purpose. The primary
* use is to manage RTP audio and video session. You will need to use
* the API to build filters, link them together in a graph. Then the
* ticker API will help you to start and stop the graph.
*
* Basic graph sample:
*
* <PRE>
* AUDIO CAPTURE --> ENCODE --> RTP
* FILTER --> FILTER --> FILTER
* </PRE>
* Basic graph example:
*
* @dot
* digraph example {
* rankdir=LR
* node [shape=record, fontname=Helvetica, fontsize=10];
* capt [ label="AUDIO CAPTURE FILTER"];
* enc [ label="ENCODE FILTER"];
* rtp [ label="RTP FILTER"];
* capt -> enc;
* enc -> rtp;
* }
* @enddot
*
*
* The above graph is composed of three filters. The first one has no input:
* tt captures audio data directly from the drivers and provide it to the
* it captures audio data directly from the drivers and provide it to the
* OUTPUT pin. This data is sent to the INPUT pin of the encoder which of
* course encode the data and send it to its OUTPUT pin. This pin is connected
* to the INPUT pin of a filter capable to build and send RTP packets.
* course encodes the data and sends it to its OUTPUT pin. This pin is connected
* to the INPUT pin of a filter capable of building and sending RTP packets.
*
* The modular design helps you to encode in many different format just by
* The modular design helps you to encode in many different formats just by
* replacing the "ENCODE FILTER" with another one. mediastreamer2 contains
* internal support for g711u, g711a, speex and gsm. You can add new encoding
* format by implementing new filters which can then be dynamically loaded.
*
* @section list_of_filters List of existing filters.
*
* mediastreamer2 already provides a large set of filters. Here is a complete
* list of built-in filters.
*
* <PRE>
* All supported platforms:
* RTP receiver
* RTP sender
* tee (duplicate data)
*
* Audio Filters:
* audio capture
* audio playback
* mme API (windows)
* alsa API (linux)
* oss API (linux)
* arts API (linux)
* portaudio API (macosx and other)
* iounit API (macosx and ios)
* Android sound
* macsnd API (native macosx API -please do more testing...-)
*
* several audio encoder/decoder: PCMU, PCMA, speex, gsm, G722
* wav file reader.
* wav file recorder.
* resampler.
* conference bridge.
* volume analyser.
* acoustic echo canceller.
* dtmf generation filter.
*
* Video Filters:
* video capture
* v4w API (windows)
* directshow API (windows)
* video4linux API (linux)
* Quicktime API (MACOSX)
* AV Foundation API (IOS)
* android.hardware.Camera API (Android)
* video display
* v4w API (windows)
* SDL API (linux, macosx...)
* XV API (linux)
* OPENGL-ES (Android, IOS)
* several audio encoder/decoder: H263-1998, MP4V-ES, VP8, theora
* image resizer.
* format converter. (RBG24, I420...)
*
* Plugin Filters:
* iLBC decoder/encoder.
* AMR-NB decoder/encoder.
* SILK decoder/encoder.
* H264 decoder/encoder.
* </PRE>
*
* internal support for g711u, g711a, speex and gsm. Other encoding formats
* can be added by implementing new filters as plugins which can then be dynamically
* loaded.
*
* @sa filters
*/
/**
......@@ -134,23 +81,21 @@
*/
/**
* @defgroup mediastreamer2_init Starting mediastreamer2 library.
* @defgroup mediastreamer2_init Starting mediastreamer2 library
* @ingroup mediastreamer2_api
* @brief Starting mediastreamer2 library.
*
* @brief Starting mediastreamer2 library
*/
/**
* @defgroup mediastreamer2_soundcard Sound Card API - manage audio capture/play filters.
* @defgroup mediastreamer2_soundcard Sound Card API - Manage audio capture/play filters
* @ingroup mediastreamer2_api
* @brief Sound Card API to manage audio capture/play filters.
*
* @brief Sound Card API to manage audio capture/play filters
*/
/**
* @defgroup mediastreamer2_filter Filter API - manage mediastreamer2 filters.
* @defgroup mediastreamer2_filter Filter API - Manage mediastreamer2 filters
* @ingroup mediastreamer2_api
* @brief Filter API to manage mediastreamer2 filters.
* @brief Filter API to manage mediastreamer2 filters
*
* This section documents the API needed to create, link,
* unlink, find and destroy filters.
......@@ -160,9 +105,9 @@
*/
/**
* @defgroup mediastreamer2_ticker Ticker API - manage mediastreamer2 graphs.
* @defgroup mediastreamer2_ticker Ticker API - Manage mediastreamer2 graphs
* @ingroup mediastreamer2_api
* @brief Ticker API to manage mediastreamer2 graphs.
* @brief Ticker API to manage mediastreamer2 graphs
*
* Describes the ticker API. The ticker is the thread responsible for scheduling audio & video processing for
* one or several filter graphs.
......@@ -178,38 +123,47 @@
*/
/**
* @defgroup audio_stream_api Creating typical VoIP audio streams.
* @defgroup audio_stream_api Audio streaming API - Create and run VoIP audio streams.
* @ingroup mediastreamer2_high_api
* @brief Audio streaming API - Easily run audio streams from soundcard or wav files to RTP.
*/
/**
* @defgroup mediastreamer2_audio_conference Audio conferencing API - Easily create conferences.
* @ingroup mediastreamer2_high_api
* @brief Audio streaming API - easily run audio streams from soundcard or wav files to RTP.
**/
* @brief Audio conferencing API - Easily create conferences.
*/
/**
* @defgroup mediastreamer2_audio_conference Audio conferencing API - easily create conferences.
* @defgroup video_stream_api Video streaming API - Create and run video streams.
* @ingroup mediastreamer2_high_api
* @brief Audio conferencing API - easily create conferences.
*
*
* @brief Video streaming API - Easily run video streams from camera capture or static picture files to RTP.
*/
/**
* @defgroup ring_api Ring playing API - Play ring files.
* @ingroup mediastreamer2_high_api
* @brief Ring playing API - Easily play a local ring from a wav file.
*/
/**
* @page mediastreamer2_readme README
/**
* @page mediastreamer2_readme README
* @verbinclude README
*/
/**
* @page mediastreamer2_install INSTALL
/**
* @page mediastreamer2_install INSTALL
* @verbinclude INSTALL
*/
/**
* @page mediastreamer2_license COPYING
* @page mediastreamer2_license COPYING
* @verbinclude COPYING
*/
/**
* @page mediastreamer2_changelog ChangeLog
/**
* @page mediastreamer2_changelog ChangeLog
* @verbinclude ChangeLog
*/
/**
* @defgroup filters Filters documentation
* @ingroup mediastreamer2
*
* Each filter provides its own functionalities. The filters can be organized as audio, video and other more general filters.
* The majority of the available filters are built in the mediastreamer2 library. But additional filters can be provided as plugins that will
* be loaded dynamically by calling the ms_load_plugins() function.
*
* @section list_of_filters List of built-in filters
*
* - Audio filters:
* - Audio capture and audio playing filters:
* - Alsa (Linux): src/audiofilters/alsa.c
* - Android native sound (libmedia): src/android/androidsound.cpp
* - Android sound (deprecated): src/android/androidsound_depr.cpp
* - Audio Queue Service (Mac OS X): src/audiofilters/aqsnd.c
* - Audio Unit Service (Mac OS X): src/audiofilters/msiounit.m
* - Arts (Linux): src/audiofilters/arts.c
* - DirectSound (Windows): src/audiofilters/winsndds.cpp
* - File player (raw/wav/pcap files) (Linux): src/audiofilters/msfileplayer.c
* - File player (raw/wav files) (Windows): src/audiofilters/msfileplayer_win.c
* - File recorder (wav files) (Linux): src/audiofilters/msfilerec.c
* - File recorder (wav files) (Windows): src/audiofilters/msfilerec_win.c
* - Mac Audio Unit (Mac OS X): src/audiofilters/macsnd.c
* - MME (Windows): src/audiofilters/winsnd2.c
* - OSS (Linux): src/audiofilters/oss.c
* - PortAudio (Mac OS X): src/audiofilters/pasnd.c
* - PulseAudio (Linux): src/audiofilters/pulseaudio.c
* - Windows Sound (Windows): src/audiofilters/winsnd.c, src/audiofilters/winsnd3.c
* - Audio encoder/decoder filters:
* - G.711 alaw: src/audiofilters/alaw.c
* - G.711 µlaw: src/audiofilters/ulaw.c
* - G.722: src/audiofilters/msg722.c
* - G.726: src/audiofilters/g726.c
* - GSM: src/audiofilters/gsm.c
* - Linear PCM: src/audiofilters/l16.c
* - Speex: src/audiofilters/msspeex.c
* - Audio processing filters:
* - Channels adaptation (mono->stereo or stereo->mono): src/audiofilters/chanadapt.c
* - Conferencing: src/audiofilters/msconf.c
* - DTMF generation: src/audiofilters/dtmfgen.c
* - Echo cancellation (speex): src/audiofilters/speexec.c
* - Echo cancellation (webrtc) (Android): src/audiofilters/webrtc_aec.c
* - Equalizer: src/audiofilters/equalizer.c
* - Mixer: src/audiofilters/audiomixer.c
* - Packet Loss Concealment (PLC): src/audiofilters/genericplc.c
* - Resampler: src/audiofilters/msresample.c
* - Tone detector: src/audiofilters/tonedetector.c
* - Volume control and measure: src/audiofilters/msvolume.c
* - Video filters:
* - Video capture and video display filters:
* - Android capture: src/android/androidvideo.cpp
* - Android display: src/android/android-display.c
* - AV Foundation capture (iOS): src/videofilters/ioscapture.m
* - AV Foundation display (iOS): src/videofilters/iosdisplay.m
* - DirectShow capture (Windows): src/videofilters/msdscap-mingw.cc
* - DrawDib display (Windows): src/videofilters/drawdib-display.c
* - External display - Send video to the upper layer: src/videofilters/extdisplay.c
* - GLX display (Linux): src/videofilters/glxvideo.c
* - Mire - Synthetic moving picture: src/videofilters/mire.c
* - OpenGL display (Mac OS X): src/videofilters/msosxdisplay.m
* - OpenGL ES2 display (Android): src/videofilters/android-opengl-display.c
* - Quicktime capture (Mac OS X): src/videofilters/qtcapture.m
* - SDL display: src/videofilters/videoout.c
* - Static image output: src/videofilters/nowebcam.c
* - Video For Linux (V4L) capture (Linux): src/videofilters/msv4l.c
* - Video For Linux 2 (V4L2) capture (Linux): src/videofilters/msv4l2.c
* - Video4windows (DirectShow) capture (Windows): src/videofilters/winvideods.c
* - Video4windows (DirectShow) capture (Windows CE): src/videofilters/wincevideods.c
* - Video For Windows (vfw) capture (Windows): src/videofilters/winvideo.c, src/videofilters/winvideo2.c
* - XV display (Linux): src/videofilters/x11video.c
* - Video encoder/decoder filters:
* - H.263, H.263-1998, MP4V-ES, JPEG, MJPEG, Snow: src/videofilters/videodec.c, src/videofilters/videoenc.c
* - H.264 (decoder only): src/videofilters/h264dec.c
* - Theora: src/videofilters/theora.c
* - VP8: src/videofilters/vp8.c
* - Video processing filters:
* - JPEG snapshot: src/videofilters/jpegwriter.c
* - Pixel format converter: src/videofilters/pixconv.c
* - Resizer: src/videofilters/sizeconv.c
* - Other filters:
* - Inter-ticker communication: src/otherfilters/itc.c
* - Join - Send several inputs to one output: src/otherfilters/join.c
* - RTP sending/receiving: src/otherfilters/msrtp.c
* - Tee - Send one input to several outputs: src/otherfilters/tee.c
* - Void - Trash input: src/otherfilters/void.c
*
* @section list_of_plugin_filters List of existing plugin filters
*
* - Audio filters:
* - AMR-NB encoder/decoder
* - G.729 encoder/decoder
* - iLBC encoder/decoder
* - SILK encoder/decoder
* - Video filters:
* - H.264 software encoder
* - H.264 hardware accelerated V4L2 encoder/decoder
*/
/**
* @defgroup mssilk - SILK (Skype codec) plugin
* @defgroup audiofilters Audio filters
* @ingroup filters
*/
/**
* @defgroup videofilters Video filters
* @ingroup filters
*/
/**
* @defgroup otherfilters Other general filters
* @ingroup filters
*/
/**
* @defgroup mssilk - SILK (Skype codec) plugin
* @ingroup audiofilters
* @brief SILK Speech Codec (draft-vos-silk-02) plugins filters to encode and decode audio.
*
*<b>MSSILKEnc</b> and <b>MSSILKDec</b> are 2 Mediastremer2's filters available to encode/decode speech using SILK sdk from Skype.
......
......@@ -8,7 +8,7 @@ When using mediastreamer2, your first task is to initialize the
library:
<PRE>
##include <mediastreamer2/mscommon.h>
#include <mediastreamer2/mscommon.h>
int i;
......
......@@ -45,6 +45,31 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
extern "C" {
#endif
/**
* @addtogroup ring_api
* @{
**/
struct _RingStream
{
MSTicker *ticker;
MSFilter *source;
MSFilter *gendtmf;
MSFilter *write_resampler;
MSFilter *sndwrite;
};
typedef struct _RingStream RingStream;