Replacing the audio backend in pjsua

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

 



I don't actually have a problem with the new audio API and my own audio driver, the only 
thing I wanted was to avoid having to modify code in pjproject.

But here's what I did:

1. Use the parameter '--enable-ext-sound' when running the configure script.

2. Add the following to config_site.h: "#define PJMEDIA_AUDIO_DEV_HAS_EXTAUDIO 1"

3. Edit user.mak to build the source code for my audio implementation (implementing the 
function 'pjmedia_ext_factory').

4. Apply the following patch:

--- pjmedia/src/pjmedia-audiodev/audiodev.c     (revision 2945)
+++ pjmedia/src/pjmedia-audiodev/audiodev.c     (working copy)
@@ -86,6 +86,10 @@
  pjmedia_aud_dev_factory* pjmedia_symb_mda_factory(pj_pool_factory *pf);
  #endif

+#if PJMEDIA_AUDIO_DEV_HAS_EXTAUDIO
+pjmedia_aud_dev_factory* pjmedia_ext_factory(pj_pool_factory *pf);
+#endif
+
  #define MAX_DRIVERS    16
  #define MAX_DEVS       64

@@ -383,6 +387,9 @@
  #if PJMEDIA_AUDIO_DEV_HAS_SYMB_MDA
      aud_subsys.drv[aud_subsys.drv_cnt++].create = &pjmedia_symb_mda_factory;
  #endif
+#if PJMEDIA_AUDIO_DEV_HAS_EXTAUDIO
+    aud_subsys.drv[aud_subsys.drv_cnt++].create = &pjmedia_ext_factory;
+#endif

      /* Initialize each factory and build the device ID list */
      for (i=0; i<aud_subsys.drv_cnt; ++i) {


Regards,
Dan


Shayne O'Neill wrote:
> 
> Sorry for the double mail
> 
> As an alternative, is there a good template driver that a new iphone 
> driver can be built from. Like a stub with all the callbacks , or 
> something like that. I might have some time next week I could have try 
> at at it.
> I'm not a great coder (samuels a better coder than I , likely) but I 
> could at least get a head start on it.
> 
> Note that this would still not solve the problem for 'oddball' platforms 
> with custom old-school audio drivers.
> 
> Shayne.
> 
> On 15/10/2009, at 12:44 AM, samuel.vinson wrote:
> 
>>
>> Hello,
>>
>> I posted a patch here to resolve your problem, few weeks ago.
>> Because in 1.4 branch, the legacy disapeared :-(
>>
>> Benny could you integrate this patch or fixe the problem, pls.
>>
>> Regards
>>
>> Samuel
>>
>>
>> > Message du 14/10/09 17:21
>> > De : "Dan Arrhenius"
>> > A : "pjsip list"
>> > Copie ? :
>> > Objet : Re: [pjsip] Replacing the audio backend in pjsua
>> >
>> >
>> > It didn't work for me to define PJMEDIA_AUDIO_DEV_HAS_LEGACY_DEVICE. 
>> I should probably
>> > make it clear that I'm using pjsua-lib, so I don't initialize the 
>> audio directly in my code.
>> >
>> > In audiodev.c there is support for maximum 16(MAX_DRIVERS) audio 
>> device factories, but
>> > they are added and initialized statically, and in my case no driver 
>> at all is added :-(
>> > Might I suggest the ability to dynamically add audio device 
>> factories, for example
>> > 'pjmedia_aud_subsys_add_driver(...)'.
>> >
>> > Best regards,
>> > Dan
>> >
>> >
>> > Benny Prijono wrote:
>> > > On Wed, Oct 14, 2009 at 5:45 PM, Dan Arrhenius wrote:
>> > >> Hello,
>> > >> I've been working with pjproject 1.0.x and want to upgrade to the 
>> latest
>> > >> version.
>> > >> How can I replace the audio back-end in pjsua with my own using 
>> the new
>> > >> audio subsystem? With the old version I configured pjproject with
>> > >> '--enable-ext-sound' and supplied rules to build the audio 
>> back-end in
>> > >> user.mak.
>> > >>
>> > >> As I understand it all available audio back-ends are hard-coded in
>> > >> audiodev.c (PORTAUDIO, WMME, SYMB_VAS, SYMB_APS, and SYMB_MDA), 
>> and there is
>> > >> no way of dynamically add a new audio driver. Or am I missing 
>> something?
>> > >> Do I have to modify audiodev.c to get my own audio back-end in 
>> pjsua? I want
>> > >> to modify as little code in pjproject as possible to ease 
>> maintenance.
>> > >>
>> > >>
>> > >
>> > > In http://trac.pjsip.org/repos/wiki/Audio_Dev_API there is a guide on
>> > > how to access legacy device using the new API (see under
>> > > PJMEDIA_AUDIO_DEV_HAS_LEGACY_DEVICE). I have not tested it with
>> > > --enable-ext-sound, but it's supposed to work. :)
>> > >
>> > > Cheers
>> > > Benny
>> > >
>> > > _______________________________________________
>> > > 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
>> > >
>> >
>> > _______________________________________________
>> > 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
>> >
>> >
>>
>>
>>     
>> Gratuite, garantie ? vie et d?j? utilis?e par des millions 
>> d'internautes...
>> vous aussi, pour votre adresse e-mail, choisissez laposte.net.
>>
>> Laposte.net, bien + qu'une messagerie
>>
>> _______________________________________________
>> 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
> 
> ===================================
> Shayne O'Neill Development
> Mobile, Web and Business process integration.
> shayne.oneill at gmail.com 0400247091
> Ask me about how Alfresco can help your business grow.
> 
> 
> _______________________________________________
> 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
> 



[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