linphone-developers
[Top][All Lists]
Advanced

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

RE: [Linphone-developers] Linphone customisation


From: M Walton
Subject: RE: [Linphone-developers] Linphone customisation
Date: Thu, 3 Dec 2009 10:59:14 -0000

Hi Simon,

I have managed to create and build the plugin, however, i have a few questions 
that i think are preventing it from working:

1) When you say "The plugin must be installed in 
$prefix/lib/mediastreamer/plugins/" - what do you mean by $prefix? i have 
installed it into /lib/mediastreamer/plugins - but it doesnt seem to get 
detected.

Do you mean $linphonec-dir$/libs/mediastreamer/plugins?

Also, is the directory /libs/mediastreamer not /libs/mediastreamer2?

2) Do i need to register the soundcard AND the two filters? or just the 
soundcard which will in turn register the associated filters?

void liblisgw_init(void){
    ms_snd_card_manager_register_desc(ms_snd_card_manager_get(), 
&lismore_card_desc);
    ms_filter_register(&lismore_write_desc);
    ms_filter_register(&lismore_read_desc);
}

3) do i still need the following two export entries now its not being 
statically linked?

MS_FILTER_DESC_EXPORT(lismore_write_desc);
and
MS_FILTER_DESC_EXPORT(lismore_read_desc);

4) The ID change is now MS_FILTER_PLUGIN_ID for both the read and write structs 
with a category of MS_FILTER_OTHER, is this ok?

Many thanks as always

billy

-----Original Message-----
From: Simon Morlat [mailto:address@hidden 
Sent: 01 December 2009 3:58 PM
To: M Walton
Cc: address@hidden
Subject: RE: [Linphone-developers] Linphone customisation

Hi Billy,

Great work then !
The better you can do is to make your work a mediastreamer2 plugin, such
as the msx264 plugin.
In this case, you will just need to use MS_FILTER_PLUGIN_ID, which is a
kind of wilcard id for all plugins, and define a plugin function entry
point, that should have the name of the plugin suffixed with _init, such
as:

void libmyplugin_init(){
        ms_snd_card_manager_register_desc(ms_snd_card_manager_get(),
                &myplugin_card_desc);
        
}

and that's it.

The plugin must be installed in $prefix/lib/mediastreamer/plugins/,
named for example libmyplugin.so

During ms_init(), all plugins will be loaded, their init routine called,
so this will add your soundcard desc to the global list, call .detect
entry point, which will add the soundcard to the sound card manager.

Simon

Le mardi 01 décembre 2009 à 08:51 +0000, M Walton a écrit :
> Hi,
> 
> Yes i see what your saying, its the perfect place.
> 
> So i have implemented it already, i have a new soundcard and the 2 new 
> filters for the read and writes.
> 
> I have a new file in the same structure as alsa.c
> 
> I would like to have my new soundcard work along side the others, but this 
> has confused me:
> 
> in the MSFilterDesc structures, where is MS_ALSA_READ_ID and MS_ALSA_WRITE_ID 
> defined?
> also, during link, _alsa_card_desc, _alsa_write_desc, and _alsa_read_desc are 
> explicitly referenced in mscommon.c
> 
> what would be the best way to "integrate" my driver alongside the others? do 
> i need to add the missing functions etc into mscommon also?
> 
> I want to try and keep it as separate as possible so i can upgrade with the 
> linphone version control easily in the future.
> 
> Kindest regards
> 
> Billy
> 
> 
> -----Original Message-----
> From: Simon Morlat [mailto:address@hidden 
> Sent: 30 November 2009 2:37 PM
> To: M Walton
> Cc: address@hidden
> Subject: Re: [Linphone-developers] Linphone customisation
> 
> Hi Billy,
> 
> I think you need to implement a soundcard plugin in mediastreamer2; take
> example over mediastreamer2/src/alsa.c or mediastreamer2/src/winsnd2.c
> Basically this consists in implementing 2 MSFilter, one for reading from
> your special soundcard, one for writing to it, and one MSSndCard object
> representing your soundcard, that will be responsible for creating the
> MSFilter when asked.
> Then it should work without any modification outside.
> I recommend this method over the other one of using wav files to
> communicate with the pseudo-soundcard.
> 
> For VAD, in 3.1.2 there is a start of VAD code in
> mediastreamer2/src/msvolume.c actually based on speex VAD. However it is
> not finished (notification of the application is not implemented), and
> untested.
> Hope this helps,
> 
> Simon
> 
> 
> Le vendredi 27 novembre 2009 à 10:13 +0000, M Walton a écrit :
> > Hello everybody,
> > 
> >  
> > 
> > My name is Billy and i have just joined this list - sorry for a long
> > first post!.  I have been given a project which could involve using
> > the functionality of Linphone, and i was hoping somebody may have the
> > time to give me a few pointers to help me get started.
> > 
> >  
> > 
> > My project involves interfacing some already built audio hardware to a
> > SIP Client type interface.  It is based on a Blackfin platform running
> > a uClinux Dist.  No video needed, just audio.  The other hardware has
> > an ethernet connection (local and dedicated, not via internet so
> > streaming is easier) and expects an ADPCM stream over UDP, as well as
> > sending the same back.
> > 
> > I have identified 3 areas which i will need to make modifications:
> > 
> >  
> > 
> > 1)There is no soundcard on the hardware, i will need to catch the PCM
> > output from Linphone and convert it using a library i have written
> > before which will stream it onto the local LAN.  I will also have to
> > pipe the return speech stream back into Linphone in a similar way.
> > 
> >  
> > 
> > 2)I will have to add some signalling between Linphone and the current
> > hardware to setup/tear down the calls.
> > 
> >  
> > 
> > 3)I need to somehow provide a VAD flag so i can identify if the ADPCM
> > block just converted actually has something of interest in (as the
> > current audio hardware is simplex).
> > 
> >  
> > 
> > I have LinPhone (V3.0) compiled and running on Blackfin uClinux
> > 2009R1.  I think i will simply modify the LinphoneC app to achieve the
> > signalling part.
> > 
> >  
> > 
> > To do the custom conversions into framed ADPCM, is it best to write a
> > new filter to work with the MediaStreamer? - or somehow get linphone
> > to pipe the PCM data in and out of files which are shared with a
> > separate conversion application? or maybe use a Pipe? any ideas here
> > welcome.
> > 
> >  
> > 
> > As for the VAD, well that seems the hardest at the moment, i guess it
> > should be implemented with the ADPCM conversion routines, and i am
> > looking at the Speex source and wondering at the moment!
> > 
> >  
> > 
> > So if anyone could suggest a pointer or two on how to best get started
> > customising with the Linphone source id be greatly appreciative.
> > 
> >  
> > 
> > Many thanks
> > 
> > Billy
> > 
> >  
> > 
> >  
> > 
> > Billy Walton
> > 
> > Development Engineer
> > 
> > Lismore Instruments Ltd
> > 
> > ----------------------------------
> > 
> > Unit 2 Tristar Centre
> > 
> > Star Road Industrial Estate
> > 
> > Star Road
> > 
> > Horsham
> > 
> > RH13 8RA
> > 
> >  
> > 
> > [T] 01403 713121
> > 
> > [E] address@hidden
> > 
> > [W] www.Intercall.co.uk
> > 
> > ----------------------------------
> > 
> >  
> > 
> > 
> > _______________________________________________
> > Linphone-developers mailing list
> > address@hidden
> > http://lists.nongnu.org/mailman/listinfo/linphone-developers
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]