From ce9088d8978fdd457158ec0ea4c8e11e10b2960f Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Mon, 31 Jul 2006 15:19:36 +0000 Subject: - Added iLBC codec (experimental) with the following features: - configurable default decoder mode (20 or 30), - encoder mode follows the mode specified in SDP fmtp from the remote's SDP, - silence detector uses pjmedia's, - PLC uses iLBC's PLC, - perceptual enhancement (penh) is configurable via codec param, as usual. - iLBC mode is configurable in pjsua with --ilbc-mode option. - Added packet lost simulation in pjmedia's UDP transport and in pjsua (with --rx-drop-pct and --tx-drop-pct options). - Increase default buffer count in DirectSound to 32 frames to make it more resilient to CPU disruption. - Specify and parse fmtp mode in SDP for codecs that need it. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@637 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/build/Makefile | 16 +++- pjmedia/build/pjmedia_codec.dsp | 205 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 219 insertions(+), 2 deletions(-) (limited to 'pjmedia/build') diff --git a/pjmedia/build/Makefile b/pjmedia/build/Makefile index 7e183502..c0465f10 100644 --- a/pjmedia/build/Makefile +++ b/pjmedia/build/Makefile @@ -11,7 +11,7 @@ export SOUND_OBJS = $(PORTAUDIO_OBJS) # E.g., to exclude Speex, we need to exclude SPEEX_OBJS from CODEC_OBJS, AND specify # "#define PJMEDIA_HAS_SPEEX_CODEC 0" in pj/config_site.h. # -export CODEC_OBJS = $(GSM_OBJS) $(SPEEX_OBJS) +export CODEC_OBJS = $(GSM_OBJS) $(SPEEX_OBJS) $(ILBC_OBJS) include ../../build/common.mak @@ -106,11 +106,23 @@ SPEEX_OBJS := speex_codec.o \ speex/stereo.o speex/vbr.o speex/vq.o speex/window.o SPEEX_CFLAGS := -DHAVE_CONFIG_H=1 -I../src/pjmedia-codec +ILBC_OBJS := ilbc.o \ + ilbc/FrameClassify.o ilbc/LPCdecode.o ilbc/LPCencode.o \ + ilbc/StateConstructW.o ilbc/StateSearchW.o ilbc/anaFilter.o \ + ilbc/constants.o ilbc/createCB.o ilbc/doCPLC.o \ + ilbc/enhancer.o ilbc/filter.o ilbc/gainquant.o \ + ilbc/getCBvec.o ilbc/helpfun.o ilbc/hpInput.o \ + ilbc/hpOutput.o ilbc/iCBConstruct.o ilbc/iCBSearch.o \ + ilbc/iLBC_decode.o ilbc/iLBC_encode.o ilbc/lsf.o \ + ilbc/packing.o ilbc/syntFilter.o +ILBC_CFLAGS := + export PJMEDIA_CODEC_SRCDIR = ../src/pjmedia-codec export PJMEDIA_CODEC_OBJS += l16.o \ $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ $(CODEC_OBJS) -export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) +export PJMEDIA_CODEC_CFLAGS += $(_CFLAGS) $(GSM_CFLAGS) $(SPEEX_CFLAGS) \ + $(ILBC_CFLAGS) ############################################################################### diff --git a/pjmedia/build/pjmedia_codec.dsp b/pjmedia/build/pjmedia_codec.dsp index a1bd308a..42490a1c 100644 --- a/pjmedia/build/pjmedia_codec.dsp +++ b/pjmedia/build/pjmedia_codec.dsp @@ -100,6 +100,10 @@ SOURCE="..\src\pjmedia-codec\gsm.c" # End Source File # Begin Source File +SOURCE="..\src\pjmedia-codec\ilbc.c" +# End Source File +# Begin Source File + SOURCE="..\src\pjmedia-codec\l16.c" !IF "$(CFG)" == "pjmedia_codec - Win32 Release" @@ -138,6 +142,10 @@ SOURCE="..\include\pjmedia-codec\gsm.h" # End Source File # Begin Source File +SOURCE="..\include\pjmedia-codec\ilbc.h" +# End Source File +# Begin Source File + SOURCE="..\include\pjmedia-codec\l16.h" # End Source File # Begin Source File @@ -663,5 +671,202 @@ SOURCE="..\src\pjmedia-codec\speex\window.c" # End Source File # End Group # End Group +# Begin Group "iLBC Codec" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\anaFilter.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\anaFilter.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\constants.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\constants.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\createCB.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\createCB.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\doCPLC.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\doCPLC.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\enhancer.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\enhancer.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\filter.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\filter.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\FrameClassify.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\FrameClassify.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\gainquant.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\gainquant.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\getCBvec.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\getCBvec.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\helpfun.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\helpfun.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\hpInput.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\hpInput.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\hpOutput.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\hpOutput.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iCBConstruct.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iCBConstruct.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iCBSearch.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iCBSearch.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_decode.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_decode.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_define.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_encode.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_encode.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\iLBC_test.c" +# PROP Exclude_From_Build 1 +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\LPCdecode.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\LPCdecode.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\LPCencode.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\LPCencode.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\lsf.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\lsf.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\packing.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\packing.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\StateConstructW.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\StateConstructW.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\StateSearchW.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\StateSearchW.h" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\syntFilter.c" +# End Source File +# Begin Source File + +SOURCE="..\src\pjmedia-codec\ilbc\syntFilter.h" +# End Source File +# End Group # End Target # End Project -- cgit v1.2.3