Help needed with Conference Bridge performances on uclinux-nios2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Benny,

thanks for your feedback.
I tried to apply what you are suggesting by creating a new 
pjmedia-audiodev API. I tried to do something like pa_dev.c and 
wmme_dev.c (because of it has PJMEDIA_FRAME_TYPE_EXTENDED) but it's no 
so simple.

I'm wondering if the conf_switch and passthrough codec need necessarily 
a pjmedia-audiodev.
My PCMA device is defined in the system by a char driver and it's 
talking with a variant of the streamutil by using a simple custom 
pjmedia_port connected to a standard conf bridge.

Is it possible to re-use the same code, by simply replacing the conf 
bridge with the conf switch and by removing the pcma2linear conversion?
Otherwise I'll continue to create the pjmedia-audiodev.

Thanks a lot,
Fabio

Benny Prijono ha scritto:
> Sorry for the delay, just back from traveling. And sorry again if I'm 
> not clear with the instructions. So for your system, you will need to 
> create an audio device abstraction based on the new pjmedia-audiodev 
> API. In this sound device abstraction, you'll need to support PCMA.
>
> Then add a config macro to add support for your sound device (e.g 
> PJMEDIA_AUDIO_DEV_HAS_MY_DEV), and add your sound device factory 
> initialization in audiodev.c.
>
> Then activate the settings in config_site.h, e.g.
>  #define PJMEDIA_AUDIO_DEV_HAS_MY_DEV      1
>  #define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
>  #define PJMEDIA_AUDIO_DEV_HAS_SYMB_APS  0
>
> Something like that.
>
> cheers
>  Benny
>
>
> On Mon, May 25, 2009 at 9:16 PM, Fabio Cherchi <fabio.cherchi at yahoo.it 
> <mailto:fabio.cherchi at yahoo.it>> wrote:
>
>     Hi Benny and all,
>
>     I'm still stucked to the project make problems above mentioned.
>     My understanding is that to build the project I should follow
>     building step explained here (http://trac.pjsip.org/repos/wiki/APS).
>     Given that I'm not developing on Symbian I would like to know if
>     there is a workaround to enable the Conference Switch and
>     Passthrough Codecs features without using Symbian related
>     libraries and software.
>
>     Thanks a lot,
>     Fabio
>
>     Fabio Cherchi ha scritto:
>>     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 <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
>>     <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 <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/20090601/ab811174/attachment.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux