Filtering media frames manually or using a (custom?) media port

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

 



Hello,

 

I try to implement spatial hearing to the conference bridge using Head
Related Transfer Functions (HRTF).

 

The HRTF only needs to filter the left/right sound channel separately but
with the same, additional input argument. Therefore I thought I could create
a own media port, similar to the existing ports like resample. Which such a
new media port, spatial hearing could be used and integrated very easily,
not only for the conference bridge.

 

The following "picture" (if it looks strange, please change the text font to
"Courier New") shows my main idea.

 

 

--------                              ---------------

| mono   |                            | HRTF filter   |

|  or    |  -> pjmedia_stereo_port -> | left channel  | -> conference_bridge
/ wav_wirter ...

| stereo |                            | right channel |

--------                              ----------------

   ^                                        ^

   |                                        |

Could be any                          Main part of my idea.

regular media                         Need to be implemented.

source                                How to start/get necessary
information?

 

To use HRTF, I need to get a stereo sound source, which can be created by
using the pjmedia_stereo_port function and is working fine.

The next step will be the HRTF filer (=convolver).

I have a working and very fast convolver which can convolve two time-signals
(one will be a frame of the source and the other one will be the
hrtf-time-signal of the left or right ear). The hrtf-time-signal (to be more
precise: hrir-time-signal as it is a TIME signal J ) is an existing
wav-file. 

 

My problem is, that I do not know how to create a own media port or even how
to access the media frames. To start over it would also be OK if I can
"access" the media frames, e.g. 20ms (whatever sampling rate will be used)
an process those frames "frame by frame" without any clock/timing functions.

 

I had a look at the samples called "stereotest" and "resampleplay" and
integrated the resample functionality to the stereotest. OK - this is not
really difficult but I wanted to see how things work before asking
questions.

 

Maybe there are more useful and helpful examples like the both I found. And
maybe I have not found THE documentation page which is answering all my
questions, especially how to create own media ports or how to access media
frames for own processing - please be lenient towards me as I really read a
lot of pjmedia/pjsip/pjsua stuff but it is very difficult to start over with
PJSIP (in addition, it is my first "big" project).

 

Thanks for reading and helping !!!

Regards

Matthias

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20110321/e0543fd1/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