Custom processing of audio data

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

 



Hi Alessandro,

currently there are two proofs of concept you can try:

1. Audio callback media port, see mailing list archive
http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2014-March/017210.html
and related messages. It is not perfect at all, but should be safe in C/C++.
You provide callback routines in which you receive or provide audio frames.

2. File descriptor media port, see archive
http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2014-March/017212.html
and related messages.
Here you can open pipes for receiving and transmitting the data.

Anyway in C/C++ it is no problem to create own media port and add it to 
PJSUA conference bridge to have access to raw audio data.

Currently we are trying with Benny to come up with a universal way to 
access raw audio data in C++ and higher-level languages.

Cheers,
- Vali


Dne 17.3.2014 19:02, Alessandro Saccoia napsal(a):
> Hi,
> I'd like to use pjsip for our current project; I am trying to set up a SIP server that receives phone calls, forwards the decoded raw audio data to a pre-existing software module written in c++, and sends back to the caller some audio generated by the same c++ module.
> I have successfully compiled the example applications, and I see that the functionality I need it's all there. The sipecho.c example showed me that it's possible to quickly build the answering part of the application, the playsine shows that it's possible to attach a traditional audio callback to the output channel, and simple_ua shows that I can get some useful information from the media stream of the caller.
> Still, I am a bit struggling to understand how to put all the pieces together.
> The goal is to have an application that whenever there is a call can instantiate and keep in the memory a structure with this interface (this is a fa?ade C interface)
>
> struct OurAudioProcessingLibrary {
> 	void process(float** samplesIn, float** samplesOut, int numSamples);
> };
>
> but I haven't found a way until today. This signature can be thought as an audio processing black box, or an audio fx. I ask if somebody can put me in the right direction, or if someone is available to work for us during the development of this software.
> Thank you
>
> Alessandro Saccoia
> www.dinahmoe.com
> _______________________________________________
> 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