Hi Benny, thanks a lot for the suggestion. You are right, the APS-Direct feature seems fitting the purposes of my application. At the moment I've some issue with building the pjproject. Basically, following instructions I prepared a config_site.h with the following flags: #define PJMEDIA_CONF_USE_SWITCH_BOARD 1 #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0 #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS 1 #define PJMEDIA_HAS_PASSTHROUGH_CODECS 1 /* Only PCMA will be supported */ #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0 # define PJMEDIA_HAS_G711_CODEC 0 # define PJMEDIA_HAS_L16_CODEC 0 # define PJMEDIA_HAS_ILBC_CODEC 0 # define PJMEDIA_HAS_G722_CODEC 0 # define PJMEDIA_HAS_GSM_CODEC 0 # define PJMEDIA_HAS_SPEEX_CODEC 0 But during "make" I got the following errors: gcc -o ../bin/pjmedia-test-i686-pc-linux-gnu \ output/pjmedia-test-i686-pc-linux-gnu/codec_vectors.o output/pjmedia-test-i686-pc-linux-gnu/jbuf_test.o output/pjmedia-test-i686-pc-linux-gnu/main.o output/pjmedia-test-i686-pc-linux-gnu/mips_test.o output/pjmedia-test-i686-pc-linux-gnu/rtp_test.o output/pjmedia-test-i686-pc-linux-gnu/test.o output/pjmedia-test-i686-pc-linux-gnu/sdp_neg_test.o ../lib/libpjmedia-i686-pc-linux-gnu.a ../lib/libpjmedia-audiodev-i686-pc-linux-gnu.a ../lib/libpjmedia-codec-i686-pc-linux-gnu.a /home/fabioc/SIP/pjproject-1.2/pjproject-1.2/pjlib/lib/libpj-i686-pc-linux-gnu.a /home/fabioc/SIP/pjproject-1.2/pjproject-1.2/pjlib-util/lib/libpjlib-util-i686-pc-linux-gnu.a /home/fabioc/SIP/pjproject-1.2/pjproject-1.2/pjnath/lib/libpjnath-i686-pc-linux-gnu.a -L/home/fabioc/SIP/pjproject-1.2/pjproject-1.2/third_party/lib -lresample-i686-pc-linux-gnu -lmilenage-i686-pc-linux-gnu -lsrtp-i686-pc-linux-gnu -lgsmcodec-i686-pc-linux-gnu -lspeex-i686-pc-linux-gnu -lilbccodec-i686-pc-linux-gnu -lg7221codec-i686-pc-linux-gnu -lportaudio-i686-pc-linux-gnu -lm -lnsl -lrt -lpthread ../lib/libpjmedia-audiodev-i686-pc-linux-gnu.a(audiodev.o): In function `pjmedia_aud_subsys_init': audiodev.c:(.text+0x2c3): undefined reference to `pjmedia_aps_factory' collect2: ld returned 1 exit status make[2]: *** [../bin/pjmedia-test-i686-pc-linux-gnu] Error 1 make[2]: Leaving directory `/home/fabioc/SIP/pjproject-1.2/pjproject-1.2/pjmedia/build' make[1]: *** [pjmedia-test] Error 2 make[1]: Leaving directory `/home/fabioc/SIP/pjproject-1.2/pjproject-1.2/pjmedia/build' make: *** [all] Error 1 Do you have idea what's wrong in my setup? Thanks a lot, Fabio Benny Prijono ha scritto: > Hi Fabio, > > We probably have a solution for you. So your sound devices already > provide encoded (PCMA) frames, this is actually similar to how > APS-Direct work! Basically APS-Direct is a feature (by means of config > tweaks) to utilize APS sound device in Nokia handsets, which already > provides encoded G.729/iLBC/AMR/G.711 codecs. > > Please see http://trac.pjsip.org/repos/wiki/Nokia_APS_VAS_Direct for > more info, and get back here if there's anything unclear. As a bit of > hint, pjsua should work more or less as usual when APS-Direct is > enabled, though obviously we will loose the conferencing feature. > > Though the drawback of using APS-Direct approach is you won't be able > to use many (if not most) PJMEDIA features, since PJMEDIA mostly works > on PCM frames. But this may be your objective in the first place, as > you wanted as less processing as possible. So depending on how you > code your application (especially the part to handle multiple sound > devices), there may be some design changes required. > > cheers > Benny > > > On Sat, May 23, 2009 at 4:17 PM, Fabio Cherchi <fabio.cherchi at yahoo.it > <mailto:fabio.cherchi at yahoo.it>> wrote: > > Hi Benny and all, > > I'm developing an application running on uclinux-nios2 (85MHz) > which simply starts and stops multiple RTP streams from 16 > different custom audio devices (not defined as sounds ports) which > provide PCMA already coded samples. > > In my first approach I used the conf bridge to connect each stream > to a custom pjmedia_port, but after the 5th-6th connection the cpu > performance becomes poor and the timing gap between each put_frame > (same for get_frame) becomes larger than 20ms (my frame length). > > I'm doing some check where I can improve the performance (I've > already applied Benny's suggestions about that on: > http://trac.pjsip.org/repos/wiki/FAQ#Performance). > First of all, I've already coded pcma samples, but the conf bridge > works only with L16 samples, so I need to do a double conversion > before the streaming. > Second, the CPU usage shows very high values when I'm adding a new > call to the conf bridge. > > I'm evaluating a different approach based on creating a different > master port for each call to directly connect the custom ports to > the streams and also I would like to use the pcma passthrough codec. > Do you think this would help to improve performances? > Is it possible that multiple master ports could have some timing > conflicts if running in the same application? > > Any suggestion will be very appreciated. > > Thanks, > Fabio > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org> > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > > > ------------------------------------------------------------------------ > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090524/d0ad5684/attachment.html>