[pjsip] wav memory record buffer problems
plotti at gmx.net
Thu Nov 8 09:04:51 EST 2007
So how does the thing work if I use a microphone input instead of a wav file
and transfer that to the mem_recorder? Would that include some wav header,
or is there no possible solution to create a buffer that would be filled
from pjsip and read from another application? I know my question might sound
a little bit strange, asking why does he want to use another sound
application on-top. But i want to do some 3D positioning of the sound, and
thats only possible with a thirdparty application.
Thx, for helping me out benny,
2007/11/8, Benny Prijono <bennylp at pjsip.org>:
> You're guessing right. The memory based reader/writer's buffer
> simply doesn't have WAV header, and that's all there is.
> Thomas Plotkowiak wrote:
> > I am trying to read in a mono wav file and put it into memory, in short.
> > The things I am doing now in short are:
> > 1. Allocate some buffer space
> > /* Allocate some memmory for the buffer*/
> > int membuffer_size = 1024*8000;
> > unsigned char *membuffer;
> > membuffer = new unsigned char[membuffer_size];
> > 2. Init PJ LIb ...
> > 3. Create a media port from the WAV file
> > status = pjmedia_wav_player_port_create(.... &file_port...)
> > 4. Create a memory capture port
> > status = pjmedia_mem_capture_create (...
> > membuffer,membuffer_size,..&mem_port...)
> > 5. Create a conference bridge
> > 6. Add the mem_port to the conference bridge
> > status = pjmedia_conf_add_port( ... mem_port...)
> > 7. Add the file_port to the conference bridge
> > status = pjmedia_conf_add_port( ... file_port...)
> > 8. Connect the fileport source (2) to memport (1) destination
> > status = pjmedia_conf_connect_port(conf, 2, 1, 0);
> > SO FAR everything works like expected. But now I am trying to read that
> > memory buffer out with another application.
> > BUT here the problem is i simply am not hearing any sound. I have
> > checked that that the file_port is writing to the memory by
> > status = pjmedia_mem_capture_get_size (mem_port);
> > which shows an increase in size so a good guess that its not the
> > MY Guess is that the wav in memory lacks a RIFF WAV header, I guess it
> > is only created after i destroy the file_writer, because some
> > calculations about the length of the wav file etc.. have to be made in
> > the header. So my question is would it make sense to add a "dummy"
> > header to make the wav file readable in "realtime"? or are there better
> > ways?
> > Here is the link to the Memory/Buffer Capture Port
> > http://www.pjsip.org/pjmedia/docs/html/group__PJMEDIA__MEM__CAPTURE.htm
> > Cheers Thomas
> Visit our blog: http://blog.pjsip.org
> pjsip mailing list
> pjsip at lists.pjsip.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the pjsip